如何汇总 Linux 或 Unix 上给定命令的详细系统资源使用情况
如何确定在 Linux、OS X Unix、BSD 和类 Unix 操作系统上执行特定命令期间的系统资源使用情况?
您需要使用/usr/bin/time(以下简称“time”)命令来查找某条命令执行过程中的系统资源使用情况。从“time”命令中可以获得以下信息:
您需要使用/usr/bin/time(以下简称“time”)命令来查找某条命令执行过程中的系统资源使用情况。从“time”命令中可以获得以下信息:
- 用户时间
- 系统时间
- 此命令占用的 CPU 百分比
- 已用时间
- 平均共享文本大小
- 平均未共享数据大小
- 平均筹码量
- 平均总大小
- 最大驻留集大小
- 平均驻留集大小
- 重大(需要 I/O)页面错误
- 轻微(回收框架)页面错误
- 自愿上下文切换
- 非自愿上下文切换
- 掉期
- 文件系统输入
- 文件系统输出
- 已发送套接字消息
- 已接收套接字消息
- 信号已发送
- 页面大小(字节)
- 退出状态
上面描述了当前进程或命令所使用的资源,可以通过“time”命令获取。它的定义如下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.example.com
示例输出:
让我们在 OS X 或 FreeBSD Unix 系统上运行date 命令来找出 date 命令在执行期间使用的资源:
$ /usr/bin/time -l date
示例输出:
关于“/usr/bin/time”和 time 命令的说明
- time 是一个 shell 命令。
- /usr/bin/time 是一个外部命令,提供附加信息,例如特定命令所使用的资源。
有关详细信息,请参阅手册页。