使用工作站進行程式開發或執行時,確保每一個執行中的程式是有效和必要的是相當重要的。殭屍程式或意外無窮迴圈等問題都可能消耗大量的伺服器資源,影響到其他使用者,例如: 背景持續執行(e.g. virtuoso &)的程式。這裡,我們會介紹一些方法來幫助你有效監控、管理及終止不必要的程式。
透過本篇文章你會學到...
監控自己的程式狀態
處理殭屍程式或不必要的背景程式
其他有用的技巧
遇到困難時尋求幫助
top / htop: 這兩個指令可以讓你即時監控工作站的記憶體、CPU負載等資訊。
glances: 監控你在該伺服器上執行的每一個程式的使用資源情況。
ps -u $username: 列出自己當前正在執行的所有程式。
pstree -u [username]: 進一步監測你的主程式以及其fork出的子程式情況。
ps -u --sort=-time: 將佔用CPU時間最久的程式列在最前面,這樣你可以快速識別出可能掉入無窮迴圈的程式。 (以下有提供範例)
當你發現自己產生了 殭屍程式,你可以先用上述的幾個指令確定 process 的 pid,接著使用下面方法來中止。
當你偵測到不必要的程式,你可以使用以下方法終止它們:
kill -9 $pid: 根據程式的pid終止該程式。 ($pid 為該 process 的 pid)
pkill -u $username $pattern: 終止符合指定名稱或格式的程式。 ($pattern 為你想要指定的名稱或格式)
limit cputime 72h: 這個指令可以幫助你限制每一個程式的最大執行時間為72小時,避免程式過長時間執行。超過則會自動結束程式,因此可避免單一程式執行到忘記。輸入"unlimit filesize"即可還原,注意此指令只對開啟的對話窗有效,並非永久設定。
strace $program: 使用strace可以追踪程式所執行的所有系統呼叫,幫助你更深入地了解程式的運作情況。 ($program 為你想要跑的程式)
strace -p $pid: 使用strace可以追踪產生的程式所執行的所有系統呼叫
如果你發現自己無法終止某些程式,或有其他相關問題,請儘速連絡工作站管理員,他們會提供你所需的協助。信箱為: lhlai@ieee.org。
使用工作站時,維護伺服器的效能和資源是每一位使用者的共同責任。請確保你經常檢查和管理你的程式,以確保工作站的健康運作。