如何总结Linux或者Unix上给定命令的详细系统资源使用情况
时间:2020-01-09 10:42:25 来源:igfitidea点击:
在Linux,OS X Unix,BSD和类Unix操作系统上执行特定命令期间,如何确定系统资源使用情况?
您需要使用"/usr/bin/time"(以下称为"时间")命令来查找执行特定命令期间的系统资源使用情况。
可以从time命令获得以下信息:
- 用户时间
- 系统时间
- 此命令获得的CPU百分比
- 经过时间
- 平均共享文字大小
- 平均未共享数据大小
- 平均堆栈大小
- 平均总大小
- 最大居民人数
- 平均居民人数
- 重大(需要I/O)页面错误
- 轻微(回收框架)页面错误
- 自愿上下文切换
- 非自愿上下文切换
- 掉期
- 文件系统输入
- 文件系统输出
- 已发送套接字消息
- 收到套接字消息
- 传递信号
- 页面大小(字节)
- 退出状态
以上描述了当前进程或者命令所使用的资源,并且可以通过时间命令获得。
它在sys/resource.h中定义如下。
/* taken from OSX/FreeBSD unix */ struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; /* max resident set size */ long ru_ixrss; /* integral shared text memory size */ long ru_idrss; /* integral unshared data size */ long ru_isrss; /* integral unshared stack size */ long ru_minflt; /* page reclaims */ long ru_majflt; /* page faults */ long ru_nswap; /* swaps */ long ru_inblock; /* block input operations */ long ru_oublock; /* block output operations */ long ru_msgsnd; /* messages sent */ long ru_msgrcv; /* messages received */ long ru_nsignals; /* signals received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary context switches */ };
语法
在Linux上的语法如下:
/usr/bin/time -v command /usr/bin/time -v command arg1 arg2
在FreeBSD或者OS X UNIX上,语法如下:
/usr/bin/time -l command /usr/bin/time -l command arg1 arg2
例子
让我们在Linux上运行host命令,以查找执行期间host命令使用的资源:
$ /usr/bin/time -v host www.theitroad.local
让我们在OS X或者基于FreeBSD Unix的系统上运行date命令,以找出执行期间date命令使用的资源:
$ /usr/bin/time -l date
关于/usr/bin/time和time命令的注释
- time是一个shell命令。
- /usr/bin/time是一个外部命令,它提供其他信息,例如特定命令使用的资源。