2008-10-08 40 views
2

我試圖找到在運行嵌入式Linux的框的開發中使用'top'作爲半永久性檢測的最佳方法。 (該儀器會從最終測試和生產的版本去掉。)在Linux中將「top」用作半永久性儀器

我第一遍是簡單地添加這init.d中:

top -b -d 15 >/tmp/toploop.out & 

此之上運行的「一批」每15模式秒。讓我們假設/ tmp目錄有足夠的空間...

問題:

  1. 是15秒一個很好的價值一般用途監測選擇?
  2. 除了磁盤空間以外,這種擾亂系統狀態的程度有多嚴重?
  3. 其他(也許更好)的工具可以像這樣使用?

回答

1

您可能會發現vmstat和iostat具有延遲並且沒有重複計數器是更好的選擇。

1

我懷疑15秒會比綽綽有餘,除非你真的想實時觀察發生了什麼,但這似乎並不是這樣。至於負載,在運行Ubuntu(不知道哪個版本,但不超過一年)的運行Ubuntu的768MB內存的閒置PIII 900Mhz上,我每0.5秒更新一次,CPU使用率約爲2%。在15秒的更新中,我看到了0.1%的CPU利用率。

取決於你想要什麼,你可以使用uptime,free和ps的輸出來獲得大部分(如果不是全部)頂層信息。

2

我們使用sysstat來監控這樣的事情。

5

看看collectd。這是一個非常輕量級的系統監控框架,用於性能編碼。

1

如果您正在尋找整體負載,正常運行時間可能就足夠了。但是,如果您需要有關進程的特定信息,那麼您很冒險,並且已啓用/ proc文件系統,則可能需要編寫自己的工具。這種環境的主要優點是您可以專注於您想要的內容並最小化引入系統的負載。

proc文件系統爲您的應用程序提供對內核內存的讀取訪問權限,以便跟蹤許多有趣的變量。從/ proc讀取是獲取這些信息的最簡單方法之一。此外,您可能能夠獲得比top提供的更多信息。過去我已經這樣做了,以便通過此過程獲得用戶和系統花費的時間。另外,您可以使用它來獲取有關該進程打開的文件描述符數量的信息。您也可以使用它來獲取有關網絡系統如何工作的詳細信息。

這些信息的大部分都是由其他應用程序預處理的,如果您獲得所需的信息,則可以使用這些應用程序。但是,閱讀原始信息相當簡單。做一個man proc瞭解更多信息。

+0

+1。是的,我很熟悉/ proc!我希望不需要寫點什麼,但是你對於能夠專注於你所追求的東西的好處是正確的。好的,我的emacs窗口在哪裏... – 2008-10-08 20:45:01

1

可惜你還沒有說你在監視什麼。

  1. 您應該決定15秒是否正常。如果你願意,可以隨意降低它(並有一個快速的硬盤)
  2. 除非你正在運行一個軟實時系統,否則不用擔心。
  3. 看看其他答案中建議的工具。我會添加另一個消解:「iotop」,回答「誰是硬盤驅動器」問題。
1

在壓力測試期間的系統監測工作中,我們使用名爲nmon的工具。

我對nmon的喜愛是它能夠導出到XLS併爲您生成漂亮的圖形。

它生成的統計數據:

  • 內存使用
  • CPU使用率
  • 網絡使用
  • 磁盤I/O

祝你好運:)