私は、仮想マシンパークのマシングループに接続し、使用量レベルを確認する新しいプログラムを作成しています。 VM クライアントは RHEL と CentOS の組み合わせであり、複数の KVM ホストで実行されます。
現在どの用途に使用されているかを調べて、不要になったVMを見つけることができます。
システム使用量を示す良い指標は何ですか?それに応じてシステムを評価するのに役立つコマンドは何ですか?
uptime、 "chkconfig --list"、last、psなどのコマンドを組み合わせると、使い方を確認できますが、非常に不正確なレベルだと思います。
システムを使用する場合は、マシンが使用されているのか、それともアプリケーションやユーザーに害を及ぼすことなく終了できるのかを考えてみましょう。
これらの例では、他のサーバーとは大きく異なるサーバーがあるかどうかを確認できますが、そのサーバーが使用されているかどうかはわかりません。
答え1
監視装置
これはかなり広範な一般的な質問です。サーバーCPU負荷、ネットワークトラフィック、ファイルI / Oなどを監視するために使用できるさまざまなアプリケーションがあります。
最も基本的なレベルでは、仮想マシンのCPU負荷を監視することから始めます。これは、仮想マシン自体の内部または仮想マシンホストの外部の2つの方法で監視できます。
KVMホストによる監視
最も基本的なレベルの仮想マシンはアプリケーションであるため、対応するqemuプロセスを監視するだけで、KVMサーバー上の各仮想マシンを監視できます。
$ ps -C qemu-kvm -o pid,time,etime,pcpu,args|perl -lane 'printf "%-7s %-12s %-12s %-5s %-5s %-s\n", @F[0..3,9,13]'
PID TIME ELAPSED %CPU
3860 11:37:32 85-10:32:43 0.5 512 mungr
4005 3-22:34:33 85-10:32:25 4.6 512 cobbler
4447 4-20:11:27 85-10:31:14 5.6 2048 mercury
6788 02:28:58 54-08:59:04 0.1 1024 xwiki
23916 1-03:46:02 80-09:51:47 1.4 512 fan
32539 02:17:48 1-08:50:54 6.9 1024 visualstudio
たとえば、上記の内容は、KVMの名前(6列)と使用中の%CPU(4列)だけでなく、これまでに使用した実際のCPU時間(2列)と使用期間も表示します。経過しました。実行中(3番目の列)。列5には、KVMに割り当てられているRAMの量が表示されます。
KVMによるゲストの監視
より詳細な表示が必要な場合は、実際に各仮想マシンを詳しく見て、ローカルでデータを収集する必要があります。良いデータを取得する1つの方法は、このツールを使用することですsar
。このパッケージは、ほとんどのRHEL、CentOS、およびFedoraオペレーティングシステムにデフォルトでインストールされます。
メモ: sar
sysstatパッケージの一部です!
パラメータなしのデフォルトsar
コマンドは、午前12時から現在時刻までの当日のCPU使用率を返します。
たとえば、
$ date
Tue May 7 21:31:54 EDT 2013
$ sar
Linux 2.6.35.14-106.fc14.x86_64 (grinchy) 05/07/2013 _x86_64_ (4 CPU)
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 24.86 0.00 3.98 6.01 0.00 65.16
12:20:01 AM all 25.12 0.00 3.98 5.98 0.00 64.93
...
...
09:20:01 PM all 36.06 0.00 5.00 4.95 0.00 54.00
09:30:01 PM all 35.40 0.00 4.97 4.66 0.00 54.97
Average: all 22.29 0.08 4.37 4.80 0.00 68.46
最後の行には、対応する各測定値の合計平均が表示されます。また、データは10分ごとにサンプリングされます。もちろん、これは設定可能です。
このsar
ツールはCPU使用率以上の機能を実行できます。ファイルI / O、ネットワーク、メモリページングなどを監視できる完全なパッケージです。
また、データをCSVやXML形式などで生成し、レポートも生成できます!
パッケージのインストール
あなたが使用しているアイデアchkconfig --list
は、与えられたボックスに設定されたサービスを決定し始める方法です。ボックスの設定方法に応じて、ボックスは通常ランレベル3で実行されるように設定されます。次のコマンドを使用します。
$ chkconfig --list |grep 3:on
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
...
...
vboxdrv 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vboxweb-service 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
ユーザーがログインしています。
このツールを使用すると、ユーザーがac
システムにログインしているかどうかを確認できます。
たとえば、
$ ac -pd
sam 0.15
Apr 28 total 0.15
sam 0.32
Apr 29 total 0.32
sam 0.00
Apr 30 total 0.00
sam 0.01
joeuser 0.00
May 3 total 0.01
sam 1.54
May 5 total 1.54
sam 0.01
Today total 0.01
特定のユーザーのシステムログインに関する毎日の詳細を表示します。
プロセス会計
Linuxシステムで何が起こっているのかを本当に追跡したい場合は、プロセスアカウントを有効にできます。これはサービスです/etc/init.d/psacct
。これにより、サービスが最後に実行された時間、特定のユーザーが最後に実行したコマンドなどの完全な詳細が表示されます。ほぼ9ヤードに達する距離です。
はい
ユーザーvivekが実行した最後のコマンド
$ lastcomm vivek
userhelper S X vivek pts/0 0.00 secs Mon Nov 13 23:58
userhelper S vivek pts/0 0.00 secs Mon Nov 13 23:45
rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45
rpmq vivek pts/0 0.00 secs Mon Nov 13 23:45
rpmq vivek pts/0 0.01 secs Mon Nov 13 23:45
gcc vivek pts/0 0.00 secs Mon Nov 13 23:45
rm が最後に実行された時刻
$ lastcomm rm
rm S root pts/0 0.00 secs Tue Nov 14 00:39
rm S root pts/0 0.00 secs Tue Nov 14 00:39
rm S root pts/0 0.00 secs Tue Nov 14 00:38
たとえば、最後の手法を使用すると、Apacheが最後に実行された時刻(httpd)を確認できます。
このpsacct
パッケージには他の多くのツールがあります。これはあなたにいくつかのアイデアを提供し始めるのを助けるためのものです。
引用する
答え2
あなたは実行することができます
ps -C qemu-kvm -o pid,time,etime,args
ホストのCPU時間(フィールド)にtime
変更があるか定期的に確認してください。これにより、長期にわたって評価することができます。仮想マシンがクラッシュまたはシャットダウンした場合、結果を失わないように、結果を随時保存できます。