我有一台机器内存泄漏(即使在应用程序重新启动后) - 两台机器运行具有相似工作负载的相似应用程序,4.x 内核版本略有不同
Active(file)
明显的区别是+ Inactive(file)
+shmem
与Cached
+相比的总数(来自 /proc/meminfo)Buffer
是不同的对于坏机器和相同的对于好的(和其他)机器。
这些值应该相同吗?这看起来像内核错误/泄漏吗?
更多详情...
/proc/meminfo
(换算成MB)
Bad m Good m
48042 48042 mB MemTotal:
376 495 mB MemFree:
25904 26086 mB MemAvailable:
0 0 mB Buffers:
3589 11034 mB Cached:
29 69 mB SwapCached:
31825 24374 mB Active:
14010 5505 mB Inactive:
19263 19191 mB Active(anon):
1889 2090 mB Inactive(anon):
12561 5183 mB Active(file):
12121 3414 mB Inactive(file):
655 2436 mB Shmem:
一些计算...
4877 28240 mB Cache+Slab Mem:buffer/cache
42788 19307 mB MemTotal-MemFree-Cached-Slab Mem:used
25338 11034 mB Active(file)+Inactive(file)+shmem
3589 11034 mB Cached
-21750 0 mB diff
进一步调查发现,如果运行类似此脚本的脚本(仅在坏内核上),它将导致差异增加,直到 free 大约为零,然后保持平衡:
#!/bin/ksh
while true
do
X=`/bin/echo 1`
done