Htopやtopコマンドなどのいくつかのプログラムをチェックしましたが、1分あたりのロギング機能が見つかりませんでした。
メモリの問題を追跡するためにそれを行う方法はありますか?
編集:私はlinodeを使用していて、Longviewを使用することにしました。
sysstat
パッケージをインストールして構成します。これは、まさにあなたが求めていることをします。
Sudo apt-get install sysstat
vmstat -S M 60
はそうします(メガバイト単位)。
実際にフリーRAMは「フリー+キャッシュ+ buf」であることを覚えておく必要があります。
ロギングの目的で、タイムスタンプを印刷して出力することは意味があるかもしれません。 g .:
vmstat -nS M 60 | while read _vmstat; do echo $(date --rfc-3339=seconds) $_vmstat; done
これを行っていたら、おそらく RRDtool でスクリプトを作成します。
RRDtoolは、間隔ベースのデータ収集用に構築されたもので、データの裏にあるグラフを構築します。 ISPのコントロールパネルでネットグラフを見たことがある場合は、RRDtoolで行った可能性があります。
どのように実装するかはあなた次第です。 cronを使用した「純粋な」bashソリューションがありますが、Nice PythonおよびPerlオプションもあります。
https://github.com/icc/rrdtool-bash-scripts/blob/master/memory.sh
私が見る限り、これは設定された場所の画像を更新します。それはウェブサーバー上にあるか、NFSを介してhomedirにスクラブされている可能性があります。
http://coreygoldberg.blogspot.co.uk/2008/05/python-rrdpy-round-robin-databases.html
これは独自のタイマーを保持しており、ほとんど何でも好きなことを行います。ぶらぶらするのは簡単ですが、ボートが浮いているので、バッシュする方が好きです。 Pythonを習得していない人にとってはセットアップが難しいでしょう。
これ以上の機能が必要な場合は、Muninをご覧ください。これは、RRDtoolを使用してシステムデータの全負荷をログに記録し、設定された間隔で静的なHTMLページを生成します。
これを行う方法がもう1つあります。 cronジョブを使用すると、これを取得できます。
* * * * * username /path/to/./script.sh
スクリプトは単純です
#!/bin/bash
echo "$(date +%Y%m%d-%H%M%S) $(free -mt | awk 'END{print $4}')" >> ~/memlog.txt
スクリプトを配置する前に
chmod +x script.sh
上記のスクリプトを作成して、先ほど言ったとおりに実行してから、スクリプトを/ usr/binの場所に配置します。次に/etc/crontab
を開きます
Sudo nano /etc/crontab
そしてそこに最初の行を置きます。そのスクリプトは毎分実行され、毎分メモリの詳細を提供します。
最後に、そのlog.txtファイルには1分ごとにメモリログの詳細が保持されます。
そして、私はもう一つの有用な情報をあなたのために持っています
watch cat log.txt
は、端末にlog.txtファイルを表示し、現在の端末のコンテンツlive.soを更新します。一度入力すると、log.txtファイルをライブで見ることができます。
ここで私のトリック。このコマンドを使用して、無料、vmstat、およびtopのレポートを5秒ごとにtxtファイルに追加します。
watch -n 5 'free -mt >> free-report.txt && vmstat -S M >> vm-report.txt && top -b -n1 >> top-report.txt'