在 FreeBSD 系统中按进程检索内存使用情况
Retrieve memory usage by process in FreeBSD system
在 Linux 中,我们可以使用 /proc/[id]/stat
、/proc/[id]/status
.
按进程检索内存使用情况
但是在 FreeBSD 中我们没有文件 stat
,并且在文件 /proc/[id]/status
中我们没有一个字段告诉我们具有特定 ID 的进程使用了多少内存。
那么,我该如何检索这个值?我想在我的 c++ 程序中检索此值以进行监视。
我想您正在寻找 procstat(1) 实用程序。例如,要检索资源使用情况,您可以使用命令:
procstat -r $PID
要将其用于自己的程序,有 libprocstat(3) 库。 "procstat -r" 使用函数 "procstat_getprocs" 来检索有关资源使用情况的信息,因此您可以使用以下源代码作为示例:https://github.com/freebsd/freebsd/blob/master/usr.bin/procstat/procstat_rusage.c
还有 getrusage(2) 系统调用。
在 Linux 中,我们可以使用 /proc/[id]/stat
、/proc/[id]/status
.
但是在 FreeBSD 中我们没有文件 stat
,并且在文件 /proc/[id]/status
中我们没有一个字段告诉我们具有特定 ID 的进程使用了多少内存。
那么,我该如何检索这个值?我想在我的 c++ 程序中检索此值以进行监视。
我想您正在寻找 procstat(1) 实用程序。例如,要检索资源使用情况,您可以使用命令:
procstat -r $PID
要将其用于自己的程序,有 libprocstat(3) 库。 "procstat -r" 使用函数 "procstat_getprocs" 来检索有关资源使用情况的信息,因此您可以使用以下源代码作为示例:https://github.com/freebsd/freebsd/blob/master/usr.bin/procstat/procstat_rusage.c
还有 getrusage(2) 系统调用。