web-dev-qa-db-ja.com

Ubuntu Serverで1分あたりのメモリ使用量を記録する方法は?

Htopやtopコマンドなどのいくつかのプログラムをチェックしましたが、1分あたりのロギング機能が見つかりませんでした。

メモリの問題を追跡するためにそれを行う方法はありますか?

編集:私はlinodeを使用していて、Longviewを使用することにしました。

https://dl.dropboxusercontent.com/u/28301519/2013-04-18_231652.png

2
mirza

sysstatパッケージをインストールして構成します。これは、まさにあなたが求めていることをします。

Sudo apt-get install sysstat
7
Mike Scott

vmstat -S M 60はそうします(メガバイト単位)。

実際にフリーRAMは「フリー+キャッシュ+ buf」であることを覚えておく必要があります。

ロギングの目的で、タイムスタンプを印刷して出力することは意味があるかもしれません。 g .:

vmstat -nS M 60 | while read _vmstat; do echo $(date --rfc-3339=seconds) $_vmstat; done

3
poige

これを行っていたら、おそらく RRDtool でスクリプトを作成します。

RRDtoolは、間隔ベースのデータ収集用に構築されたもので、データの裏にあるグラフを構築します。 ISPのコントロールパネルでネットグラフを見たことがある場合は、RRDtoolで行った可能性があります。

どのように実装するかはあなた次第です。 cronを使用した「純粋な」bashソリューションがありますが、Nice PythonおよびPerlオプションもあります。

これ以上の機能が必要な場合は、Muninをご覧ください。これは、RRDtoolを使用してシステムデータの全負荷をログに記録し、設定された間隔で静的なHTMLページを生成します。

3
Oli

これを行う方法がもう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ファイルをライブで見ることができます。

3
rɑːdʒɑ

ここで私のトリック。このコマンドを使用して、無料、vmstat、およびtopのレポートを5秒ごとにtxtファイルに追加します。

 watch -n 5 'free -mt  >> free-report.txt && vmstat -S M >> vm-report.txt && top -b -n1 >> top-report.txt'
1
user1922625