2010-09-21 68 views
1

我使用linux/proc // stat文件爲應用程序生成cpu使用信息。我遇到的問題是,在Fedora 13上,事情似乎在Ubuntu 10.04上表現得很奇怪,而且我的行爲和我預期的一樣。Linux性能統計表現奇怪

具體地:1
ubuntu上通過4:1的比例應用登錄多個工藝用戶的時間:在Fedora處理用戶時間1

在Fedora應用通過以3:1的比例記錄多個過程的系統時間值在短時間後停止遞增並且不會繼續。

這對我來說似乎很奇怪,而且用戶時間完全停止增加的事實看起來像是一個徹頭徹尾的錯誤。

我也試着用幾種不同的方法讀取所有結果相同的值,並且我已經進行了測試以確認用戶和系統時間未轉置。

任何人都可以闡明可能發生的事情嗎?有沒有任何有效的方法來處理用戶時間會停止增加一個進程?

回答

0

用戶時間根本不增加聽起來像一個錯誤。如果您可以創建一個演示問題的最小示例,我會將其提交到Fedora bug tracker

(你做了很多的信號處理工作,通過任何機會呢?)

+0

負面的信號處理程序,我會看看做一個最小的例子,但我的猜測是,我將無法打破它。 – radman 2010-09-21 05:51:18

0

假設你的意思的/ proc/[PID]/STAT,這個過程可以積累沒有用戶的時間,如果它是消費其所有系統調用或等待wchan(通常是磁盤或網絡或其他I/O)的時間。

進程記帳的詳細程度由Linux 2.6.x(以及其他)內核中的許多配置變量控制。

+0

該應用程序有20個正在運行的線程,並始終產生良好的輸出,它是一個大型應用程序,現在它始終處於系統調用中的方式... – radman 2010-09-21 05:53:10

+0

您對「無方法」發生的直覺以及你的數據似乎有衝突。數據通常比直覺更正確。例如,死鎖線程可以阻止進程累積用戶空間循環。 – msw 2010-09-21 05:56:42

+0

它極其不可能累積*零*用戶時間 - 即使長時間執行的系統調用最終會返回到用戶空間(當然,在內核中被阻塞的進程也不會累積任何時間)。 – caf 2010-09-21 06:02:57