1
我在基於ARM的嵌入式設備上安裝了Linux內核2.6.30。剖析Linux內核使用的內存
我必須在設備上執行一些內核內存使用情況分析。
我想監視各種內核線程和模塊ps輸出的同時,我進行操作,如無線開/關等
你能不能給我建議:
我需要哪些線程監控?如何監視內核模塊的內存使用情況?
我在基於ARM的嵌入式設備上安裝了Linux內核2.6.30。剖析Linux內核使用的內存
我必須在設備上執行一些內核內存使用情況分析。
我想監視各種內核線程和模塊ps輸出的同時,我進行操作,如無線開/關等
你能不能給我建議:
我需要哪些線程監控?如何監視內核模塊的內存使用情況?
有時候直接從內核獲取真實信息是非常有用的,我已經使用這個小C程序將所有適合shell的輸出格式的系統信息彙集到一起(編譯成一個漂亮的如果該事項小二進制) -
#include <sys/sysinfo.h>
int main(int argc, char **argv){
struct sysinfo info;
sysinfo(&info);
printf( "UPTIME_SECONDS=%d\n"
"LOAD_1MIN=%d\n"
"LOAD_5MIN=%d\n"
"LOAD_15MIN=%d\n"
"RAM_TOT=%d\n"
"RAM_FREE=%d\n"
"MEMUSEDKB=%d\n"
"RAM_SHARED=%d\n"
"RAM_BUFFERS=%d\n"
"SWAP_TOT=%d\n"
"SWAP_FREE=%d\n"
"PROCESSES=%d\n",
info.uptime,
info.loads[0],
info.loads[1],
info.loads[2],
info.totalram,
info.freeram,
(info.totalram-info.freeram)*info.mem_unit/1024,
info.sharedram,
info.bufferram,
info.totalswap,
info.freeswap,
info.procs);
}
我用它的外殼是這樣的:
eval `sysinfo`
BEFORERAM=$MEMUSEDKB
command &
sleep .1 #sleep value may need to be adjusted depending on command's run time
eval `sysinfo`
AFTERRAM=$MEMUSEDKB
echo RAMDELTA is $(($AFTERRAM - BEFORERAM))
什麼是你面對的,讓你想要做的分析問題? – 2012-03-02 19:23:51
@PavanManjunath基本上我們希望有儘可能多的內存可用於應用程序使用。我試圖找出內存被內核佔用/佔用的方式的一些低效率。 – abc 2012-03-02 20:03:54