web-dev-qa-db-ja.com

サーバーの使用レベルを決定するためのコマンド

VMパーク内のマシンのクラスターに接続する新しいプログラムのスクリプトを作成しており、使用レベルを確認できれば幸いです。VMクライアントはRHELとCentOSの組み合わせであり、複数のKVMホストで実行されます。

現在使用されているVMを確認することで、不要になったVMを見つけられるようにしたいと考えています。

システムの使用状況を示す良い指標は何ですか?また、それに応じてシステムを評価するのに役立つコマンドはどれですか?

Uptime、 "chkconfig --list"、last、psなどのコマンドを組み合わせると、使用率を判断できますが、非常に不正確なレベルだと思います。

システムの使用状況では、アプリケーションやユーザーに害を及ぼすことなく、マシンが使用されているのか、それともシャットダウンできるのかを考えています。

例を使用すると、他のサーバーとは大きく異なるサーバーがあるかどうかを判断できますが、使用されているかどうかを示すことはできません。

4
larhauga

モニタリング

これはかなり広く開かれた質問です。サーバーのCPU、ネットワークトラフィック、ファイルI/Oなどの負荷を監視するために使用できるアプリケーションはたくさんあります。

最も基本的なレベルでは、VMのCPU負荷を監視することから始めます。これは、VM自体の内部、またはVMホストの外部)の2つの方法で監視できます。

KVMホストを介した監視

最も基本的なレベルのa VMは単なるアプリケーションであるため、VMサーバー上の各KVM対応するqemuプロセスを監視します。

$ 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ゲストによる監視

詳細ビューが必要な場合は、実際に各VMを調べて、ローカルでデータを収集する必要があります。かなり良いデータを取得する1つの方法は、ツールsar。ほとんどのRHEL、CentOS、およびFedora OSには、このパッケージがデフォルトでインストールされています。

注: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パッケージには、他にも多くのツールがあります。これは、いくつかのアイデアを提供し、開始するためだけのものです。

参考文献

5
slm

あなたは実行することができます

ps -C qemu-kvm -o pid,time,etime,args

ホストで定期的に確認し、CPU時間の変化を確認します(timeフィールド)。これにより、より長い期間にわたる評価が可能になります。 VMがクラッシュまたはシャットダウンしたときに結果が失われないようにするために、結果を時々保存することができます。

0
Hauke Laging