私は本当に私の質問をするより良い方法を知りませんでした、それであなたは恐ろしい名前の質問を受け取ります。
私がやりたいことを説明します、多分それはあなたが私を助けるのを助けるでしょう。
Linuxマシンで、マシン上のすべてのプロセスを継続的に(10分ごとに)監視したいと思います。私が必要とする各プロセスからの情報は、名前、CPU使用率、割り当てられた(仮想)メモリ、および常駐(RAM)メモリです。
これらの定期的なレポートを見ると、次のようになります。
PROCESS CPU RAM VIRTUAL
name1 % MB MB
name2 % MB MB
...etc..etc
これらのレポートは、日付/時刻のスコープ(範囲)を指定して後日アクセスできるように保存する必要があります。たとえば、12:00:001.12.12から12:00:002.12.12までのプロセスの履歴を確認したい場合は、次のことができます。これらの間の10分ごとのプロセスの履歴が表示されます。日付/時刻の境界。
戻り値の形式は重要ではありません。とにかくスクリプトによって処理され、必要なものに変更できます。
これまでにいくつか調べてきましたが、自分のニーズを明確に満たすものは見つかりませんでした。私が検索したものの中で: sar 、 free(1) 、 top(1) ..そして他のいくつかのもの。
これは単純な問題であるはずです。htop
を見るだけでこのすべての情報を確認できますが、必要なのは、各プロセスの目的のフィールドを10分ごとに収集するツールだけです。日付/時刻のスコープ(範囲)に基づいて、そのデータのスライスを抽出します。
注:私はLinuxの経験が限られているので、詳細な情報を提供してください。
注2:希望の出力は次のようになります(希望の範囲を受け取った後)
CPU USAGE BY PROCESS:
proc_nameA 1,2,2,2,2,2...... numbers represent % usage every 10 minutes...
proc_nameB 4,3,3,6,1,2......
他の情報と同じ考え。
atop
を試してください。
これらのシステム情報はすべて、5分または10分ごとに(ディストリビューションが選択した内容に応じて)デーモンとしてログに記録され、バイナリファイルに格納されます。次に、
atop -r
今日の標準ログファイルの内容をインタラクティブに表示します。これはhtop
のようなもので、追加のI/O情報が含まれているため、時間を遡ってその瞬間に何が起こったかを確認できます。押す t 前進し、 Shift+t 戻る。
特定の時間範囲を指定することもできます。マンページから:
With the flag -b (begin time) and/or -e (end time) followed by a time argument
of the form HH:MM, a certain time period within the raw file can be selected.
生ファイルに何を書き込むかについて、過度に構成可能ではありません。
開始するには、topのマンページももっと読むことをお勧めします。昨日のログファイルの内容を読み取ります。
これが私のマシン「zarafa」が今朝7:35:40と7:45:40の間にどのように機能していたかです: