Linuxサーバー保守運用時にたまに使うコマンド sar,vmstat,netstat,iostat,top

Published: 2016年2月8日 by tomsato

◼︎ 概要

linuxサーバを運用する時に使うコマンドについて紹介する
使い道としては、障害や負荷の状況や原因などを調べる際に活用する
詳細な使い方はググってもらうとして世の中はどういうコマンドがあるのかを見る

Linuxコマンド紹介シリーズ

◼︎ sar

わかること
主に、CPUの使用率とアイドル、読み書きI/Oの量、メモリの概況

$ sar
...

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      3.42      0.00      0.77      0.02      0.22     95.57
12:20:01 AM     all      3.39      0.00      0.74      0.02      0.15     95.70
 

◼︎ vmstat

わかること
主に、実行待ちの平均プロセス数、何らかの理由で待たされている(ブロックされている)平均プロセス数
CPU使用率、スワップへのI/O、通常のI/O、コンテキストスイッチの回数

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  21820 133544 321764 632300    0    0     0     8    2    2  3  1 96  0  0
 0  0  21820 133536 321764 632300    0    0     0    11   74   80  0  0 100  0  0
 0  0  21820 133536 321764 632300    0    0     0     8   72   80  0  0 100  0  0
 

◼︎ netstat

わかること
ホストのネットワーク接続状態、ルーティング・テーブル、インターフェイス、マスカレード、マルチキャストなど
ネットワーク関連のさまざまな情報を表示する
特定のポートで通信しているプロセスも調べられる

$ sudo netstat -anp | grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      28210/apache
tcp        0      0 xxx.xxx.xxx.xxx:80            xxx.xxx.xxx.xxx:54819           SYN_RECV    -
 

LISTEN:接続待ち状態
SYN_RECV:接続要求を受信しているソケット
ESTABLISHED:接続が確立したソケット
SYN_SENT:接続を試みているソケット
CLOSE_WAIT:リモート側から切断され,ソケットがクローズされるのを待っているソケット
TIME_WAIT:リモートからの切断が再送されるのを待っているソケット

◼︎ iostat

わかること
I/Oの統計情報を出力する、ディスクbusy率も出せる
ディスクの性能がボトルネックになっているか確認したいときに使える

$ iostat 5
...

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.96    0.00    0.71    0.02    0.08   96.23

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
scd0              0.00         0.00         0.00       1560          0
vda               1.36         0.69        31.91    6167792  283642549
vdb               0.00         0.00         0.01      32200      64480
 

◼︎ top

わかること
システム全体の負荷
プロセス、CPU、メモリ、スワップの統計情報など

top - 20:25:50 up 102 days, 21:20,  1 user,  load average: 0.12, 0.14, 0.09
Tasks: 151 total,   1 running, 150 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2054272k total,  1913848k used,   140424k free,   321148k buffers
Swap:  4194300k total,    21820k used,  4172480k free,   629648k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2966 root      20   0 1132m  44m 2912 S  0.3  2.2 111:20.15 ruby
17798 tomsato   20   0 15036 1244  932 R  0.3  0.1   0:00.01 top
    1 root      20   0 19360 1124  908 S  0.0  0.1   0:50.49 init
 

コメントを書く

※ 個別に返信が必要な時のみご記入ください

※ Emailは公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧