1
我想知道,我們如何使用c程序並且不使用任何用戶命令工具來查找用戶關於資源利用率的過程統計信息(如CPU,內存)。目前我正在運行Ubuntu 10.10。 謝謝在Ubuntu下查找用戶的資源利用率linux
我想知道,我們如何使用c程序並且不使用任何用戶命令工具來查找用戶關於資源利用率的過程統計信息(如CPU,內存)。目前我正在運行Ubuntu 10.10。 謝謝在Ubuntu下查找用戶的資源利用率linux
這些日子的規範方式是解析虛擬文件系統procfs
的/proc
中的信息。它包含系統幾乎所有方面的文本信息,包括詳細的每個進程的統計信息。這些信息是結構化的,旨在便於解析和編程訪問。 (這就是ps
等工具的工作原理。)
例如,要查詢給定進程的I/O度量標準,您需要閱讀/proc/<pid>/io
下的文件。這包含了一系列name: value
對,像這樣:
rchar: 14823550
wchar: 138670414
syscr: 11549
syscw: 3013
read_bytes: 483328
write_bytes: 8192
cancelled_write_bytes: 0
有關詳細信息,請參見:
[這](HTTP://計算器。 com/questions/4450961/cpu-percentage-by-a-single-process-in-unix-by-the-top-command)和[this](http://stackoverflow.com/questions/1420426) /正在計算-pu-usage-of-a-process-in-linux)可能會對您有所幫助。 – mdec 2011-04-27 06:15:29
@mdec它們是特定於流程的,而我需要它來針對用戶特定的。我想,我必須遍歷所有進程並通過進程的UID計算用戶統計信息。但如果有更有效的方式,那麼將非常感激。 – 2011-04-27 06:39:30