手册中说:“不可能转发主机端口 < 1024:在基于 Unix 的主机(例如 Linux、Solaris、Mac OS X)上,不可能从非 root 运行的应用程序绑定到低于 1024 的端口”。
是否可以禁用此限制?我运行主要的互联网服务(例如邮件服务器,例如(SMTP、IMAP、LDAP、HTTP、HTTPS),作为 VBoxHeadless 机器,并通过 VBoxManagemodifyvm --natpf1 捕获主机的端口)。我现在能看到的唯一解决方案是捕获较高的端口并通过 iptables 或 redir 重定向较低端口的流量。但也许有更自然的解决方案?
我正在运行Debian GNU/Linux 5.0,并且遇到来自内核的间歇性内存不足错误。服务器停止响应除 ping 之外的所有请求,我必须重新启动服务器。
# uname -a
Linux xxx 2.6.18-164.9.1.el5xen #1 SMP Tue Dec 15 21:31:37 EST 2009 x86_64
GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这似乎是 /var/log/messages 中的重要部分
Dec 28 20:16:25 slarti kernel: Call Trace:
Dec 28 20:16:25 slarti kernel: [<ffffffff802bedff>] out_of_memory+0x8b/0x203
Dec 28 20:16:25 slarti kernel: [<ffffffff8020f825>] __alloc_pages+0x245/0x2ce
Dec 28 20:16:25 slarti kernel: [<ffffffff8021377f>] __do_page_cache_readahead+0xc6/0x1ab
Dec 28 20:16:25 slarti kernel: [<ffffffff80214015>] filemap_nopage+0x14c/0x360
Dec 28 20:16:25 slarti kernel: [<ffffffff80208ebc>] __handle_mm_fault+0x443/0x1337
Dec 28 20:16:25 slarti kernel: [<ffffffff8026766a>] do_page_fault+0xf7b/0x12e0
Dec 28 20:16:25 slarti kernel: …Run Code Online (Sandbox Code Playgroud) 我在 OpenVZ ubuntu 12.04 服务器上的 kern.log 中看到重复的永不结束的此类消息。
Mar 2 06:23:33 localhost kernel: Cannot read proc file system: 1 - Operation not permitted.
Mar 2 06:24:04 localhost kernel: last message repeated 5082222 times
Mar 2 06:25:05 localhost kernel: last message repeated 9939060 times
Mar 2 06:26:06 localhost kernel: last message repeated 8501480 times
Mar 2 06:27:07 localhost kernel: last message repeated 10177446 times
Mar 2 06:28:08 localhost kernel: last message repeated 9813564 times
Mar 2 06:29:09 localhost kernel: last message repeated …Run Code Online (Sandbox Code Playgroud) 多 CPU 服务器正在运行多个进程。一个进程有一个线程应该始终处于旋转状态,使用它分配的 CPU 的 100%。我当前的方法(除了询问开发人员...)正在strace等待信息到达其打开的文件描述符的进程上使用recvfrom(2),erno并使用where设置为连续检查它,EAGAIN并且方法在没有数据包时返回 -1从网络套接字。
我不习惯堆栈跟踪生产设置,这是一种确定这些信息的笨拙方法。我正在proc(5)探索并认为标志字段的值/proc/[pid]/fdinfo可能有助于检查该进程是否正在使用open(2)以该O_NONBLOCK模式调用的套接字。
我目前正在努力对这个值进行逆向工程。我知道它代表文件状态和文件模式的按位或。所以我想我可以检查源头文件中常量open(2)在那个特定内核上使用的值,然后按位或它们,直到我找到一个与fdinfo. 这看起来很笨拙,如果有人可以验证上述方法(我还不能)或提供更优雅的解决方案,我将非常感激。
我也知道fnctl(2)可以将文件描述符设置为非阻塞状态,但我暂时将其视为打开
我正在尝试了解 下的 linux 内核参数/proc/sys/kernel/random/,但我遇到了一些麻烦。你能帮我弄清楚一些事情吗?
boot_id使用的参数?我只找到了它在启动时生成的信息,但我找不到原因。entropy_avail参数——不填充整个熵池的目的是什么?当我检查参数时,它在 1000 位左右振荡,但池大小为 4096。当entropy_avail达到 中设置的阈值时write_wakeup_threshold,它会下降一点(通常为 100),然后再次上升到write_wakeup_threshold参数中指定的点。那么为什么我们在熵池大小中需要这个 4096 呢?read_wakeup_threshold和write_wakeup_threshold参数的值?第一个只是让需要/dev/random设备熵的进程休眠,但是当我将它设置为 64、128 或 256 时有什么区别?它只是挂了更长的时间,或者还有别的什么吗?我有许多系统需要修改内核 cmdline,添加一些选项。
目前我使用以下程序进行操作:
但是,我更愿意将此过程作为数据包安装的一部分自动化,并避免修改默认文件(因为这通常很脆弱)。
我想做的是:
/etc/grub.d/* 中有一堆脚本用于构建实际的菜单配置,但是,没有明显的方式与它们交互。生成配置的脚本似乎只读取 /etc/default/grub :(
如果有办法删除文件以修改默认内核命令行,有人可以启发我吗?
从一个为期 4 天的周末回来,我注意到在长周末期间空调已经关闭,热量约为 80-82 度。HP ProLiant DL185G5 正在运行,但系统风扇以全 RPM 运行,但系统本身没有响应。
我将 KVM 切换到该特定服务器,但监视器无法检测到视频,键盘也没有诱导响应。我插入了一个单独的显示器/鼠标以确保它不是 KVM 切换器,但仍然没有运气。我尝试按住电源按钮,但是在按住按钮 5 秒以上后服务器并没有关闭,所以我切断了它正在运行的电源阵列的电源并重新打开它。
当我重新打开它时,显示器显示 ProLiant 徽标并开始启动\而没有错误。
引导 ESXi 后,配置加载到大约 97%,然后我看到以下消息:
“重新定位模块并启动内核......”
系统就挂在这里。我研究了这个问题,在特定系统上安装 ESXi 5.5 似乎很常见。大多数修复意味着这是一个视频适配器问题,在无头模式下运行将起作用。我试过这个,但无济于事。我还读到它是由于我的 KVM 显示器不支持 1024 x 768(它不支持),但是在没有任何显示器插入机器的情况下启动似乎也不起作用。
在我开始重新安装 ESXi 之前,我想知道是否有任何真正的 ESXi 专家可以向 Microsoft Hyper-V 人员伸出援手,并建议在我已经完成/打算做的事情之前采取任何可能的故障排除步骤。
是否有任何故障排除步骤可以解决 ESXi 挂起的问题Relocating the modules and starting the kernel?
任何帮助都会很棒。
祝大家安康
我是一名 SysAdmin Junior 管理 3 个CentOS虚拟(Web)服务器,今天早上我在包管理器方面遇到了一些麻烦yum。像往常一样,今天早上我运行了命令yum update && yum upgrade,在 3 个 CentOS 之一(年轻的)上没问题,一切正常。但是在“最旧”的 2 台服务器(不是那么旧,从 1.5 年开始运行,但可能并不出色)似乎升级内核时出现了一些问题,我用谷歌搜索了一下,在控制台输出之后,这似乎只是我的问题:
# yum update && yum upgrade
Run Code Online (Sandbox Code Playgroud)
. . .
Finished Dependency Resolution
Error: Package: kernel-2.6.32-573.1.1.el6.x86_64 (centos6_x86_update)
Requires: dracut-kernel >= 004-388.el6
Installed: dracut-kernel-004-356.el6_6.3.noarch (@centos6_x86_update)
dracut-kernel = 004-356.el6_6.3
Available: dracut-kernel-004-336.el6.noarch (centos6_x86_update)
dracut-kernel = 004-336.el6
Available: dracut-kernel-004-336.el6_5.2.noarch (centos6_x86_update)
dracut-kernel = 004-336.el6_5.2
Available: dracut-kernel-004-356.el6.noarch (base)
dracut-kernel = 004-356.el6
Available: dracut-kernel-004-356.el6_6.1.noarch (centos6_x86_update)
dracut-kernel = 004-356.el6_6.1
Available: dracut-kernel-004-356.el6_6.2.noarch (centos6_x86_update)
dracut-kernel = …Run Code Online (Sandbox Code Playgroud) 我正在从磁盘顺序读取一个大文件,并试图在读取过程中理解 iostat 输出。
iostat输出如下
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 833.00 14.00 103.88 0.05 251.30 6.07 5.69 2.33 205.71 1.18 100.00
Run Code Online (Sandbox Code Playgroud)
计算 I/O 请求的平均大小 =(rMB/s 除以 r/s)给出 ~ 128 KB,这是预读值。这似乎表明虽然 read 系统调用指定了 4KB 缓冲区,但实际磁盘 I/O 正在根据预读值发生。
当我将预读值增加到 256KB 时,iostat 输出如下
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 28.00 412.00 12.00 102.50 0.05 495.32 …Run Code Online (Sandbox Code Playgroud) 我们正在运行一个 KVM 节点,它不规则地崩溃,表现出非常奇怪的行为。有趣的是,我们已经在另一个节点上遇到了这个问题,它每 1-2 周就会崩溃一次。由于找不到硬件问题,我们开始将 VM 迁移到新节点。在我们迁移了 50% 的虚拟机大约一周后,新节点崩溃了,而“旧”节点从那时起运行良好(正常运行时间为 3 周,我们已经好几个月没有看到这么好的正常运行时间了)。
当一个节点崩溃时,我们有时会在 Supermicro IPMI 上看到这些奇怪的东西:
我们还看到:
在崩溃之前,我们从未看到内核恐慌或至少日志中的一些消息,完全沉默,直到灯突然熄灭。
随着问题从一台服务器“转移”到另一台服务器(一台全新的机器),我认为只剩下几个选项了:
有关机器的更多信息:
有没有人看到过这种行为,或者可以谈谈控制台上奇怪的“消息”吗?我从未见过这样的事情,甚至不知道我应该如何为谷歌搜索描述这一点。目前我们还没有很好的想法接下来应该做什么,因为它可能是一切。
提前致谢!
hardware server-crashes kernel supermicro kvm-virtualization
kernel ×10
linux ×4
ubuntu ×2
blocking ×1
centos ×1
entropy-pool ×1
grub ×1
hardware ×1
hp ×1
hp-proliant ×1
hypervisor ×1
io ×1
memory-usage ×1
nat ×1
openvz ×1
performance ×1
redhat ×1
routing ×1
rpm ×1
socket ×1
supermicro ×1
virtualbox ×1
vmware-esxi ×1
yum ×1