0

matlabプロセスが生成されたすべてのスレッドで使用したメモリとCPU時間を知る必要があります。私が正しく理解していれば、すべてのスレッドが新しいプロセスIDを持つ新しいプロセスとしてポップアップ表示されますが、CMD名は同じままです。

そこで、n秒ごとに使用法を追加するデーモンを作成することを考えました。

ps -o %cpu,%mem,cmd -C MATLAB | grep "[0-9]+" >> matlab_log

その後、比率に悪魔のダニの時間を掛けたものを数えて合計します。

もっと簡単な方法があるのか​​、何かが足りないのか、それとも単にこの仕事にもっと便利なツールが存在するのかしら。

乾杯

4

2 に答える 2

2

BSDプロセスアカウンティングユーティリティ(acctDebianおよびUbuntuのパッケージ)をインストールすると、sa(8)ユーティリティを使用して実行を要約したり、半詳細な実行ログを提供したりできます。

$ lastcomm
...
man               F  X sarnold  pts/3      0.00 secs Fri May  4 16:21
man               F  X sarnold  pts/3      0.00 secs Fri May  4 16:21
vim                    sarnold  pts/3      0.05 secs Fri May  4 16:20
sa                     sarnold  pts/3      0.00 secs Fri May  4 16:20
sa                     sarnold  pts/3      0.00 secs Fri May  4 16:20
bzr                    sarnold  pts/3      0.99 secs Fri May  4 16:19
apt-get          S     root     pts/1      0.44 secs Fri May  4 16:18
dpkg                   root     pts/1      0.00 secs Fri May  4 16:19
dpkg                   root     pts/1      0.00 secs Fri May  4 16:19
dpkg                   root     pts/1      0.00 secs Fri May  4 16:19
apt-get           F    root     pts/1      0.00 secs Fri May  4 16:19
...
$ sa
     633      15.22re       0.09cp         0avio      6576k
      24       8.51re       0.03cp         0avio      6531k   ***other*
       2       0.31re       0.02cp         0avio     10347k   apt-get
       3       0.02re       0.02cp         0avio      9667k   python2.7
      18       0.04re       0.01cp         0avio      5444k   dpkg
       2       0.01re       0.01cp         0avio     13659k   debsums
...

ファイルの形式acctはに文書化されacct(5)ているため、標準ツールのいずれも必要なクエリを表現できない場合は、ファイルを解析するための独自のプログラムを作成できます。

おそらくBSDプロセスアカウンティングユーティリティの最大の欠点は、プロセスが終了したときにカーネルがプロセスアカウンティングログのみを更新することです。これは、要約番号の多くが、別のプロセスが1回だけ使用できるwait(2)ためです。したがって、現在実行中のプロセスは、によって完全に見落とされます。ユーティリティ。

ただし、これらのユーティリティで十分な場合があります。これらのユーティリティは、コンピューティングセンターが人気だった頃、コンピューティングセンターがクライアントに請求する方法です...

于 2012-05-04T23:28:51.157 に答える
2

また、使用することができますtop

top -b -n 1 | grep MATLAB

14226 user      39  19 2476m 1.4g  26m S 337.2  9.2  24:44.60 MATLAB
25878 user      39  19 2628m 1.6g  26m S  92.0 10.6  21:07.36 MATLAB
14363 user      39  19 2650m 1.4g  26m S  79.7  9.1  23:58.38 MATLAB
14088 user      39  19 2558m 1.4g  26m S  61.3  9.1  25:14.53 MATLAB
14648 user      39  19 2629m 1.6g  26m S  55.2 10.5  22:03.20 MATLAB
14506 user      39  19 2613m 1.5g  26m S  49.0  9.4  22:32.47 MATLAB
14788 user      39  19 2599m 1.6g  26m S  49.0 10.3  20:44.78 MATLAB
25650 user      39  19 2608m 1.6g  26m S  42.9 10.2  25:08.38 MATLAB

またはフィールド名も取得するには:

top -b -n 1 | head -n 7 | tail -n 1; top -b -n 1 | grep MATLAB

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
14226 user      39  19 2476m 1.4g  26m S 337.2  9.2  24:44.60 MATLAB
25878 user      39  19 2628m 1.6g  26m S  92.0 10.6  21:07.36 MATLAB
14363 user      39  19 2650m 1.4g  26m S  79.7  9.1  23:58.38 MATLAB
14088 user      39  19 2558m 1.4g  26m S  61.3  9.1  25:14.53 MATLAB
14648 user      39  19 2629m 1.6g  26m S  55.2 10.5  22:03.20 MATLAB
14506 user      39  19 2613m 1.5g  26m S  49.0  9.4  22:32.47 MATLAB
14788 user      39  19 2599m 1.6g  26m S  49.0 10.3  20:44.78 MATLAB
25650 user      39  19 2608m 1.6g  26m S  42.9 10.2  25:08.38 MATLAB
于 2012-05-04T23:47:52.107 に答える