2015-02-11 51 views
0

我們有一個過程需要大約20個小時才能在我們的Linux機器上運行。我們希望加快速度,並且首先需要找出瓶頸。我們最好的選擇是什麼?分析Linux上長時間運行的進程的資源使用情況--CPU,內存,硬盤驅動器?

我正在考慮每N秒對進程的CPU,RAM和磁盤使用情況進行採樣。所以除非你有其他建議,否則我的具體問題是:

  1. N應該多少?
  2. 哪個工具可以提供這些統計數據的準確讀數,並且工具本身正在運行的事實對干擾或破壞影響最小?
  3. 任何其他技巧,智慧的金塊或對其他有用文檔的引用將不勝感激,因爲這似乎是這些任務之一,您可以在這些任務中耗費大量時間和錯誤開始新手。
+1

給[*此*](http://stackoverflow.com/a/378024/23771)一杆。這不是關於統計數據,而是關於尋找時間消耗。 – 2015-02-11 21:40:38

+0

如果您不知道進程CPU綁定或I/O綁定,可以從Gregg推薦的最簡單的系統監視工具開始:http://www.slideshare.net/brendangregg/linux-performance-analysis- and-tools Linux性能分析和工具(SCaLE11x,2013) - 像'top'(CPU使用率應該接近CPU限制任務的thread_count * 100%)和'iostat'來檢查磁盤活動。您也可以檢查頂部的「Cpu(s)」行來檢查'%sy' - linux內核cpu負載。列出了更多工具,'sar','vmstat','mpstat','iostat'會每N秒顯示一次統計數據。邁克,401k的意見是超過242k。 – osgx 2015-03-03 07:29:42

回答

0

我認爲圖形表示應該有助於解決您的問題,我建議你穆寧。

這是一個具有Web界面的資源監視工具。默認情況下,它會監控磁盤IO,內存,CPU,平均負載,網絡使用情況......它輕巧易於安裝。開發自己的插件並設置警報閾值也很容易。

http://munin-monitoring.org/

這裏是你可以從穆寧得到什麼一個例子:http://demo.munin-monitoring.org/munin-monitoring.org/demo.munin-monitoring.org/所有的

2

首先,你要什麼,你問是完全不同的。

第一次運行時需要進行監控,即不知道其資源利用率(CPU,內存,磁盤等)。 您可以按照下列程序進行下鑽的瓶頸,

  1. 監控系統資源(一般10-20秒的時間間隔應罰款與穆寧,神經節或其他工具)。 在這裏,你應該能夠確定你的hw是否瓶頸或者你的資源用完了。 100%cpu util,非常低的內存,高io等

如果這你的情況,那麼可能考慮升級hw或調整現有的。

  1. 然後您調整您的應用程序/實用程序。使用分析器/記錄器找出哪個方法,過程需要時間。嘗試調整該過程。如果你有單線程代碼,那麼可能使用並行性。如果涉及數據庫等嘗試調整您的查詢,數據庫參數。

然後再次運行與監控測試,以向下鑽取更多:)

相關問題