Tar*_*oko 4 linux memory memory-leaks system
我有一个Linux硬件服务器,有16GB的物理内存并运行一些应用程序.到目前为止,这台服务器启动并运行了大约365天,我观察到"free -m"显示内存不足.
total used free shared buffers cached
Mem: 14966 13451 1515 0 234 237
-/+ buffers/cache: 12979 1987
Swap: 4094 367 3727
Run Code Online (Sandbox Code Playgroud)
据我所知,1987年系统中的实际可用内存不到14%.如果我在"ps -A v"输出中添加%MEM部分或从"top"添加,则它不会加起来为100%.
我需要理解为什么内存如此之低?
更新(2012年2月29日):
让我将这个问题分成两部分:
1)系统具有较少的可用内存.
2)识别已用内存的去向.
对于1),我理解; 如果系统在可用内存上运行不足,我们可能会看到性能逐渐下降.在某些时候,分页会为系统提供额外的空闲内存,从而恢复系统性能.如果我错了,请纠正我.
对于2),现在这就是我想要了解使用内存消失的地方.如果我总结输出"ps -A v"或"top -n 1 -b"中的%MEM,则不超过50%.那么在哪里可以解释其余40%的无法追踪的记忆.我们在服务器中有自己的内核模块.如果这些模块泄漏内存,他们会得到记录.是否可以知道内核模块中的泄漏量.
它并没有低位运行.可用内存不足.但那没关系,因为免费记忆完全没用.(可用内存是没有任何好处的内存.可用内存是一种内存,可以像在计算机中一样放在架子上.)
免费记忆很糟糕,没有任何意义.低可用内存是好的,这意味着你的系统已经找到了大部分内存的用途.
那有什么不好?如果您的系统运行缓慢,因为它没有足够的内存使用.
我能够识别并解决我的问题.但它并非没有http://linux-mm.org/Low_On_Memory上提供的信息的帮助.
slabinfo用于dentry的内存大约为5GB.发出"sync"命令后,脏页被同步到硬盘驱动器,命令"echo 3>/proc/sys/vm/drop_caches"通过删除更多缓存释放了更多内存.
除了上述网站中的文献之外,内核还以依赖于vfs_cache_pressure(/ proc/sys/vm/vfs_cache_pressure)的速率回收内存.
感谢大家的帮助.
| 归档时间: |
|
| 查看次数: |
8150 次 |
| 最近记录: |