以下は、パフォーマンス低下の原因となっている OS 側の問題を診断するのに役立つ、基本的なコマンド以外の OS コマンドのリストです。上記のすべてのコマンドは、Linux 環境でのみテストされていることに注意してください。
パフォーマンスの問題を追跡する準備ができている場合は、開始するためのツールがいくつかあります:
- サー :sysstat パッケージがインストールされている状態で、sar コマンドを使用して、さまざまなシステム機能のアクティビティ情報を表示したり、時間の経過に伴うリソースの使用状況を把握したりします。インストールが完了すると、sysstat cron ジョブが 10 分ごとにシステム データを収集し、後で sar コマンドを使用して表示できます。 sar を使用すると、同じデータ型をライブで表示することもできます。
- dstat 注:vmstat、iostat、および ifstat の代替として作成された dstat は、さまざまなタイプのシステム データを組み合わせて表示するための多くのオプションを提供します。データを色で表示し、選択した列にさまざまな情報を表示できます。 dstat を使用すると、システムの CPU、ディスク I/O、ネットワーク アクティビティ、ページング、割り込み、負荷平均、メモリ、プロセス、タイム カウンター、およびファイル システムに関する統計を表示できます。 dstat を使用して、さまざまなタイプのリソースのライブ システム アクティビティを比較します。たとえば、大きなファイルのダウンロード中に、ネットワークとディスクのアクティビティを比較できます。
- ps :ps コマンドは、実行中のプロセスを確認する一般的な方法です。オプションと組み合わせると、ps を使用して、プロセスごとに表示する列を選択し、それらの列のいずれかでデータを並べ替えることができます。 ps を使用して、システムで現在実行されているすべてまたは任意のプロセスに関する情報を表示します。
- トップ :top を使用すると、数秒ごとに更新される、システムで実行されているプロセスの画面指向の表示を見ることができます。 CPU またはメモリの使用量で並べ替え、プロセスを強制終了または削除できます。 top を使用して、最も消費量の多いプロセスをすぐに見つけます。
- iostat :主に、iostat を使用すると、デバイス (ディスクやネットワーク インターフェイスなど) の I/O 統計を表示できます。これは、データがデバイスの読み取り/書き込み容量のパーセンテージで表示されるため、I/O ボトルネックをチェックするのに役立ちます。
- mpstat :mpstat コマンドは、CPU 使用率を一覧表示します。 mpstat を使用して、消費されている CPU の量を確認し、その消費がどこから来ているかについての一般的な考えを取得します。
- vmstat :vmstat コマンドを使用してメモリ統計を一覧表示します。パフォーマンスが悪い場合は、vmstat を使用して、メモリが使い果たされていないか、システムが過度にスワップしていないかを確認してください。
- iptraf :ネットワーク トラフィックを監視するグラフィカル ツールの場合は、iptraf コマンドを実行します。 iptraf を使用して、システムとの間で最も多くのネットワーク トラフィックを生成している特定の IP アドレスを確認します。
- tcpdump :このテキストベースのツールを使用すると、選択したネットワーク インターフェイスに到達するパケットを監視し、オプションでそれらのパケットをフィルター処理して、特定の種類のアクティビティを探すことができます。 tcpdump を使用して、特定のサービスに関連するパフォーマンスの問題を追跡します。特定のサービス宛てのパケットのみを表示するように選択できます。
- ワイヤーシャーク 注:このツールは、多くの分析機能を備えた tcpdump のグラフィカル バージョンです。このツールには、一般的に使用される多くのプロトコルのデコードと、それらをインタラクティブなグラフィカル ユーザー インターフェースに表示するためのサポートが含まれています。
それでは、リストアップしたツールのいくつかをさらに掘り下げてみましょう。
1. Linux 環境の「iotop」コマンド出力。
iotop コマンドは、ディスク I/O 用の top に似たユーティリティです。 Linux カーネル (v2.6.20 以降が必要) によって出力される I/O 使用情報を監視し、システム上のプロセスまたはスレッドによる現在の I/O 使用の表を表示します。これには、root ユーザーがコマンドを実行する必要があります。
2.「free」コマンド出力を使用してファイルシステム キャッシュ情報を収集し、ファイル システム キャッシュの使用状況を取得するには:
- メモリ使用量をチェックするための「free」コマンド
- 「バッファ」は、キャッシュ ディスク ブロック専用の RAM の割合を表します。 「キャッシュ」は「バッファ」と似ていますが、今回はファイル読み取りからページをキャッシュします。
- バッファは、まだディスクに「書き込まれていない」ものです。
- キャッシュとは、ディスクから「読み取られ」、後で使用するために保存されたものです。
3. 以下のコマンドを使用して、Linux に適用されている OS パッチのリストを確認します。これは、CT が過去に行った変更を特定するのに役立ちます:
# rpm -qa --last > last-rpms.txt注意 :適用されたパッチが日付と時刻とともに一覧表示されます。
4. dmesg 出力からの変更について、メモリ/CPU/IO/NUMA などに関する情報を収集します。 30 秒ごとに収集できます:
– イーサネット ポート eth0 に関連するハードウェア情報を表示するには:
$ dmesg | grep -i eth0
– 利用可能なメモリの合計と共有メモリの詳細を表示するには:
$ dmesg | grep -i Memory
– tty 情報を表示するには:
$ dmesg | grep -i tty
– NUMA 情報を表示するには:
$ dmesg | grep -i numa
– ハードディスク情報を表示するには:
$ dmesg | grep -i sda
– CPU 関連の情報を表示するには:
$ dmesg | grep -i CPU
5. グローバル システム メッセージ ログを収集するには:
/var/log/messages /var/log/dmesg
dmesg コマンドは、カーネル syslog リング バッファー メッセージの現在の内容を表示しますが、/var/log/dmesg ファイルには、ブート プロセスが最後に完了したときにそのリング バッファーにあったものが含まれています。 /var/log/dmesg は、次回の再起動まで変更されません。古いメッセージは、リング バッファ内の新しいメッセージに置き換えられます。
dmesg は /var/log/messages のサブセットであり、リング バッファーに保持されます。 /var/log/messages には、システムの起動から dmesg のメッセージを含むすべてのシステム メッセージが含まれます。簡単に言うと、dmesg からのログは /var/log/messages にダンプされます。
一般的な Linux ログ ファイルの名前と使用法:
- /var/log/messages :一般的なメッセージとシステム関連のもの
- /var/log/auth.log :認証ログ
- /var/log/kern.log :カーネルログ
- /var/log/cron.log :crond ログ (cron ジョブ)
- /var/log/maillog :メール サーバー ログ
- /var/log/qmail/ :Qmail ログ ディレクトリ (このディレクトリ内のその他のファイル)
- /var/log/httpd/ :Apache アクセスおよびエラー ログ ディレクトリ
- /var/log/lighttpd/ :Lighttpd アクセスおよびエラー ログ ディレクトリ
- /var/log/boot.log :システムの起動ログ
- /var/log/mysqld.log :MySQL データベース サーバーのログ ファイル
- /var/log/secure または /var/log/auth.log :認証ログ
- /var/log/utmp または /var/log/wtmp :ログイン記録ファイル
- /var/log/yum.log :Yum コマンドのログ ファイル。
6. hugepage が使用されているかどうかを確認します。 OSW コレクションの開始時と終了時にのみ実行するには:
# grep -i Hugepages /proc/meminfo # cat /proc/meminfo
7. OS で使用されているファイルシステムを確認します。一度だけ実行:
# cat /etc/fstab
8. 先週のシステム アクティビティに関する情報を収集するには:
/var/log/sa には、CPU 使用履歴情報を持つ sa および sar のファイルがあります。
# ls -al /var/log/sa | grep "Mar 12" -rw-r--r--. 1 root root 721996 Mar 12 23:50 sa12 -rw-r--r--. 1 root root 655607 Mar 12 23:53 sar12
「sar -W -f /var/log/sa/sa12」 – ページング/スワッピングの履歴情報を表示
# less /var/log/sa/sa12
9. CPU Arch 情報を取得するには:
# lscpu # cat /proc/cpuinfo
10. カーネル共有メモリ/セマフォ情報を取得するには:
# ipcs -lm # ipcs -ls # cat /proc/sys/kernel/shmmax # cat /proc/sys/kernel/shmmni getconf PAGE_SIZE # cat /proc/sys/kernel/shmall
11. ファイル ハンドルに関する情報を取得するには:
# cat /proc/sys/fs/file-max # cat /proc/sys/fs/file-nr
12. Open file descriptors/ maxproc の ulimit に関する情報を取得するには:
# su - oracle # ulimit -n # ulimit -u
13. IO リクエストごとの最大 IO サイズを確認するには:
# cat /sys/block/[device]/queue/max_sectors_kb
非同期 IO が使用されている場合の最大 I/O サイズをバイト単位で決定するには:
# cat /proc/sys/fs/aio-max-size
または
# cat /proc/sys/fs/aio-max-nr
14. ディスク デバイスのモデル、規格、構成、容量などを表示するには:
例:
# hdparm -I /dev/sda # sudo hdparm -i /dev/sda
15. 特定のデバイスのブロック サイズを確認するには:
例:
# blockdev --getbsz /dev/xvda1 # tune2fs -l /dev/vgxx/lvolx