Ale*_*x B 19 linux virtual-memory
Linux /proc/meminfo
显示了许多内存使用情况统计信息.
MemTotal: 4040732 kB
MemFree: 23160 kB
Buffers: 163340 kB
Cached: 3707080 kB
SwapCached: 0 kB
Active: 1129324 kB
Inactive: 2762912 kB
Run Code Online (Sandbox Code Playgroud)
他们之间有很多重叠.例如,据我所知,可以有活动页面缓存(属于"缓存"和"活动")和非活动页面缓存("非活动"+"缓存").
我想要做的是测量"免费"内存,但其中包括可能被丢弃的已使用页面,而不会对整个系统的性能产生重大影响.
起初,我倾向于使用"免费"+"非活动",但Linux的"免费"实用程序在其"缓冲区调整"显示中使用"自由"+"缓存",所以我很好奇什么是更好的方法.
当内核内存不足时,丢弃页面的优先级是什么?测量可用内存的更合适的度量标准是什么?
因为"可用内存"的精确含义取决于您的目的,您的目的是避免OOM情况:
看看Qt Extended(以前的Qtopia)如何预测OOM情况.
有两个事件:
/proc/meminfo
)/proc/vmstat
我认为是pgmajfault )第一个是内存不足的早期警告,并触发更频繁的页面故障监控.第二个信号摧毁,这会杀死系统性能并且是OOM杀手将会运行的良好暗示.
我想说,很难衡量哪些页面在删除时会导致系统“对整体系统性能产生重大影响”。用户进程使用的页面将为(总计)-(空闲+缓存+分页)。第二项是内核在需要时可以释放的所有内存。但是,释放用于缓存和页面的内存页面将对整体系统性能产生重大影响。
如果我要使用启发式方法,我会说您应该采用“Inactive”的值,即“空闲且可用的缓冲区或页面缓存内存总量(以千字节为单位)。这是具有以下功能的内存:最近没有被使用过,可以回收用于其他目的。” 如果您发现您采取了这一点并且系统继续正常工作,您也可以估计“活动”的一定百分比来作为猜测,因为系统最近可能使用了一些页面,但不会再次使用它们。你比我更了解这个系统。如果系统专用于您要做的任何事情,那么可能很快会使用的 Active 中的页面和缓存文件将取决于系统最近是否用于其他用途。
归档时间: |
|
查看次数: |
12262 次 |
最近记录: |