服务器内存不足

服务器内存不足

在此处输入图片描述服务器内存不足,并开始终止进程​​,使用最多的应用程序消耗的总 PSS 内存(驻留内存中使用的实际内存)小于系统上的总内存,我想知道这些额外的内存使用情况发生在哪里?有什么想法吗?以下是 meminfo、smem、free -m 的输出,

任何建议都将不胜感激???

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

该盒子正在运行规则空间、clam 和 safesquid 代理。

在内存图中,当应用程序被终止时,内存出现大幅下降,然后我重新启动了 safesquid 服务……

答案1

@David Schwartz:我确信内核 OOM 终止程序会终止该进程。是的,我们需要知道要终止哪个进程。

我非常确定被终止的进程在某种程度上行为不当(或崩溃),因此它占用了大部分可用内存,此时内核的 OOM 终止程序决定将其终止。例如,这种行为在十年前非常猖獗(就我而言),当时 mozilla/firefox 比现在更容易泄漏内存。它会使用越来越多的内存,然后突然就消失了……你懂的。

答案2

嗯,具体细节如下:

无论被终止的进程是什么,都可能有内存泄漏。您的图表确实表明了这种情况。您应该更多地关注紫线而不是黄线。黄色实际上也是空闲内存

至于进程不使用总内存,我不清楚你在说什么,因为你没有告诉我机器中有多少内存。然而,内核和诸如页表,因此您现有的全部硬件内存无法供应用程序使用。

就你的情况而言,显示的总内存为 5.7G,这意味着你可能安装了 6G。对 meminfo 的非常详尽的解释可能会对您有所帮助,但总结一下就是您的大幅下降是由于内存泄漏的应用程序需要修复或至少定期重启。

相关内容