单项观测工具
1. CPU
(1) mpstat
对于多处理器架构的系统,mpstat 可以用来观测系统中每一个CPU的状态。
$ mpstat -P ALL 2 10
2. IO
(1)iopp
iopp 从/proc/pid/io 中读取数据,可以输出进程读写IO的情况(读写的字节数,读写产生的系统调用次数等),
工具默认输出所有进程的IO读写情况,用 -i 选择可以筛掉无IO读写的进程。
$ iopp -ci -k -1
-c 表示输出完整的命令行。
如果需要输出指定进程的IO读写信息,可以用grep筛选。我准备修改下iopp的代码,用-p 选项来支持 输出指定pid的进程的IO读写情况。
3. Memory
(1)pmap
pmap 用于输出 进程的内存映像信息。
$ pmap -d pid
4. Network
(1)ping
ping 是Window 和 Linux 系统下常用的用于检测网络状态的命令工具,在这里提出它,主要是提醒再做性能测试前,需要检测下网络延迟。
对于网络延迟比较大的测试环境,网络会造成系统瓶颈,可能跟你的预期不太一致,这也是比较容易忽视的一点。
需要检测包括 压测工具 与 收报的服务器之间,以及系统内部各个通信模块之间的网络情况,最好能做到与生产环境一致。
系统综合观测工具
(1)iostat
(2)vmstat
进程综合观测工具
(1) pidstat
pidstat 主要 用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。
> 统计 CPU : $pidstat -u -p pid 2 10
> 统计 内存 : $pidstat -r -p pid 2 10
> 统计 IO : $pidstat -d -p pid 2 10
> 统计 上下文切换: $pidstat -w -p pid 2 10
cswch/s : 每秒任务主动(自愿的,自己阻塞)切换上下文的次数。
nvcswch/s : 每秒任务被动(不自愿的,被抢占、或时间片完等)切换上下文的次数。
可以这样:
pidstat -wdru -p pid 2 10
每次输出上面所有的信息。
还可以统计进程内相关线程的状态,上面的命令中加上-t选项即可。
阅读(3201) | 评论(0) | 转发(0) |