Monitoring
估計 Linux 上程序所需的 RAM
我是執行任務隊列系統的基於 Linux 的計算集群的使用者
PBSPro
。PBSPro
想知道一個任務應該有多少 RAM 可用以確保它能夠正確執行;例如,qsub -l select=1:mem=4GB someapp
我聲明我想someapp
在一個至少有 4GB 可用記憶體的節點上送出執行。我可以提供的界限越緊密,我的應用程序將被安排執行得越快。我如何估計需要多少記憶體
someapp
?我可以進行測試執行並觀察
htop
,仔細觀察我的過程的 RSS,但是有什麼工具或方法可以使它更自動化嗎?比方說,在整個執行過程中返回程序的最大分頁記憶體量?我只是集群上的普通使用者,沒有root訪問權限。我只執行一個可能有多個執行緒的程序;即使
someapp
willfork()
,我也不關心是否計運算元程序記憶體。
GNU time 有一個包含最大 RSS 的 -v 選項。不是內置的外殼,所以
/usr/bin/time -v
現實比那更複雜。但是,您可能不想為解析 la 的詳細地圖而煩惱,
pmap
也不需要像 with 之類的分析提供的詳細資訊valgrind
。或者,您知道某個大小的任務(例如 4 GB)將被快速安排並在太少時處理失敗。