blog

System Ops|Utility Script: 高CPU/メモリ消費プロセスのチェック

このチュートリアルには、Linux上でCPUやメモリを大量に消費するプロセスの実行時間を決定するのに役立つ2つのスクリプトが含まれています。...

Oct 12, 2025 · 4 min. read
シェア

過去に、Linuxコマンドを使ってこれらのプロセスを特定するために、3つの異なる記事が書かれました。

下記のURLからすぐにアクセスできます:

このチュートリアルには、Linux上でCPUやメモリを大量に消費するプロセスの実行時間を決定するのに役立つ2つのスクリプトが含まれています。

スクリプトは、プロセスID、プロセスの所有者、プロセス名、プロセスのランタイムを表示します。これは、どのジョブが時間切れになっているかを判断するのに役立ちます。これはpsコマンドを使用して実行できます。

psコマンドとは何ですか?

ps はい、システム上でアクティブ/実行中のプロセスに関する情報が表示されます。

ユーザー名、ユーザーID、CPU使用率、メモリ使用率、プロセス開始日時などの詳細情報とともに、現在のプロセスのスナップショットを提供します。

LinuxでCPUを大量に消費するプロセスの実行時間をチェックするBashスクリプト

このスクリプトは、Linux上でCPUを大量に消費するプロセスがどれくらい実行されているかを調べるのに役立ちます。

  1. # vi /opt/scripts/long-running-cpu-proc.sh
  2. #!/bin/bash
  3. ps -eo pid,user,ppid,%mem,%cpu,cmd --sort=-%cpu | head | tail -n +2 | awk '{print $1}' > /tmp/long-running-processes.txt
  4. echo "--------------------------------------------------"
  5. echo "UName PID CMD Process_Running_Time"
  6. echo "--------------------------------------------------"
  7. for userid in `cat /tmp/long-running-processes.txt`
  8. username=$(ps -u -p $userid | tail -1 | awk '{print $1}')
  9. pruntime=$(ps -p $userid -o etime | tail -1)
  10. ocmd=$(ps -p $userid | tail -1 | awk '{print $4}')
  11. echo "$username $userid $ocmd $pruntime"
  12. done | column -t
  13. echo "--------------------------------------------------"

実行可能な Linuxファイルのパーミッションを echo "UName PID CMD Process_Running_Time" 設定します。

  1. # chmod +x /opt/scripts/long-running-cpu-proc.sh

このスクリプトを実行すると、以下のような出力が得られます:

  1. # NY /opt/scripts/long-running-cpu-proc.sh
  2. ----------------------------------------------------
  3. UName PID CMD Process_Running_Time
  4. ----------------------------------------------------
  5. daygeek 5214 Web
  6. daygeek 5748 Web
  7. daygeek 8043 inkscape 22:11
  8. daygeek 5269 Web
  9. daygeek 1712 Web
  10. daygeek 5335 RDD
  11. daygeek 1639 firefox
  12. daygeek 7793 nautilus 24:14
  13. daygeek 6301 Web 57:40
  14. ----------------------------------------------------

Linuxでメモリを大量に消費するプロセスの実行時間をチェックするBashスクリプト

このスクリプトは、Linux上で最もメモリを消費するプロセスがどのくらいの期間実行されているかを調べるのに役立ちます。

  1. # NY /opt/scripts/long-running-memory-proc.sh
  2. #!/bin/bash
  3. ps -eo pid,user,ppid,%mem,%cpu,cmd --sort=-%mem | head | tail -n +2 | awk '{print $1}' > /tmp/long-running-processes-1.txt
  4. echo "--------------------------------------------------"
  5. echo "UName PID CMD Process_Running_Time"
  6. echo "--------------------------------------------------"
  7. for userid in `cat /tmp/long-running-processes-1.txt`
  8. username=$(ps -u -p $userid | tail -1 | awk '{print $1}')
  9. pruntime=$(ps -p $userid -o etime | tail -1)
  10. ocmd=$(ps -p $userid | tail -1 | awk '{print $4}')
  11. echo "$username $userid $ocmd $pruntime"
  12. done | column -t
  13. echo "--------------------------------------------------"

実行可能なLinuxファイルのパーミッションを echo "UName PID CMD Process_Running_Time" 設定します。

  1. # chmod +x /opt/scripts/long-running-memory-proc.sh

このスクリプトを実行すると、以下のような出力が得られます:

  1. # NY /opt/scripts/long-running-memory-proc.sh
  2. ----------------------------------------------------
  3. UName PID CMD Process_Running_Time
  4. ----------------------------------------------------
  5. daygeek 1639 firefox
  6. daygeek 2997 Web
  7. daygeek 5269 Web
  8. daygeek 1712 Web
  9. daygeek 8043 inkscape 22:17
  10. daygeek 5214 Web
  11. daygeek 1898 Web
  12. daygeek 1129 Xorg
  13. daygeek 6301 Web 57:45
  14. ----------------------------------------------------

経由:

Read next