{"id":1573,"date":"2025-01-04T13:53:00","date_gmt":"2025-01-04T05:53:00","guid":{"rendered":"http:\/\/www.rchen.top\/?p=1573"},"modified":"2026-07-04T14:07:09","modified_gmt":"2026-07-04T06:07:09","slug":"zabbix%e8%87%aa%e5%8a%a8%e9%87%87%e9%9b%86lsf-reserved-memory%e4%b8%8d%e5%90%88%e7%90%86%e7%9a%84job%e5%b9%b6%e8%bf%9b%e8%a1%8c%e6%8e%a8%e9%80%81","status":"publish","type":"post","link":"https:\/\/www.rchen.top\/?p=1573","title":{"rendered":"Zabbix\u81ea\u52a8\u91c7\u96c6LSF Reserved Memory\u4e0d\u5408\u7406\u7684job\u5e76\u8fdb\u884c\u63a8\u9001"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u8bbe\u8ba1\u601d\u8def\uff1a<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u7edf\u8ba1job \u57fa\u7840\u4fe1\u606f\uff0c\u8bb0\u5f55\u4e3amax_mem.log<\/li>\n\n\n\n<li>\u7edf\u8ba1job reserved\u4fe1\u606f\uff0c\u8bb0\u5f55\u4e3areserved.log<\/li>\n\n\n\n<li>\u5408\u5e76\u4e0a\u9762\u4e24\u4e2a\u4fe1\u606f\uff0c\u8bb0\u5f55\u4e3amerge.log<\/li>\n\n\n\n<li>\u8ba1\u7b97\u7b5b\u9009\u51fa\u5dee\u503c\u76842\u500djob<\/li>\n\n\n\n<li>\u5bf9\u7ed3\u679c\u8fdb\u884c\u6392\u5e8f\u65b9\u4fbf\u67e5\u770b<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\u8f93\u51fa\u7ed3\u679c\u5c55\u793a\uff1a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"1024\" src=\"http:\/\/www.rchen.top\/wp-content\/uploads\/2025\/01\/image-744x1024.png\" alt=\"\" class=\"wp-image-1575\" style=\"width:420px;height:auto\" srcset=\"https:\/\/www.rchen.top\/wp-content\/uploads\/2025\/01\/image-744x1024.png 744w, https:\/\/www.rchen.top\/wp-content\/uploads\/2025\/01\/image-218x300.png 218w, https:\/\/www.rchen.top\/wp-content\/uploads\/2025\/01\/image-768x1057.png 768w, https:\/\/www.rchen.top\/wp-content\/uploads\/2025\/01\/image.png 974w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u6b65\u9aa4\u4e00\uff0c\u8bbe\u8ba1\u8fd0\u884c\u811a\u672c\uff1a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">more start.sh result.sh reserved.sh merge.sh max_mem.sh account.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">start.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#!\/bin\/csh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#\u7edf\u8ba1job \u57fa\u7840\u4fe1\u606f\uff0c\u8bb0\u5f55\u4e3amax_mem.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/home\/chenrui\/reserved_zabbix\/max_mem.sh &gt;\/home\/chenrui\/reserved_zabbix\/max_mem.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#\u7edf\u8ba1job reserved\u4fe1\u606f\uff0c\u8bb0\u5f55\u4e3areserved.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/home\/chenrui\/reserved_zabbix\/reserved.sh &gt; \/home\/chenrui\/reserved_zabbix\/reserved.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#\u5408\u5e76\u4fe1\u606f\uff0c\u8bb0\u5f55\u4e3amerge.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/home\/chenrui\/reserved_zabbix\/merge.sh &gt; \/home\/chenrui\/reserved_zabbix\/merge.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#\u8ba1\u7b97\u7b5b\u9009\u51fa\u5dee\u503c2\u500d\u7684job<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/home\/chenrui\/reserved_zabbix\/account.sh &gt; \/home\/chenrui\/reserved_zabbix\/account.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sleep 5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#\u5bf9\u7ed3\u679c\u8fdb\u884c\u6392\u5e8f\u65b9\u4fbf\u67e5\u770b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/home\/chenrui\/reserved_zabbix\/result.sh &gt; \/home\/chenrui\/lsf.reserved.stat<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">result.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#!\/bin\/csh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">awk &#8216;NR==1; NR&gt;1{print | &#8220;sort -k&#8221;NF&#8221;,&#8221;NF&#8221; -nr&#8221;}&#8217; \/home\/chenrui\/reserved_zabbix\/account.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">reserved.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#!\/bin\/csh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u811a\u672c\u529f\u80fd\uff1a\u7cbe\u786e\u63d0\u53d6 bjobs \u8f93\u51fa\u4e2d\u7684 jobid \u548c\u6709\u6548 rusage[mem=] \u503c\uff0c\u4e25\u683c\u53bb\u91cd<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u8bbe\u7f6e\u4e34\u65f6\u6587\u4ef6<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set tempfile = &#8220;\/tmp\/bjobs_rusage_$$.tmp&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u5904\u7406 bjobs \u8f93\u51fa\uff08\u4e25\u683c\u6a21\u5f0f\uff09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bjobs -u all -l | \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">awk &#8216;\\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">BEGIN { printed_jobs = &#8220;&#8221; } \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/^Job &lt;\/ { \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">jobid = $2; \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gsub(\/[&lt;&gt;,]\/, &#8220;&#8221;, jobid); \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">current_job = jobid; \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">valid_entry = 0 \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">} \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\/rusage\\[mem=[0-9]\/ { \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if ($0 ~ \/rusage\\[mem=[0-9]+(\\.[0-9]+)?\\]\/) { \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">match($0, \/rusage\\[mem=([0-9.]+)\\]\/, arr); \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if (arr[1] != &#8220;&#8221; &amp;&amp; printed_jobs !~ &#8221; &#8220;current_job&#8221; &#8220;) { \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">print current_job, arr[1]; \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">printed_jobs = printed_jobs &#8221; &#8221; current_job &#8221; &#8220;; \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">valid_entry = 1 \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">} \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">} \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">} \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">END { if (valid_entry == 0 &amp;&amp; current_job != &#8220;&#8221;) print &#8220;DEBUG: No valid rusage for&#8221;, current_job &gt; &#8220;\/dev\/stderr&#8221; } \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8216; &gt; $tempfile<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u663e\u793a\u6709\u6548\u7ed3\u679c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if (-e $tempfile) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u4e8c\u6b21\u8fc7\u6ee4\u786e\u4fdd\u53ea\u6709\u6570\u5b57\u578b\u5185\u5b58\u503c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">awk &#8216;$2 ~ \/^[0-9]+(\\.[0-9]+)?$\/ {print $1, $2}&#8217; $tempfile<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">rm -f $tempfile<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">echo &#8220;\u9519\u8bef\uff1a\u672a\u80fd\u63d0\u53d6\u6709\u6548\u6570\u636e&#8221; &gt;&amp;2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">exit 1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">endif<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">exit 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">merge.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#!\/bin\/csh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">awk &#8216;NR==FNR {dict[$1]=$2; next} $1 in dict {print $0, dict[$1] &#8221; Mbytes&#8221;}&#8217; \/home\/chenrui\/reserved_zabbix\/reserved.log \/home\/chenrui\/reserved_zabbix\/max_mem.log<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">max_mem.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#!\/bin\/csh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bjobs -u all -o &#8220;jobid user queue stat max_mem&#8221; | grep RUN<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">account.sh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">::::::::::::::<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#!\/bin\/csh<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set KB_to_GB = 0.000001<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set MB_to_GB = 0.001<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set TB_to_GB = 1000<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u6253\u5370\u8868\u5934<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">printf &#8220;%-8s | %-8s | %-8s | %-8s | %-8s | %-8s | %-8s\\n&#8221; \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;JOB&#8221; &#8220;USER&#8221; &#8220;QUEUE&#8221; &#8220;STATUS&#8221; &#8220;MAX_MEM(GB)&#8221; &#8220;Rusage_MEM(GB)&#8221; &#8220;\u5dee\u503c&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">foreach line (&#8220;`cat \/home\/chenrui\/reserved_zabbix\/merge.log`&#8221;)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set fields = ($line)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set dataA = $fields[5]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set unitA = $fields[6]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set dataB = $fields[7]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set unitB = $fields[8]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u8f6c\u6362A\u6570\u636e\u5230GB<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if ($dataA == 0) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbA = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitA == &#8220;Tbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbA = `echo &#8220;$dataA * $TB_to_GB&#8221; | bc`<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitA == &#8220;Gbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbA = $dataA<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitA == &#8220;Mbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbA = `echo &#8220;$dataA * $MB_to_GB&#8221; | bc`<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitA == &#8220;Kbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbA = `echo &#8220;$dataA * $KB_to_GB&#8221; | bc`<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">endif<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># \u8f6c\u6362B\u6570\u636e\u5230GB<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if ($dataB == 0) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbB = 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitB == &#8220;Tbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbB = `echo &#8220;$dataB * $TB_to_GB&#8221; | bc`<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitB == &#8220;Gbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbB = $dataB<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitB == &#8220;Mbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbB = `echo &#8220;$dataB * $MB_to_GB&#8221; | bc`<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">else if ($unitB == &#8220;Kbytes&#8221;) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set gbB = `echo &#8220;$dataB * $KB_to_GB&#8221; | bc`<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">endif<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if ($gbB == 0) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">echo &#8220;error:$line&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">continue<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">endif<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">set ratio = `echo &#8220;scale=2; $gbA \/ $gbB&#8221; | bc`<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">if (`echo &#8220;$ratio &gt;= 2 || $ratio &lt;= 0.5&#8221; | bc`) then<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">printf &#8220;%-5s | %-8s | %-15s | %-5s | %-8.1f | %-8.1f | %-8.1f\\n&#8221; \\<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">$fields[1] $fields[2] $fields[3] $fields[4] $gbA $gbB $ratio<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">endif<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">end<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u6b65\u9aa4\u4e8c\uff0c\u8bbe\u7f6e\u5b9a\u65f6\u4efb\u52a1\uff0c\u7565<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">\u6b65\u9aa4\u4e09\uff0czabbix\u914d\u7f6e\uff0c\u7565<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8bbe\u8ba1\u601d\u8def\uff1a \u8f93\u51fa\u7ed3\u679c\u5c55\u793a\uff1a \u00a0 \u6b65\u9aa4\u4e00\uff0c\u8bbe\u8ba1\u8fd0\u884c\u811a\u672c\uff1a more start.sh result.sh res [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":472,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[133,88],"tags":[107,14,106,102],"class_list":["post-1573","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-eda","category-hpc","tag-eda","tag-linux","tag-lsf","tag-zabbix"],"_links":{"self":[{"href":"https:\/\/www.rchen.top\/index.php?rest_route=\/wp\/v2\/posts\/1573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rchen.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rchen.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rchen.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rchen.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1573"}],"version-history":[{"count":2,"href":"https:\/\/www.rchen.top\/index.php?rest_route=\/wp\/v2\/posts\/1573\/revisions"}],"predecessor-version":[{"id":1577,"href":"https:\/\/www.rchen.top\/index.php?rest_route=\/wp\/v2\/posts\/1573\/revisions\/1577"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rchen.top\/index.php?rest_route=\/wp\/v2\/media\/472"}],"wp:attachment":[{"href":"https:\/\/www.rchen.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rchen.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rchen.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}