0

IBM LSF を使用しており、一定期間の使用統計を取得しようとしています。これでうまくいくことがわかりましたbhistが、短い形式のbhist出力では必要なフィールドがすべて表示されません。

私が知りたいのは:

  1. bhist の出力フィールドはカスタマイズ可能ですか? 必要なフィールドは次のとおりです。

    • <ジョブ ID>
    • <ユーザー>
    • <キュー>
    • <ジョブ名>
    • <プロジェクト名>
    • <仕事の説明>
    • <提出時間>
    • <保留時間>
    • <実行時間>
  2. 1が不可能な場合、長い形式 ( )のbhist -l出力には必要なものがすべて表示されますが、形式を操作するのは困難です。以下にフォーマットの例を貼り付けました。

たとえば、レコード間の行数は固定されておらず、各イベントの単語の折り返しにより、スキャンしようとしている単語の途中で改行される場合があります。sedこの形式をandで解析するにはどうすればよいawkですか?

JobId <1531>, User <user1>, Project <default>, Command< example200>
Fri Dec 27 13:04:14: Submitted from host <hostA> to Queue <priority>, CWD <$H
                     OME>, Specified Hosts <hostD>;
Fri Dec 27 13:04:19: Dispatched to <hostD>;
Fri Dec 27 13:04:19: Starting (Pid 8920);
Fri Dec 27 13:04:20: Running with execution home </home/user1>, Execution CWD 
                     </home/user1>, Execution Pid <8920>;
Fri Dec 27 13:05:49: Suspended by the user or administrator;
Fri Dec 27 13:05:56: Suspended: Waiting for re-scheduling after being resumed 
                     by user;
Fri Dec 27 13:05:57: Running;
Fri Dec 27 13:07:52: Done successfully. The CPU time used is 28.3 seconds.

Summary of time in seconds spent in various states by Sat Dec 27 13:07:52 1997
PEND  PSUSP  RUN  USUSP  SSUSP  UNKWN  TOTAL
5     0      205  7      1      0      218
------------------------------------------------------------
    .... repeat
4

2 に答える 2

0

長い形式の出力は解析がかなり困難です。bjobs古いバージョンの LSF にはフォーマットされていない出力 ( ) のオプションがあり、少し簡単になっていることを私は知っています-UF。また、最新バージョンの LSF では、 を使用して短い形式の出力で印刷される列をカスタマイズできます-o

残念ながら、これらのオプションはいずれも では使用できませんbhist。履歴情報の唯一の実際の可能性は次のとおりです。

  1. bhist -lあなたが発見したように、フォーマットに一貫性がないため、非現実的であり、おそらく不可能です。
  2. bhistファイルの解析に使用する関数を公開する LSF API を使用して、必要な処理を実行する C プログラムを作成しlsb.eventsます。これは、LSF クラスターに関するすべての履歴情報を格納するファイルであり、bhistその出力を生成するために読み取られるものです。
  3. C を使用できない場合は、lsb.eventsファイルを直接解析するスクリプトを作成してみてください。形式は構成リファレンスに記載されています。これは難しいですが、不可能ではありません。 LSF 9.1.3 の関連ドキュメントは次のとおりです

私の個人的な推奨事項は #2 です。探している関数は ですlsb_geteventrec()。基本的には、一度に 1 行ずつ読んlsb.eventsで、必要な情報を引き出します。

于 2015-12-17T16:08:23.957 に答える
0

実際に独自のソリューションを作成しなくても問題を解決できる可能性があるため、2 番目の回答を追加します (使用統計によって異なります)。

bacctLSF には、さまざまな条件でフィルタリングされた過去の LSF ジョブに関するさまざまな使用状況の統計を計算して出力するというユーティリティが既にあります。

たとえば、time0 と time1 の間にディスパッチ/完了/送信されたジョブに関する使用状況統計の概要を取得するには、(それぞれ) 以下を使用できます。

bacct -D time0,time1
bacct -C time0,time1
bacct -S time0,time1

特定のユーザーによって送信されたジョブに関する統計:

bacct -u <username>

特定のキューに送信されたジョブに関する統計:

bacct -q <queuename>

これらのオプションは組み合わせることもできます。たとえば、特定のプロジェクトの特定の時間枠内に送信されて完了したジョブに関する統計が必要な場合は、次を使用できます。

bacct -S time0,time1 -C time0,time1 -P <projectname>

出力には、指定された基準に一致するすべてのジョブに関する要約情報が次のように表示されます。

$ bacct -u bobbafett -q normal

Accounting information about jobs that are: 
  - submitted by users bobbafett, 
  - accounted on all projects.
  - completed normally or exited
  - executed on all hosts.
  - submitted to queues normal, 
  - accounted on all service classes.
------------------------------------------------------------------------------

SUMMARY:      ( time unit: second ) 
 Total number of done jobs:       0      Total number of exited jobs:    32
 Total CPU time consumed:      46.8      Average CPU time consumed:     1.5
 Maximum CPU time of a job:     9.0      Minimum CPU time of a job:     0.0
 Total wait time in queues: 18680.0
 Average wait time in queue:  583.8
 Maximum wait time in queue: 5507.0      Minimum wait time in queue:    0.0
 Average turnaround time:     11568 (seconds/job)
 Maximum turnaround time:     43294      Minimum turnaround time:        40
 Average hog factor of a job:  0.00 ( cpu time / turnaround time )
 Maximum hog factor of a job:  0.02      Minimum hog factor of a job:  0.00
 Total Run time consumed:    351504      Average Run time consumed:   10984
 Maximum Run time of a job: 1844674      Minimum Run time of a job:       0
 Total throughput:             0.24 (jobs/hour)  during  160.32 hours
 Beginning time:       Nov 11 17:55      Ending time:          Nov 18 10:14

bhist -lこのコマンドには、各ジョブに関するいくつかのような情報を提供する長い形式の出力もあります。

$ bacct -l -u bobbafett -q normal

Accounting information about jobs that are: 
  - submitted by users bobbafett, 
  - accounted on all projects.
  - completed normally or exited
  - executed on all hosts.
  - submitted to queues normal, 
  - accounted on all service classes.
------------------------------------------------------------------------------

Job <101>, User <bobbafett>, Project <default>, Status <EXIT>, Queue <normal>, 
                     Command <sleep 100000000>
Wed Nov 11 17:37:45: Submitted from host <endor>, CWD <$HOME>;
Wed Nov 11 17:55:05: Completed <exit>; TERM_OWNER: job killed by owner.

Accounting information about this job:
     CPU_T     WAIT     TURNAROUND   STATUS     HOG_FACTOR    MEM    SWAP
      0.00     1040           1040     exit         0.0000     0M      0M
------------------------------------------------------------------------------
...
于 2015-12-17T18:44:06.847 に答える