iostat -m
Linux 2.6.32-2.0.0.8-6 (log2) 2016Ū10Ղ20ɕ _x86_64_ (24 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.57 0.00 0.57 0.04 0.00 98.82
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sdd 0.16 0.00 0.01 5315 159414
sdi 0.06 0.00 0.00 1 811
tps:每秒传输次数 io次数
MB_read/s:每秒读取量
MB_wrtn/s:每秒写入量
MB_read:读取总量
MB_wrtn:写入总量
iostat -d -x
Linux 2.6.32-2.0.0.8-6 (log2) 2016Ū10Ղ20ɕ _x86_64_ (24 CPU)
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdd 0.00 0.01 0.00 0.16 0.60 18.11 115.14 0.00 3.48 0.87 0.01
sdi 0.00 0.00 0.00 0.06 0.00 0.09 1.51 0.00 0.00 0.00 0.00
rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数.即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数.即 delta(wio)/s
rsec/s: 每秒读扇区数.即 delta(rsect)/s
wsec/s: 每秒写扇区数.即 delta(wsect)/s
rkB/s: 每秒读K字节数.是 rsect/s 的一半,因为每扇区大小为512字节.(需要计算)
wkB/s: 每秒写K字节数.是 wsect/s 的一半.(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区).delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O队列长度.即 delta(aveq)/s/1000 (因为aveq的单位为毫秒).
await: 平均每次设备I/O操作的等待时间 (毫秒).即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒).即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的.即 delta(use)/s/1000 (因为use的单位为毫秒)
如果%iowait的值过高,表示硬盘存在I/O瓶颈。
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;
如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。
如果avgqu-sz比较大,也表示有大量io在等待。
vmstat -S M
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 3 3896 432 52215 0 0 1 28 0 0 1 1 99 0 0
vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息。
Procs(进程):
r: 运行队列中进程数量
b: 等待IO的进程数量
Memory(内存):
inact: 非活跃内存大小(当使用-a选项时显示)
active: 活跃的内存大小(当使用-a选项时显示)
swpd: 使用虚拟内存大小
注意:如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
free: 空闲物理内存大小
buff: 用作缓冲的内存大小
cache: 用作缓存的内存大小
注意:如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。
Swap:
si: 每秒从交换区写到内存的大小,由磁盘调入内存
so: 每秒写入交换区的内存大小,由内存调入磁盘
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
IO:(现在的Linux版本块的大小为1kb)
bi: 每秒读取的块数
bo: 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
系统:
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
CPU(以百分比表示):
us: 用户进程执行时间百分比(user time)
注意: us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
sy: 内核系统进程执行时间百分比(system time)
注意:sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
wa: IO等待时间百分比
注意:wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
id: 空闲时间百分比
1 r 值若经常大于1甚至更大的数字,且id常小于40%,表示CPU负荷过重。
2 当主程序正在运行时,有较少的自由是好事,这表示缓存使用更有效率,除非是有不断的写入交换磁盘(so,bo)。
3 cache 值如果较大,且bi 值较小,表示系统效率好。
4 如果swapd数值大于0,但si,so都显示0,此时系统效能还是正常的。
5 如果bi,bo出现较大的数值,但si,sowas维持数值0,表示系统IO负载过重,要检查档案系统或硬碟有无异常。
6 如果bi,bo with si,so同时呈现较大的数值,表示记忆体swapping频繁,RAM太小。
7 kswapd程序服务是负责确保闲置的记忆体可释放,每次启动扫描会尝试释放32个pages,并且一直在重复这个程序,直到闲置记忆体的数值高于pages_high(核心参数)。
8 pdflush程序服务是将记忆体中的内容与档案系统进行同步操作,确保记忆体资料写入硬碟。
9 bi或bo出现0的次数太过频繁,除非系统处理闲置状态,否则应该检查I / O方面的硬体装置,例如硬碟,存储,HBA卡甚至是光纤线。
strace -p 17828
Process 17828 attached - interrupt to quit
accept(0, {sa_family=AF_INET, sin_port=htons(14860), sin_addr=inet_addr("127.0.0.1")}, [16]) = 4
clock_gettime(CLOCK_MONOTONIC, {21601433, 178234747}) = 0
gettimeofday({1477294239, 17152}, NULL) = 0
times({tms_utime=14970, tms_stime=8128, tms_cutime=0, tms_cstime=0}) = 2588981263
poll([{fd=4, events=POLLIN}], 1, 5000) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\1\1\0\1\0\10\0\0", 8) = 8
read(4, "\0\1\0\0\0\0\0\0", 8) = 8
read(4, "\1\4\0\1\5>\2\0", 8) = 8
read(4, "\0171SCRIPT_FILENAME/home/q/system/"..., 1344) = 1344
read(4, "\1\4\0\1\0\0\0\0", 8) = 8
gettimeofday({1477294239, 20775}, NULL) = 0
lstat("/home/xxx/public/index.php", {st_mode=S_IFREG|0755, st_size=227, ...}) = 0
lstat("/home/xxx/public", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/xxx", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/x", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home/x", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
clock_gettime(CLOCK_MONOTONIC, {21601433, 182201862}) = 0
gettimeofday({1477294239, 21122}, NULL) = 0
read(4, "\1\5\0\1\0003\5\0", 8) = 8
read(4, "depMd5=889675bcbdc82c50260173446"..., 51) = 51
read(4, "\0\0\0\0\0", 5) = 5
gettimeofday({1477294239, 21234}, NULL) = 0
setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={60, 0}}, NULL) = 0
rt_sigaction(SIGPROF, {0x5719d0, [PROF], SA_RESTORER|SA_RESTART, 0x3e5c8326a0}, {0x5719d0, [PROF], SA_RESTORER|SA_RESTART, 0x3e5c8326a0}, 8) = 0
-c 统计每一系统调用的所执行的时间,次数和出错的次数等.
-d 输出strace关于标准错误的调试信息.
-f 跟踪由fork调用所产生的子进程.strace -f php
-ff 如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.
-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.
-h 输出简要的帮助信息.
-i 输出系统调用的入口指针.
-q 禁止输出关于脱离的消息.
-r 打印出相对时间关于,每一个系统调用.
-t 在输出中的每一行前加上时间信息.
-tt 在输出中的每一行前加上时间信息,微秒级.
-ttt 微秒级输出,以秒表示时间.
-T 显示每一调用所耗的时间.
-v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.
-V 输出strace的版本信息.
-x 以十六进制形式输出非标准字符串
-xx 所有字符串以十六进制形式输出.
-a column
设置返回值的输出位置.默认 为40.
-e expr
指定一个表达式,用来控制如何跟踪.格式如下:
[qualifier=][!]value1[,value2]...
qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用来限定的符号或数字.默认的 qualifier是 trace.感叹号是否定符号.例如:
-eopen等价于 -e trace=open,表示只跟踪open调用.而-etrace!=open表示跟踪除了open以外的其他调用.有两个特殊的符号 all 和 none.
注意有些shell使用!来执行历史记录里的命令,所以要使用\\.
-e trace=set
只跟踪指定的系统 调用.例如:-e trace=open,close,rean,write表示只跟踪这四个系统调用.默认的为set=all.
-e trace=file
只跟踪有关文件操作的系统调用.
-e trace=process
只跟踪有关进程控制的系统调用.
-e trace=network
跟踪与网络有关的所有系统调用.
-e strace=signal
跟踪所有与系统信号有关的 系统调用
-e trace=ipc
跟踪所有与进程通讯有关的系统调用
-e abbrev=set
设定 strace输出的系统调用的结果集.-v 等与 abbrev=none.默认为abbrev=all.
-e raw=set
将指 定的系统调用的参数以十六进制显示.
-e signal=set
指定跟踪的系统信号.默认为all.如 signal=!SIGIO(或者signal=!io),表示不跟踪SIGIO信号.
-e read=set
输出从指定文件中读出 的数据.例如:
-e read=3,5
-e write=set
输出写入到指定文件中的数据.
-o filename
将strace的输出写入文件filename
-p pid
跟踪指定的进程pid.
-s strsize
指定输出的字符串的最大长度.默认为32.文件名一直全部输出.
-u username
以username 的UID和GID执行被跟踪的命令
sar -f /var/log/sysstat/sa28 \| head sar -r -f
sar -u: 默认情况下显示的cpu使用率等信息就是sar -u
01:20:01 PM CPU %user %nice %system %iowait %steal %idle
01:30:01 PM all 1.90 0.00 4.05 0.01 0.40 93.64
%user 用户模式下消耗的CPU时间的比例;
%nice 通过nice改变了进程调度优先级的进程,在用户模式下消耗的CPU时间的比例
%system 系统模式下消耗的CPU时间的比例;
%iowait CPU等待磁盘I/O导致空闲状态消耗的时间比例;
%steal 利用Xen等操作系统虚拟化技术,等待其它虚拟CPU计算占用的时间比例;
%idle CPU空闲时间比例;
sar -q: 查看平均负载
指定-q后,就能查看运行队列中的进程数、系统上的进程大小、平均负载等;与其它命令相比,它能查看各项指标随时间变化的情况;
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载 ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
sar -r: 指定-r之后,可查看物理内存使用状况;
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:物理内存使用率,这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
sar -W:查看页面交换发生状况
页面发生交换时,服务器的吞吐量会大幅下降;服务器状况不良时,如果怀疑因为内存不足而导致了页面交换的发生,可以使用这个命令来确认是否发生了大量的交换;
pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量
要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来;
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
-A 汇总所有的报告
-a 报告文件读写使用情况
-B 报告附加的缓存的使用情况
-b 报告缓存的使用情况
-c 报告系统调用的使用情况
-d 报告磁盘的使用情况
-g 报告串口的使用情况
-h 报告关于buffer使用的统计数据
-m 报告IPC消息队列和信号量的使用情况
-n 报告命名cache的使用情况
-p 报告调页活动的使用情况
-q 报告运行队列和交换队列的平均长度
-R 报告进程的活动情况
-r 报告没有使用的内存页面和硬盘块
-u 报告CPU的利用率
-v 报告进程、i节点、文件和锁表状态
-w 报告系统交换活动状况
-y 报告TTY设备活动状况
sudo apt-get install nmon
sudo yum install nmon
nmon:
c = CPU 统计数据
m =内存
j =文件系统
d =磁盘输入/输出信息
n =网络方面的统计数字
V =虚拟内存
r =系统信息
N =NFS
k =内核信息
t =消耗资源最多的进程
. =只显示忙碌的磁盘/进程
v : 详细模式
key --- statistics which toggle on/off ---
h = This help information
r = RS6000/pSeries CPU/cache/OS/kernel/hostname details + LPAR
t = Top Process Stats 1=basic 3=CPU
u = shows command arguments (hit twice to refresh)
c = CPU by processor l = longer term CPU averages
m = Memory and Swap stats j = JFS Usage Stats
n = Network stats N = NFS
d = Disk I/O Graphs D=Stats o = Disks %Busy Map
k = Kernel stats & loadavg V = Virtual Memory
g = User Defined Disk Groups [start nmon with -g <filename>]
v = Verbose Simple Checks - OK/Warnings/Danger
b = black & white mode
--- controls ---
+ and - = double or half the screen refresh time
q = quit space = refresh screen now
. = Minimum Mode =display only busy disks and processe
0 = reset peak counts to zero (peak = ">")
Use these keys to toggle statistics on/off:
c = CPU l = CPU Long-term - = Faster screen updates
m = Memory j = Filesystems + = Slower screen updates
d = Disks n = Network V = Virtual Memory
r = Resource N = NFS v = Verbose hints
k = kernel t = Top-processes . = only busy disks/procs
h = more options q = Quit
curl:
-C 断点续传 curl -C - -O http://xxx.com/aa.tar.gz
-e / --referer 来自哪个页面
-A / --user-agent UA
-b / --cookie "PHPSESSID=p9t9bt5tvhphpmpelobuc1h271;key=val" 设置cookie
-d / --data "key=val&key2=val2" / --data-urlencode / -d @filename 将该文件中的内容当作数据传递给服务器端
-D filename 将网站下发的cookies保存到filename
--connect-timeout <seconds> 超時
--limit-rate 1000k 限定带宽
--max-filesize 指定最大文件大小
-u user:passwd
-I 只打印头部响应信息
-o 结果输出到文件
-O url定位到具体的某个文件
-z 01-Dec-16 下载指定时间内修改过的文件
-X DELETE 指定其他协议
-x proxyxxx.com:1111 设置代理
--form "fileupload=@filename.txt" 上传文件
-H 'Accept-Encoding: gzip' -H 'Accept-Language: zh_CN' 设置头信息
-H "Accept-Encoding: gzip" http://xxx.com/ | gunzip 使用gunzip解压
–compress
-k 忽略证书错误
-L 获取重定向后的页面
curl -u user -T filename.txt ftp://ftp/xxx/ 上传文件
curl -u ftpuser:ftppw -T "{filename1.txt, filename2.txt}" ftp://ftp/xxx/ 多文件上传
curl -u user -T - ftp://ftp/xxx/filename.txt 标准输入上传
ss -s
Total: 11370 (kernel 11859)
TCP: 23971 (estab 10627, closed 13270, orphaned 31, synrecv 0, timewait 13267/0), ports 10290
Transport Total IP IPv6
* 11859 - -
RAW 0 0 0
UDP 3 3 0
TCP 10701 10701 0
INET 10704 10704 0
FRAG 0 0 0
-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve 解析主机名
-a, --all 显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options 显示计时器信息
-e, --extended 显示详细的套接字(sockets)信息
-m, --memory 显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字(socket)使用概况
-4, --ipv4 仅显示IPv4的套接字(sockets)
-6, --ipv6 仅显示IPv6的套接字(sockets)
-0, --packet 显示 PACKET 套接字(socket)
-t, --tcp 仅显示 TCP套接字(sockets)
-u, --udp 仅显示 UCP套接字(sockets)
-d, --dccp 仅显示 DCCP套接字(sockets)
-w, --raw 仅显示 RAW套接字(sockets)
-x, --unix 仅显示 Unix套接字(sockets)
-f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 将原始TCP套接字(sockets)信息转储到文件
-F, --filter=FILE 从文件中都去过滤器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
usage
ss -t -a
Display all TCP sockets.
ss -u -a
Display all UDP sockets.
ss -o state established ’( dport = :ssh or sport = :ssh )’
Display all established ssh connections.
ss -x src /tmp/.X11-unix/*
Find all local processes connected to X server.
ss -o state fin-wait-1 ’( sport = :http or sport = :https )’ dst 193.233.7/24
List all the tcp sockets in state FIN-WAIT-1 for our apache to network 193.233.7/24 and look at their timers.
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ip地址筛选:
ss src ADDRESS_PATTERN
src:表示来源
ADDRESS_PATTERN:表示地址规则
端口筛选:
ss dport OP PORT
PORT:表示端口
dport:表示过滤目标端口、相反的有sport
OP:是运算符{
<= or le : 小于等于 >= or ge : 大于等于
== or eq : 等于
!= or ne : 不等于端口
< or lt : 小于这个端口 > or gt : 大于端口}
实例:
ss sport = :http 也可以是 ss sport = :80
ss dport = :http
ss dport \> :1024
ss sport \> :1024
ss sport \< :32000
ss sport eq :22
ss dport != :22
ss state connected sport = :http
ss \( sport = :http or sport = :https \)
ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24
ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接
ss -o state established '( sport = :http or sport = :https )' dst ip/24 显示所有已建立的HTTP连接(源端口为 80或者 443),目标网络为 ip/24的所有tcp套接字
ss -4 state all
state状态:
established 代表一个打开的连接
syn-sent 再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
syn-recv 再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
fin-wait-1 等待远程TCP连接中断请求,或先前的连接中断请求的确认
fin-wait-2 从远程TCP等待连接中断请求
time-wait 等待足够的时间以确保远程TCP接收到连接中断请求的确认
closed 没有任何连接状态
close-wait 等待从本地用户发来的连接中断请求
last-ack 等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
listen 侦听来自远方的TCP端口的连接请求
closing 等待远程TCP对连接中断的确认
all : 所有以上状态
connected 除了listen and closed的所有状态
synchronized 所有已连接的状态除了syn-sent
bucket 显示状态为maintained as minisockets,如:time-wait和syn-recv.
big 和bucket相反.
画的比较好的tcp连接图,来自网上:
gpg -c file 加密文件
gpg file 解密文件
rsync
-v 同tar v 显示
-a 进行归档
-z 数据压缩
-r 递归
-b 创建备份
--progress
--exclude path 排除文件 支持通配符
--exclude-from filelistpath
--delete 删除源端不存在的文件
ifconfig eth0 hw ether 设置物理地址
time [options] command [arguments...]
/usr/bin/time -f '%Uu %Ss %er %MkB %C' curl http://localhost:8080/xx
0.00u 0.00s 0.00r 2216kB curl http://localhost:8080/xx
time
%e 已过的时间(以秒为单位)。
%E 经过的时间(以[小时:]分钟:秒为单位)。
%S 进程在内核模式下花费的CPU秒数总数。
%U 进程在用户模式下花费的CPU秒数。
%P 该作业获得的CPU的百分比,计算公式为(%U +%S/%E。
memory
%M 进程在其生存期内的最大驻留集大小(以KB为单位)。
%t 进程的平均驻留集大小,以KB为单位。
%K 进程的内存使用的平均总数(数据+堆栈+文本),以KB为单位。
%D 进程的非共享数据区的平均大小,以KB为单位。
%p 进程的非共享堆栈空间的平均大小(以KB为单位)。
%X 进程的共享文本空间的平均大小,以KB为单位。
%Z 系统的页大小(以字节为单位)。这是一个按系统的常数,但在不同系统之间不同。
%F 进程运行时发生的主要页面故障数。这些是必须从磁盘读取页面的故障。
%R 次要或可恢复的页面故障数。这些是无效但尚未被其他虚拟页面声明的页面的故障。因此数据在页仍然有效,但系统表必须更新。
%W 进程被交换出主存储器的次数。
%c 无意中进行上下文切换的次数(因为时间片已过期)。
%w 等待次数:程序自动进行上下文切换的次数,例如在等待I/O操作完成时。
I/O
%I 进程的文件系统输入数。
%O 进程的文件系统输出数。
%r 进程接收的套接字消息数。
%s 进程发送的套接字消息数。
%k 传送到进程的信号数。
%C 命令的名称和命令行参数正在被定时。
%x 命令的退出状态。
-f,--format=FORMAT 格式化输出