解析トラブル Linuxマシンの動作のもたつき 原因調査と解決策

バイオインフォマティクス解析で使用するツールは、計算が長く続いたり、メモリを大量に必要とするもの、たくさんのファイルを出力するものなど、大きな負荷がかかるものが多いです。このようなツールを使う場合、コンピュータのパフォーマンス管理がしっかりできていないと、思わぬトラブルに見舞われてしまうこともあります。

様々な調査方法や解決策について知識武装し、普段から扱いに慣れていれば、トラブルが発生したときに大きな強みになります。

動作のもたつき 原因調査に使えるツール

top

top とは

top(トップ)はほとんどのUnix系オペレーティングシステムにあるコマンドで、自動的に更新されるプロセス一覧を作成する。デフォルトではプロセスはCPU使用率の順に並べられ、CPU消費の「トップ」グループだけを表示するタスクマネージャーである。topはCPUやメモリの使用量に加え、実行中のプロセスに関するその他の情報も表示する。

ウィキペディア – top(UNIX)

top 表示内容

起動と画面表示

topを実行すると、CPUやメモリの情報・プロセスの情報が3秒間隔で表示されます(間隔はオプションなどを指定することで変更可能)。

$ top
top サマリー
  • Task タスク数や稼働中・停止中などの情報。zombieに注意。
  • Cpu CPUの使用状況
  • Mem 物理メモリの使用状況
  • Swap スワップ領域の使用状況
top 主なフィールド
  • PID プロセスID
  • USER ユーザー
  • %CPU プロセス毎のCPU使用量(占有率)
  • %MEM プロセス毎の物理メモリ使用量(占有率)
  • TIME+ プロセス開始からの使用したCPU時間の総計
  • COMMAND プログラム名

top 便利な使い方

topのオプションやコマンドは非常に多いので、よく使うもの・知っていると便利なものをまとめます。

並び替え
  • SHIFT+m
    メモリ使用率の大きいものから表示
  • SHIFT+p
    CPU使用率の大きいものから表示
  • SHIFT+t
    累積時間の長いものから表示
表示の切り替え
  • m
    メモリ・スワップに関する情報を表示/非表示
  • c
    コマンド・プログラム名の詳細を表示/非表示
  • 1
    CPU毎の使用率を表示/非表示
その他 topのオプション

オプションを指定することで表示内容や動作を変更することができます。

  • top -p PID
    PIDで指定したプロセスの情報だけを表示
  • top -n 回数
    指定した回数だけ更新し、自動で終了
  • top -u username
    usernameで指定したuserの情報だけを表示
その他 シグナル送信

kを押すと、top画面からPIDを指定したプロセスに対して、シグナルを送信できます。

  • 15:強制終了(SIGTERM)
  • 18:停止していれば再開(SIGCONT)

参考:ウィキペディア – シグナル(Unix)

iotop

iotop とは

iotopコマンドを実行すると、プロセスごとのディスク入出力情報をtopコマンド風に表示します。

Ubuntuサーバー徹底入門 – iotopコマンド

iotop インストール

$ sudo apt intall iotop

top 表示内容

起動と画面表示

iotopの起動には、sudo権限が必要です。

$ sudo iotop
iotop サマリー
  • DISK READ B/s
  • DISK WRITE B/s
  • Total DISK WRITE B/s
  • Actual DISK WRITE B/s
iotop 主なフィールド

プロセス毎のDISK READ/DISK WRITEの情報を表示します。

iotop 便利な使い方

並び替え

カーソルキーの「右・左」で、並べ替えの項目を切り替えることができます。読み込みのみ、書き込みのみに絞り込んでチェックすることが可能です。

終了

終了する場合は、キーボードのqを押します。

動作のもたつき 解決策

メモリ不足

メモリが不足している場合は、swap が頻繁に利用されます。各種コマンドで、swap に関する使用が目立つ場合は、メモリの増設を検討した方が良いかもしれません。

メモリの増設自体はそれほど難しい作業ではありませんが、メモリの上限や既存メモリとの組み合わせなどいくつか注意すべき点があります。また、精密機器なので、静電気の発生や電源管理などをキチンと行うことが大切です。

ディスクの見直し

CPU や メモリの性能は高いのに動作がもたもたしている場合は、ディスクの速度に問題があるかもしれません。

topコマンドなどで確認できる「I/O wait」の値が大きい場合は、ディスクへの入出力でプロセスが待たれている状態なので、HDDからSSDへの変更で解決する場合があります。

CPUパワー不足

top コマンドで CPUの負荷(CPUの利用率・Load Average)を確認できます。かなり負荷が高いと判断できれば、CPUを専有しているアプリケーションを見直したり、CPUをより強力なものにするという対策が考えられます。

しかし、CPUの交換や追加は簡単な対応ではないので、スペックの高い他のマシンを利用したり、クラウドサービスでハイスペックな実行環境を利用してアプリケーションを実行できないか、というような検討の方が現実的かもしれません。



カテゴリー

今週よく読まれている記事

  1. 学会・会議で英語が絶望的にできなくて困るケース | オンライン開催で「英語力のなさ」を痛感した場合の対処法

    学会・会議で英語ができなくてに困るケース学会やイベント・会議などが、オンラインで開催される…
  2. r tidyverse 使い方 | 列 filter 絞り込み select関数 – dplyrパッケージ

    tidyverseで1つのデータフレームの列の絞り込みは、dplyrパッケージのselect関数を…
  3. プログラミングで疲れた脳をリフレッシュ 〜 鬼滅の刃「感動」と「やる気アップ」でストレス発散!

    ストレス発散は鬼滅で。「50%OFF」で読む!脳のパフォーマンスを上げるには、適度な休憩と…
  4. AWS ディスク容量不足 新しいボリュームを追加する

    バイオインフォマティクスでは大きなファイルを扱うことがあるので、ディスク不足に陥ることがあります。…
  5. 「知っている」と「知らない」とでは、もしものとき、大違いになる – コロナうつ対策

    コロナうつなどという言葉を聞くようになりましたが、派遣切り、解雇、リストラは、これから本格化します…

人気記事

  1. R言語

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…
  2. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  3. Excel, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…

おすすめ記事

  1. awk, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  2. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…
  3. シェルスクリプト

    シェルスクリプト | ファイル存在チェック・空ファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…