ARMベースの組み込みデバイスにはLinuxカーネル2.6.30があり、デバイスでカーネルメモリ使用量分析を実行する必要があります。
Wi-Fiのオン/オフなどの操作を実行しながら、さまざまなカーネルスレッドとモジュールでps出力を監視するつもりです。
私に提案してもらえますか?
どのスレッドを監視する必要がありますか?カーネルモジュールのメモリ使用量を監視する方法は?
答え1
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/マップ- 現在のプロセスによってマップされたすべてのメモリを一覧表示します。
/proc/PID/smaps- 常駐/共有/汚れたメモリ量に関する詳細情報を提供します...ファイルは長いかもしれませんが、より意味のあるデータを生成するためにPythonスクリプトを書くことができます。