服务器运行内存不足,并开始杀死进程,顶部使用应用程序占用的总PSS内存(从驻留内存使用的实际内存)小于系统上的总内存,我想找出这个额外的内存使用情况在哪里? 任何想法,下面是meminfo,smem,free -m,
任何build议将非常感激?
cat /proc/meminfo MemTotal: 5976008 kB MemFree: 138768 kB Buffers: 2292 kB Cached: 57444 kB SwapCached: 85980 kB Active: 324332 kB Inactive: 121836 kB Active(anon): 309264 kB Inactive(anon): 77992 kB Active(file): 15068 kB Inactive(file): 43844 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 8159224 kB SwapFree: 6836184 kB Dirty: 572 kB Writeback: 0 kB AnonPages: 372160 kB Mapped: 13976 kB Shmem: 472 kB Slab: 328216 kB SReclaimable: 92544 kB SUnreclaim: 235672 kB KernelStack: 4824 kB PageTables: 14732 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 8159224 kB Committed_AS: 4940480 kB VmallocTotal: 34359738367 kB VmallocUsed: 102424 kB VmallocChunk: 34359584392 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 6384 kB DirectMap2M: 2080768 kB DirectMap1G: 4194304 kB SMEM usage: 30971 root python /usr/local/scripts/s 2432 660 860 1204 23296 root /usr/bin/spamd -d -c -m5 -H 58296 1460 1564 1868 2763 ufc csrv -c /home/ufc/ufclient/ 116000 12768 12792 13084 55819 root /usr/bin/python /bin/smem 0 22356 22988 24364 2101 root clamd 189228 41224 41280 41700 32914 root /opt/safesquid/safesquid/sa 831120 5808 138619 271844 [root@server sysadmin]# free -m total used free shared buffers cached Mem: 5835 5695 140 0 1 19 -/+ buffers/cache: 5674 161 Swap: 7967 1315 6652
更新:
现在服务器恢复正常,但是内存使用量是指数级的,并且一直持续上升,直到7小时后应用程序被杀死
Out of memory: Kill process 14585 (safesquid) score 81 or sacrifice child Killed process 16141, UID 500, (python) total-vm:79284kB, anon-rss:2656kB, file-rss:680kB top - 21:58:16 up 16 days, 11:10, 1 user, load average: 0.46, 0.74, 0.78 Tasks: 243 total, 1 running, 242 sleeping, 0 stopped, 0 zombie Cpu(s): 5.7%us, 5.8%sy, 0.0%ni, 88.3%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st Mem: 5976008k total, 5830648k used, 145360k free, 35724k buffers Swap: 8159224k total, 445384k used, 7713840k free, 3684540k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4960 ssquid 20 0 1000m 534m 3068 S 20.6 9.2 90:19.40 safesquid 2101 clamav 20 0 4153m 85m 1672 S 2.0 1.5 536:42.26 clamd 23333 root 20 0 244m 50m 1940 S 0.0 0.9 2:10.84 spamd 2763 ufc 20 0 1628m 32m 25m S 1.0 0.5 399:12.74 csrv 61303 root 20 0 97876 4380 3304 S 0.0 0.1 0:00.28 sshd 23296 root 20 0 227m 3424 928 S 0.0 0.1 0:07.87 spamd
该框正在运行rulespace,clam和safesquid代理。
在内存图中,大的下降是当应用程序死亡,我重新启动了safesquid服务…
@David Schwartz:我很确定内核OOM杀手杀死了这个进程。 是的,我们需要知道哪个进程正在被杀死。
我非常肯定,被杀死的进程在某种程度上(或者是崩溃)是不正常的,结果是它使用了大部分可用的内存,在这一点上内核的OOM杀手决定将其closures。 例如,这种行为在我十几年前猖獗(当时是mozilla / firefox比现在更容易出现内存泄漏)。 它会越来越多地使用,突然它就消失了…你明白了。
那么,这是细节:
无论什么进程被杀害可能有内存泄漏。 你的图表当然会使情况如此。 你应该把注意力集中在比黄色更多的紫色线上。 黄色实际上也是自由的记忆 。
至于没有使用全部内存的进程,目前还不清楚你说的是什么,因为你没有告诉我该机器有多less。 但是,内核总是会使用一定量的内存,而像页表一样 ,所以应用程序不能使用适当的硬件内存。
在你的情况下,你有5.7G的总内存显示,这意味着你可能已经安装了6G。 meminfo的一个非常详尽的解释可能会帮助你,但总结是你的大滴是来自内存泄漏的应用程序,需要修复或至less定期重新启动。