Skip to main content

解析トラブル 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)

終了

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

htop

htop とは

htopは、CLIで動作するタスクマネージャーである。topの置き換えを目標に設計された。デフォルトでは、プロセスはCPU使用率の順に並べられる。topでは最もリソースを消費するプロセスのリストが提供されるが、htopでは全てのプロセスのリストが提供される。htopでは、CPUとメモリとスワップについての情報が色付きで視覚的に表示される。

topが提供する情報では不十分である場合に、htopが選択される場合がある。

ウィキペディア – htop

htopは、topと同等の表示を行いますが、「表示のわかり易さ」や「操作のしやすさ」から、topよりも使いやすいかもしれません。

htop インストール

$ sudo apt intall htop

htop 表示内容

起動と画面表示

htopを実行すると、CPUやメモリの情報・プロセスの情報などが一定間隔で表示されます(表示オプションはファンクションキーを使ったメニューで変更可能です。初期設定はファイルに書かれています。編集の際はバックアップをとっておくのが良いと思います。$HOME/.config/htop/htoprc)。

$ htop

htop サマリー
  • CPU CPUコア毎の負荷(グラフ表示)
  • Mem 物理メモリの使用状況(グラフ表示)
  • Swap スワップ領域の使用状況(グラフ表示)
htop 主なフィールド

デフォルトの設定では、topと同じ内容を表示します。矢印キーを使ってスクロール可能です。スペースキーを押すと、ハイライト表示できるので、注目したいプロセスがある場合は便利です。

  • PID
    プロセスID
  • USER
    ユーザー
  • %CPU
    プロセス毎のCPU使用量(占有率)
  • %MEM
    プロセス毎の物理メモリ使用量(占有率)
  • TIME+
    プロセス開始からの使用したCPU時間の総計
  • COMMAND
    プログラム名

htop 便利な使い方

表示の切り替え

F2キーでセットアップモードになります。

  • Meters
    サマリーの表示方法を変更(項目の表示タイプ変更・項目の追加削除)
  • Display options
    プロセス詳細の表示方法を変更(オプション選択)
  • Colors
    htopの表示色セットを選択
  • Columns
    プロセス詳細の表示項目の設定(項目の追加削除・順番変更)
検索

F3キーで検索モードになります。キーワードを入力して検索します。F3キーを繰り返し押すと、該当するデータを次々に表示します。

フィルター

F4キーでフィルターモードになります。キーワードを入力すると、表示している内容がキーワードで絞りこまれます。

並び替え

F6キーで並び替える項目を選択できます。決定すると、選んだ項目に対してソートされた表示が継続します。

ユーザー選択

uキーで表示するユーザーが選択できます。ユーザーを指定すると、選んだユーザーのプロセスのみを表示します。

シグナル送信

矢印で選ばれているプロセスに対して、F9でシグナルを送信します。送信するシグナルの内容を決定すると、シグナルが送信されます。

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

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

終了

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

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章 アホと戦うのは人生の無駄
  • 他人とのいざこざで人生を浪費していた自分
  • 無駄な戦いを繰り広げる人の特徴
  • 厄介な無駄なプライドの捨て方
  • 蒸し返して傷を大きくするな

職場の問題は冷静に対応したい

全く問題のない職場の方が珍しいと思います。特に、ITが関係する業界は、作業内容や生産性が目に見えにくく、闇が深いという話をよく耳にします。結局、「自分の身は自分で守る」という姿勢が必要なのかもしれませんね。

内容紹介より 目次抜粋

  • 第1章 情報漏洩に関する事件簿
    CASE1 個人情報漏洩, CASE2 産業スパイ
  • 第2章 ハラスメントに関する事件簿
    CASE3 セクハラ問題, CASE4 パワハラ問題, CASE5 マタハラ問題
  • 第3章 時間外労働に関する事件簿
    CASE6 ブラック企業, CASE7 残業代1, CASE8 残業代2
  • 第4章 人事異動や退職に関する事件簿
    CASE9 退職勧奨, CASE10 内部通報, CASE11 転勤辞令
  • 第5章 組織の不祥事に関する事件簿
    CASE12, CASE13, CASE14
  • 第6章 経営に関する事件簿
    CASE15 IPO, CASE16 賠償責任