原因調査用Linuxコマンド


サーバの動作に異常が発生した際に原因を探るためのLinuxコマンドで、自分用のメモです。
全てmanとかググったら出てくるので説明は適当です。思いついたら後で追記していくかもです。

対象はDebian Squeezeになります。
全てパッケージインストールできるもので、パッケージ名は [in packagename] としてあります。



各所よりコメントありがとうございます。
良さ気なコマンドは追記していきます。

<追加したコマンド>
* telnet (+コメント wget, netcat)
* arp (+コメント arpwatch)
* pstree
* fdisk コメントに gdisk
* host, dig
* watch
* reboot

コマンド追加により縦長になったので目次を追加しました


目次

プロセス系

  • ps
  • pstree
  • top
  • lsof
  • vmstat
  • pidstat
  • mpstat
  • dstat
  • /proc/$PID/

  • Disk I/O系

  • df
  • iotop
  • iostat

  • Network系

  • ping
  • ifconfig
  • ip
  • route
  • traceroute
  • mtr
  • netstat
  • tcpdump
  • iptables
  • arp
  • telnet

  • DNS系

  • host
  • dig

  • OS系

  • sysctl
  • mount
  • fdisk
  • ulimit
  • /proc/
  • reboot

  • ガチンコデバッグ系

  • strace
  • sar

  • 性能計測

  • fio
  • snmpwalk

  • 補助ツール

  • watch

  • 解決力に関わる要素




    プロセス系

    ps [in procps]

    プロセスの表示。

    pstree [in psmisc]

    プロセスの親子関係をツリー表示。

    top [in procps]

    心の友。医師の触診と同じ。

    lsof [in lsof]

    プロセスが開いているファイルのリストとか。

    vmstat [in procps]

    topの簡易表示的な。最近はContextSwitchとか診る時以外あんま使わない。

    pidstat [in sysstat]

    プロセス毎に色々表示。

    mpstat [in sysstat]

    CPU情報表示。

    dstat [in dstat]

    色々カラフルに表示。
  • dstatの万能感がハンパない – (ひ)メモ
  • /proc/$PID/

    プロセス毎の色んな情報。


    Disk I/O系

    df [in coreutils]

    パーティションとかディスク容量確認。

    iotop [in iotop]

    プロセス毎にDiskI/Oを表示。

    iostat [in sysstat]

    デバイス毎にDiskI/Oを表示。


    Network系

    ping [in procps]

    ご挨拶。死活確認とかルーティング確認とか。

    ifconfig [in net-tools]

    ネットワークインターフェースの表示とか設定。

    ip [in iproute]

    割り当てアドレスの表示。

    route [in net-tools]

    経路の表示とか設定。

    traceroute [in traceroute]

    通信経路の確認。ここ数年、使った覚えない・・・

    mtr [in mtr-tiny]

    通信経路の継続表示。どこで、どのくらいの品質なのかまでわかる。
    mtrパッケージだとX11用途と不要なので mtr-tiny で十分。
  • MTR
  • Diagnosing Network Issues with MTR
  • netstat [in net-tools]

    ネットワーク接続情報を表示。
    TCP/UDP のポート見たり、FIN_WAIT とか CLOSE_WAITの量を見たり。

    tcpdump [in tcpdump]

    パケットがちゃんと行ったり来たりしてるか確認。FORWARD関連で大活躍

    iptables [in iptables]

    iptablesでファイヤーウォール作ってる場合はパケット数とかDROP見る。

    arp [in net-tools]

    Pingを返さないサーバの確認や、IPアドレス重複事件の解決に。

    telnet [in telnet]

    サーバと密なお話。HTTPだけならnetcatやwgetもアリ。


    DNS系

    host [in bind9-host]

    正引き。nslookupよりこっち使う。

    dig [in dnsutils]

    高機能な名前解決など。


    OS系

    sysctl [in procps]

    OSのチューニング的な。

    mount [in mount]

    マウントオプション見たり。

    fdisk [in util-linux]

    デバイスやパーティション情報の表示が主。
    2TB以上のGPTだと gdisk を使いたいが >= squeeze-backports

    ulimit [shell builtin]

    ユーザごとの色んな制限。
  • 過去記事:ulimitが効かない不安を無くす設定
  • /proc/

    reboot [in sysvinit]

    OS再起動したら直る、という結論が負け犬かどうかは貴方次第。


    ガチンコデバッグ系

    strace [in strace]

    処理の詳細なトレース。
  • Linuxデバッグコマンド strace の基本的な使い方
  • sar [in sysstat]

    色んなシステム情報の取得。
  • 逆引きUNIXコマンド/システム情報を取得する・sarコマンド
  • sarコマンドのオプションと使用法
  • sarコマンドの見方

  • 性能計測

    fio [in fio]

    I/O性能計測。

    snmpwalk [in snmp]

    snmpdから直接値を取得。


    補助ツール

    watch [in procps]

    定期的なプログラムの実行。


    解決力に関わる要素

    根気

    諦めないその精神と、それを持続するためのブドウ糖。

    経験

    何を知り、何を調べ、どう詰め寄るかの効率的なスケジューリング。

    閃き

    たまには当てずっぽうで検証して原因を特定したり、仮定から逆詰めしたり。

    相談

    人に相談しようと内容を整理して説明している途中で解決できちゃうテディベア現象。

    睡眠

    ギブアップ一歩手前で30分くらい寝て、起きてみるといきなり解決できること多し。



    これらのコマンドを駆使して、発生タイミングや条件を探して異常値と原因を特定していくだけの簡単なお仕事です。

    問題の整理から原因の特定まではかったるい作業だけど、
    解決に至った時の達成感はエンジニアの至福!!

    原因調査用Linuxコマンド への19件のコメント

    1. ピンバック: 【コンピューター】 原因調査用Linuxコマンド | 外道父の匠 2012年10月23日 夕刊 | aquadrops * news

    2. 匿名 より:

      tracerouteの代わりにmrtを。
      経路の途中で障害が発生していないか調査したいとき等に重宝します。

      MTR “mtr combines the functionality of the ‘traceroute’ and ‘ping’ programs in a single network diagnostic tool. ”
      http://www.bitwizard.nl/mtr/

      • 外道父 より:

        mtr 初耳でした。
        とてもエレガントなので追加させていただきます!

    3. zaki50 より:

      Network 系だと host とか dig で DNS 周りのトラブルの原因調査をした記憶があります

      • 外道父 より:

        DNS周り好きな割に忘れてました!追加します。
        特にメールとDNSの関連障害を調べる時によくdigりますね。

    4. ピンバック: 【コンピューター】 原因調査用Linuxコマンド | 外道父の匠 2012年10月24日 深夜便 | aquadrops * news

    5. 外道父 より:

      コマンド追加により縦長になったので目次を追加しました

    6. 外道父 より:

      telnet, arp, pstree, gdiskコメント, host, dig, watch, reboot
      を追加しました

    7. ピンバック: 【コンピューター】 原因調査用Linuxコマンド | 外道父の匠 2012年10月24日 朝刊 | aquadrops * news

    8. ピンバック: 原因調査用Linuxコマンド | 外道父の匠 | tksystem

    9. ピンバック: 【コンピューター】 原因調査用Linuxコマンド | 外道父の匠 2012年10月24日 昼刊 | aquadrops * news

    10. ピンバック: 【コンピューター】 原因調査用Linuxコマンド | 外道父の匠 2012年10月24日 夕刊 | aquadrops * news

    11. ピンバック: Kobashigawa Homepage

    12. ピンバック: 【コンピューター】 激震走る! あなたの会社は大丈夫? 馬鹿系SEO業者がしでかすこんなこと! | More Access,More Fun! 2012年10月25日 深夜便 | aquadrops * news

    13. ピンバック: 【コンピューター】 大規模 JavaScript その設計と実装と現実 2012年10月25日 朝刊 | aquadrops * news

    14. ピンバック: 【コンピューター】 大規模 JavaScript その設計と実装と現実 2012年10月25日 昼刊 | aquadrops * news

    15. ピンバック: 僕の Evernote 技術関連リンク | Sleep Walking

    16. With former ‘Skins offensive coordinator Kyle Shanahan embedded in Cleveland.
      nike sb janoski lunar http://www.benouri.com/etude.asp?pascher=nike-sb-janoski-lunar

    17. ピンバック: 負荷調査のセオリー

    コメントを残す

    メールアドレスが公開されることはありません。

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre class="" title="" data-url=""> <span class="" title="" data-url="">