我希望有人能引导我走向正确的方向。
我最近在服务器上更新了一些软件,几天后,这个软件因为无法分配内存而崩溃了。最初,我认为新版本中存在错误,直到我检查其他 Oracle Linux 7 服务器(没有更新的软件)并观察到以下内容:
[root@server yabbath]# free -mh
total used free shared buff/cache available
Mem: 62G 2.2G 42G 24M 18G 59G
Swap: 63G 0B 63G
[root@server2 yabbath]# free -mh
total used free shared buff/cache available
Mem: 62G 11G 4.1G 34M 47G 50G
Swap: 31G 0B 31G
不幸的是,监控不会减去 buff/cache 值,所以一切看起来都很好。实现后,我得到了下图:
smem 输出如下
smem -r
PID User Command Swap USS PSS RSS
1485 mongod /usr/bin/mongod -f /etc/mon 0 1155092 1155941 1160916
20146 root /usr/sbin/nsrexecd 0 38884 38987 41232
1365 zabbix /usr/sbin/zabbix_agent2 -c 0 30956 31471 35648
1835 zabbix /usr/sbin/zabbix-agent2-plu 0 21796 21836 23304
1366 root /usr/bin/python2 -Es /usr/s 0 13060 14959 22176
682 root /usr/lib/systemd/systemd-jo 0 4988 14089 34972
1046 polkitd /usr/lib/polkit-1/polkitd - 0 8184 9462 14724
10225 root python /bin/smem -r 0 7592 8479 11488
1363 redis /usr/local/bin/redis-server 0 7132 7848 10776
1371 root /usr/sbin/rsyslogd -n 0 1876 7605 23312
1369 redis /usr/local/bin/redis-sentin 0 5992 6705 9624
1105 root /usr/sbin/NetworkManager -- 0 5164 6689 13908
1 root /usr/lib/systemd/systemd -- 0 4852 5658 10416
1040 root /usr/bin/VGAuthService -s 0 3596 4198 9340
717 root /usr/lib/systemd/systemd-ud 0 3240 3998 8468
有人可以告诉我如何获取有关哪个进程正在使用多少缓冲/缓存内存的信息吗?
预先感谢并致以问候,
亚伯斯
编辑:
这只是许多服务器中的一个。我也有一些机器,其中 buff/缓存内存使用了 47GB(总共 64GB)。