标签: kernel

如何将 < 1024 的主机端口转发到 VirtualBox NAT 连接的计算机?

手册中说:“不可能转发主机端口 < 1024:在基于 Unix 的主机(例如 Linux、Solaris、Mac OS X)上,不可能从非 root 运行的应用程序绑定到低于 1024 的端口”

是否可以禁用此限制?我运行主要的互联网服务(例如邮件服务器,例如(SMTP、IMAP、LDAP、HTTP、HTTPS),作为 VBoxHeadless 机器,并通过 VBoxManagemodifyvm --natpf1 捕获主机的端口)。我现在能看到的唯一解决方案是捕获较高的端口并通过 iptables 或 redir 重定向较低端口的流量。但也许有更自然的解决方案?

nat routing virtualbox port-forwarding kernel

5
推荐指数
1
解决办法
7562
查看次数

什么会导致内核内存不足错误?

我正在运行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)

linux kernel memory-usage

5
推荐指数
1
解决办法
6297
查看次数

“内核:无法读取 proc 文件系统:1 - 不允许操作”——在 OpenVZ VPS 上的 kern.log 中每分钟有数百万条这样的消息?

我在 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)

virtualization linux ubuntu kernel openvz

5
推荐指数
1
解决办法
3424
查看次数

如何在不使用堆栈跟踪器的情况下检查进程在 linux 中是否非阻塞?

多 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 kernel blocking socket

5
推荐指数
1
解决办法
2863
查看次数

关于 kernel.random.* 参数的一些问题

我正在尝试了解 下的 linux 内核参数/proc/sys/kernel/random/,但我遇到了一些麻烦。你能帮我弄清楚一些事情吗?

  1. 什么是boot_id使用的参数?我只找到了它在启动时生成的信息,但我找不到原因。
  2. 我知道熵池大小是恒定的(4096 位)并且不能改变。为什么这个数字这么小?难道不能是 1048576 或更多吗?也许有很多可用的熵不是很好吗?
  3. 它类似于第二个问题,但涉及entropy_avail参数——不填充整个熵池的目的是什么?当我检查参数时,它在 1000 位左右振荡,但池大小为 4096。当entropy_avail达到 中设置的阈值时write_wakeup_threshold,它会下降一点(通常为 100),然后再次上升到write_wakeup_threshold参数中指定的点。那么为什么我们在熵池大小中需要这个 4096 呢?
  4. 我有什么理由应该增加或减少read_wakeup_thresholdwrite_wakeup_threshold参数的值?第一个只是让需要/dev/random设备熵的进程休眠,但是当我将它设置为 64、128 或 256 时有什么区别?它只是挂了更长的时间,或者还有别的什么吗?

kernel entropy-pool

5
推荐指数
1
解决办法
5895
查看次数

在 Ubuntu 中修改内核 cmdline

我有许多系统需要修改内核 cmdline,添加一些选项。

目前我使用以下程序进行操作:

  1. 打开 /etc/default/grub
  2. 修改 GRUB_CMDLINE_LINUX_DEFAULT,添加选项
  3. 运行更新grub
  4. 重启

但是,我更愿意将此过程作为数据包安装的一部分自动化,并避免修改默认文件(因为这通常很脆弱)。

我想做的是:

  1. 删除文件(在 /etc/grub.d/? 中),覆盖 GRUB_CMDLINE_LINUX_DEFAULT 或类似的
  2. 运行 update-grub 并重新启动

/etc/grub.d/* 中有一堆脚本用于构建实际的菜单配置,但是,没有明显的方式与它们交互。生成配置的脚本似乎只读取 /etc/default/grub :(

如果有办法删除文件以修改默认内核命令行,有人可以启发我吗?

ubuntu kernel grub

5
推荐指数
1
解决办法
2650
查看次数

引导时出现 VMware ESXi 错误“重新定位模块并启动内核”

从一个为期 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

任何帮助都会很棒。

kernel hp hypervisor hp-proliant vmware-esxi

5
推荐指数
1
解决办法
2万
查看次数

CentOS 6.6 (Final) - yum 内核升级烦恼

祝大家安康

我是一名 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)

redhat centos kernel yum rpm

5
推荐指数
1
解决办法
5461
查看次数

调整顺序磁盘读取以提高性能

我正在从磁盘顺序读取一个大文件,并试图在读取过程中理解 iostat 输出。

  • 文件大小:10 GB
  • 读取缓冲区:4 KB
  • 预读 (/sys/block/sda/queue/read_ahead_kb):128 KB

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)

linux performance io kernel

5
推荐指数
1
解决办法
1653
查看次数

服务器在没有内核恐慌的情况下冻结

我们正在运行一个 KVM 节点,它不规则地崩溃,表现出非常奇怪的行为。有趣的是,我们已经在另一个节点上遇到了这个问题,它每 1-2 周就会崩溃一次。由于找不到硬件问题,我们开始将 VM 迁移到新节点。在我们迁移了 50% 的虚拟机大约一周后,新节点崩溃了,而“旧”节点从那时起运行良好(正常运行时间为 3 周,我们已经好几个月没有看到这么好的正常运行时间了)。

当一个节点崩溃时,我们有时会在 Supermicro IPMI 上看到这些奇怪的东西:

在此处输入图片说明 在此处输入图片说明

我们还看到:

  • “无信号”就像服务器已关闭(当然不是,而且它也从未在 IPMI 主页上显示为已关闭)
  • 正常登录屏幕或服务器的其他正常输出,但冻结

在崩溃之前,我们从未看到内核恐慌或至少日志中的一些消息,完全沉默,直到灯突然熄灭。

随着问题从一台服务器“转移”到另一台服务器(一台全新的机器),我认为只剩下几个选项了:

  • 特定的 VM 导致了该问题
  • 内核错误
  • 关于我们的设置的硬件问题

有关机器的更多信息:

  • CentOS 7 最新内核 (3.10.0-514.2.2.el7.x86_64)
  • 带有冗余电源的 Supermicro 机箱
  • 具有最新 BIOS 版本的 Supermicro X10DRi / X10DRWi
  • 英特尔至强 E5-2630 v3 / v4
  • 512 GB DDR4 ECC 内存(三星服务器内存)
  • 运行 145 个虚拟机(RAM 和 CPU 远未饱和,这也归功于 KSM)
  • 带有 8 / 16 个 SSD 的软件 RAID-10

有没有人看到过这种行为,或者可以谈谈控制台上奇怪的“消息”吗?我从未见过这样的事情,甚至不知道我应该如何为谷歌搜索描述这一点。目前我们还没有很好的想法接下来应该做什么,因为它可能是一切。

提前致谢!

hardware server-crashes kernel supermicro kvm-virtualization

5
推荐指数
1
解决办法
2034
查看次数