コンテンツは/proc
メモリ内にあるので、そのコンテンツを繰り返し(例えば毎秒)読み込むのにどのくらいの費用がかかりますか?プログラムは次のようなことをしますかtop
、htop
それともatop
そうしますか(/proc
与えられた間隔ごとに読みます)?
答え1
/proc
一般的な状況では、ユーザーが毎秒1回読み取るのに費用はかかりません。ただし、他の操作を遅らせるカーネル側のロックが必要なため、高価なファイルがいくつかあります。
たとえば、次のような場合があります。https://serverfault.com/questions/943866/proc-sys-net-netfilter-nf-conntrack-count-extreme-drop-when-reading-proc-net-n
いくつかの理由で、top
プログラムはconntrack
次のような他の手段を使用しようとします。netlink
/proc
テキストベースの方法なので、100%安定していません。プログラムはファイルをスキャンして解析する必要があります。カーネルバージョン間で変更されないことを願っています。- 前述のように、一部の/procファイルはサイズによっては読み取りに費用がかかる場合があります。
- この
netlink
メソッドは比率を返すことができます。/proc
答え2
これはあなたが探している答えではないかもしれません。はい、最初の質問の場合はまだ存在しますが、費用がかかるとは思わないでください(変数が多すぎます)。 2番目の質問はわかりません。システム負荷の監視中に実行中のプロセスからメモリを消去するために追加されたコマンドを「テスト」してみることができます。
同期エコ1> /proc/sys/vm/drop_caches
同期;エコ 2 > /proc/sys/vm/drop_caches
エコ 3 > /proc/sys/vm/drop_caches