GNU/Linux >> Linux の 問題 >  >> Linux

1 つのプロセスのメモリ使用量を呼び出して追跡する

これはあなたが必要とすることをするはずです。 /proc/$PID/statm から情報を取得します および出力 (man procfs から) ):

              size       total program size
                         (same as VmSize in /proc/[pid]/status)
              resident   resident set size
                         (same as VmRSS in /proc/[pid]/status)
              share      shared pages (from shared mappings)
              data       data + stack

スクリプト:

#!/usr/bin/env bash 

## Print header
 echo -e "Size\tResid.\tShared\tData\t%"
 while [ 1 ]; do
    ## Get the PID of the process name given as argument 1
     pidno=`pgrep $1`
    ## If the process is running, print the memory usage
     if [ -e /proc/$pidno/statm ]; then
     ## Get the memory info
      m=`awk '{OFS="\t";print $1,$2,$3,$6}' /proc/$pidno/statm`
     ## Get the memory percentage
      perc=`top -bd .10 -p $pidno -n 1  | grep $pidno | gawk '{print \$10}'`
     ## print the results
      echo -e "$m\t$perc";
    ## If the process is not running
     else
      echo "$1 is not running";
     fi
 done

次に、プロセス名を入力として指定して、スクリプトを呼び出すことができます。例:

$ memusage.sh firefox
Size    Resid.  Shared  Data    %
517193  261902  9546    400715  12.8
517193  261902  9546    400715  12.8
517193  261902  9546    400715  12.8
517193  262100  9546    400715  12.8
517193  262100  9546    400715  12.8
517193  262100  9546    400715  12.8
517209  261899  9546    400731  12.8
517209  261899  9546    400731  12.8

注:

  • これは、1 つの しか存在しないことを前提としています 指定された名前でプロセスを実行しています。

Linux
  1. Linuxのメモリ使用量

  2. メモリ使用量のログを記録できるツール?

  3. メモリとCPUの使用量で実行中のプロセスのトップ10を探す

  1. C での現在のプロセスのメモリ使用量

  2. Linux でのプロセス メモリ/CPU 使用量の制限

  3. Java プロセスの常駐メモリ使用量 (RSS) の増加

  1. 単一の Linux プロセスのメモリ使用量を制限する

  2. tmpfs の使用とサイズ変更

  3. プロセスのピーク時のメモリ使用量