我知道刷新进程是内核的垃圾收集器,但在我的情况下,在两台服务器上,该进程对 CPU 非常敏感。在大多数情况下,它使用 80-100% 的 CPU。
2898 root 20 0 0 0 0 R 78 0.0 2900:22 flush-0:21
Run Code Online (Sandbox Code Playgroud)
什么会导致这种情况。我想过内存损坏,但一次在两台服务器上?我认为它在内核升级后开始发生。也许有一些已知的错误?
编辑:
更新信息。它是 Gentoo Linux 64 位,内核版本是 2.6.39-gentoo-r2。它有 8 GB 的 RAM。没有太多的 IO 活动。
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 5.01 87.19 5.55 166452685 10596484
sdb 5.01 87.30 5.55 166662767 10596484
md0 10.05 160.74 2.75 306883505 5258392
md1 3.61 13.74 2.10 26229593 4006684
Run Code Online (Sandbox Code Playgroud)
奇怪的是 sda/sdb 上的 IO 活动,这些是交换分区,已关闭。
我们只使用 uwsgi 进程和一些从 crontab 运行的 Python 脚本。
iostat -x 5
Linux 2.6.39-gentoo-r2 (python-1) …Run Code Online (Sandbox Code Playgroud) 我正在阅读这篇文章,该文章讨论了即使 ram 总量大于 4GB,在 32 位 Windows 中专用于内核使用的最大 ram 量为 2GB。
这对于 32 位 linux 环境(如 32 位 ubuntu 10.04)是否相同?即使总主内存> 4GB,IE也是最大内核分配2GB ram?
如果在启用 PAE 选项的情况下通过重新编译内核将内存总量增加到 64GB 内存,那么可以专用于内核使用的最大内存量是多少?还是2GB?或者你可以增加它吗?
每次我启动一个新的 RHEL 实例时,我都喜欢yum update用最新的系统启动。但是,每次我尝试在此之后重新启动实例时,该实例都不会再上线。
我解决了内核更新的根本原因,以下是重现问题的最低步骤:
yum update kernel*reboot系统保持关闭。来自 EC2 管理控制台的系统日志没有多大帮助:
...
Please stand by while rebooting the system...
md: stopping all md devices.
xenbus_dev_shutdown: device/console/0: Initialising != Connected, skipping
Restarting system.
Run Code Online (Sandbox Code Playgroud)
没有提到内核崩溃、启动问题等。只是停留在那里。
据我所知,您似乎无法将默认内核与 EC2 实例一起使用。如果这是真的,我怎样才能避免yum在执行泛型时不小心用 更新内核,从而杀死我的实例yum update?
正如问题所述,如果我通过了怎么办
kernel /vmlinuz audit=1 audit=0
Run Code Online (Sandbox Code Playgroud)
审计是启用还是禁用?还是内核会崩溃?或者它是未定义的并且将取决于传递的内核/参数的构建?
我听说即使是像 EXT3/EXT4 这样的日志文件系统也可能在电源故障期间损坏,例如来自维基百科 [1]:
In the event of a system crash or power failure,
such file systems are quicker to bring back online and
less likely to become corrupted.
Run Code Online (Sandbox Code Playgroud)
任何人都可以通过举例来提供更多的细节,当
是否有任何命令可以读取文件并将其加载到linux磁盘缓存中?这是在最新的 debian 系统上。
我知道在一般情况下,最好让 linux 内核解决这个问题。但我有一个边缘情况。我有一台安装了 NFS 控制器的笔记本电脑,我想播放一个长视频文件,但我不想因为网络问题而中断播放。我知道稍后会完整读取(较大的)文件。我知道在播放这个视频时没有其他(真的)会运行。有足够的可用内存来存储此文件。
(我知道我可以将文件复制到新的 tmpfs 文件系统中,但我很好奇是否有更短的方法来做到这一点)
假设我刚刚aptitude safe-upgrade在 Debian 系统上做了一个,但我没有注意所以我没有注意到内核是否更新。
我现在如何确定是否进行了内核升级和重新启动?
root@monitor:/opt/observium# service syslog-ng restart
Stopping system logging: syslog-ng.
Starting system logging: syslog-ngsyslog-ng: Error setting capabilities, capability management disabled; error='Operation not permitted'
root@monitor:/opt/observium# uname -a
Linux monitor 2.6.32-042stab075.2 #1 SMP Tue Mar 5 15:21:53 MSK 2013 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这是内核的问题吗?
我对读取磁盘缓存对通过 NFS 访问文件的影响感兴趣。假设我在 NFS 上有一个文件。我从 linux 主机“A”访问它(做“cat myfile”)。如果有足够的 RAM,文件最终会出现在磁盘缓存中。现在我从主机“B”修改该文件。主机“A”上的操作系统如何知道它必须使缓存的那部分无效?是否有来自 NFS 的回调?或者磁盘缓存很快过期?
/proc/net/sockstat中mem和memory的单位是什么?字节,千字节,页?
[kbrandt@ny-kbrandt01: ~] cat /proc/net/sockstat
sockets: used 153
TCP: inuse 7 orphan 0 tw 0 alloc 8 mem 1
UDP: inuse 4 mem 3
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0
Run Code Online (Sandbox Code Playgroud)