我在一个基于ARM的嵌入式设备上有一个linux内核2.6.30,我必须在该设备上做一些内核内存使用情况分析。
我正在考虑监视各个内核线程和模块上的ps输出,同时执行诸如wifi、on/off等操作。
你能建议我:
我需要监视哪些线程?如何监控内核模块内存的使用?
发布于 2012-08-07 14:05:04
有几种方法可以监视Linux系统中的内存使用情况。一些可能是可用的,也可能不是,取决于
由于Linux通常是一个虚拟内存系统,一些统计数据可能会误导和/或不准确。挖掘和理解每一种状态的含义是很重要的。
尽管如此,我通常通过运行vmstat来监视内存的使用情况,以了解内存的总体使用情况:
# vmstat -s
127168 total memory
44072 used memory
33296 active memory
2164 inactive memory
83096 free memory
0 buffer memory
20468 swap cache
0 total swap
0 used swap
0 free swap
582750 non-nice user cpu ticks
0 nice user cpu ticks
160883 system cpu ticks
7448748 idle cpu ticks
0 IO-wait cpu ticks
16066 IRQ cpu ticks
18249 softirq cpu ticks
0 stolen cpu ticks
0 pages paged in
0 pages paged out
0 pages swapped in
0 pages swapped out
15079537 interrupts
28629740 CPU context switches
1344249586 boot time
25532 forks“免费”也会让你鸟瞰记忆的使用情况。如果我看到任何意外情况,我将通过检查procfs中的文件来查看可疑进程。好的文件是
/proc/PID/maps这列出了进程当前映射的所有内存
/proc/PID/smaps -提供了更多关于内存驻留/共享/脏/等等的详细信息.这个文件可以是冗长的,但是可以编写Python脚本来生成更有意义的数据。
https://unix.stackexchange.com/questions/33119
复制相似问题