在过去的两三天里,我多次发现我的 U16.04 系统正在运行,但某些进程由于内存不足而被终止(下面的 Syslog 示例)。我的系统有 8GB 内存,在空闲状态下运行时(所有正常的后台进程都在运行)显示内存使用率为 26%。这听起来更像是这个问题:“https://askubuntu.com/questions/872188/oom-killer-is-killing-process-despite-free-memory-being-reported-on-system-monit",由于与主题无关而被搁置。
Syslog 示例:
Jan 17 07:36:18 graham-desktop kernel: [73589.744445] Out of memory: Kill process 2782 (insync) score 8 or sacrifice child
Jan 17 07:36:18 graham-desktop kernel: [73589.744472] Killed process 2782 (insync) total-vm:2684760kB, anon-rss:133684kB, file-rss:30632kB
Jan 17 07:36:20 graham-desktop kernel: [73592.460466] compiz invoked oom-killer: gfp_mask=0x24040c0, order=3, oom_score_adj=0
Jan 17 07:36:20 graham-desktop kernel: [73592.460469] compiz cpuset=/ mems_allowed=0
Jan 17 07:36:20 graham-desktop kernel: [73592.460474] CPU: 2 PID: 2360 Comm: compiz Tainted: P OE 4.4.0-59-generic #80-Ubuntu
Jan 17 07:36:20 graham-desktop kernel: [73592.460476] Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./Z77X-D3H, BIOS F16 10/24/2012
请注意,Insync 只是被终止的进程之一,“终止”并不会就此停止!
free -h 的输出(所有正常进程都在运行)是:总使用空闲共享缓冲区/缓存可用内存:7.8G 1.9G 474M 63M 5.4G 5.5G交换:9G 14M 9G
我仍在研究如何使用 smemstat。
我已经连续运行 smemstat 两天了,没有发现任何进程占用过多内存。我不认为这个问题是由任何特定的安装软件引起的。