Monitoring

估計 Linux 上程序所需的 RAM

  • April 18, 2016

我是執行任務隊列系統的基於 Linux 的計算集群的使用者PBSProPBSPro想知道一個任務應該有多少 RAM 可用以確保它能夠正確執行;例如,qsub -l select=1:mem=4GB someapp我聲明我想someapp在一個至少有 4GB 可用記憶體的節點上送出執行。我可以提供的界限越緊密,我的應用程序將被安排執行得越快。

我如何估計需要多少記憶體someapp

我可以進行測試執行並觀察htop,仔細觀察我的過程的 RSS,但是有什麼工具或方法可以使它更自動化嗎?比方說,在整個執行過程中返回程序的最大分頁記憶體量?

我只是集群上的普通使用者,沒有root訪問權限。我只執行一個可能有多個執行緒的程序;即使someappwill fork(),我也不關心是否計運算元程序記憶體。

GNU time 有一個包含最大 RSS 的 -v 選項。不是內置的外殼,所以/usr/bin/time -v

現實比那更複雜。但是,您可能不想為解析 la 的詳細地圖而煩惱,pmap也不需要像 with 之類的分析提供的詳細資訊valgrind

或者,您知道某個大小的任務(例如 4 GB)將被快速安排並在太少時處理失敗。

引用自:https://serverfault.com/questions/771011