开发者

Getting Linux process resource usage (cpu,disk,network)

开发者 https://www.devze.com 2023-03-18 17:01 出处:网络
I want to use the /proc to find the resource usage of a particular process every second. The resources include cputime, disk usage and network usage. I looked at /proc/pid/stat , but I am not sure whe

I want to use the /proc to find the resource usage of a particular process every second. The resources include cputime, disk usage and network usage. I looked at /proc/pid/stat , but I am not sure whether I am getting the开发者_StackOverflow社区 required details. I want all 3 resource usage and I want to monitor them every second.


Some newer kernels have /proc/<pid_of_process>/io file. This is where IO stats are. It is not documented in man proc, but you can try to figure out the numbers yourself.

Hope it helps. Alex.


checkout glances.

It's got cpu disk and network all on one screen. It's not per process but it's better than looking at 3 separate tools.


getrusage() accomplishes cpu, memory and disk etc.

man 2 getrusage

I don't know about network.


Don't think there is a way to get the disk and network information on a per process basis.

The best you can have is the global disk and network, and the per process CPU time.

All documented in man proc


netstat -an

Shows all connections to the server including the source and destination ips and ports if you have proper permissions.

ac

Prints statistics about users' connect time


The best way to approach problems like this is to look up the source code of tools that perform similar monitoring and reporting. Although there is no guarantee that they are using /proc directly, they will lead you to an efficient way to tackle the problem. For your case, top(1), iotop(8) and nethogs(8) come to mind.


You can use SAR

-x report statistics for a given process.

See this for more details: http://www.linuxcommand.org/man_pages/sar1.html

Example: sar -u -r -b 1 -X PID | grep -v Average | grep -v Linux


You can use top

SYNOPSIS
    top -hv|-bcHiOSs -d delay -n limit -u|U user -p PID -o champ -w [columns]

This is a screen capture of top in a terminal

0

精彩评论

暂无评论...
验证码 换一张
取 消