サーバー使用量レベルを決定するために使用されるコマンド

サーバー使用量レベルを決定するために使用されるコマンド

私は、仮想マシンパークのマシングループに接続し、使用量レベルを確認する新しいプログラムを作成しています。 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オペレーティングシステムにデフォルトでインストールされます。

メモ: sarsysstatパッケージの一部です!

パラメータなしのデフォルト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変更があるか定期的に確認してください。これにより、長期にわたって評価することができます。仮想マシンがクラッシュまたはシャットダウンした場合、結果を失わないように、結果を随時保存できます。

関連情報