性能监控
监控CPU
Windows
任务管理器
性能管理器(Perfmon)
cmd-->perfmon
Typeperf
Linux
top
第一行为任务队列信息
第二、三行为进程和CPU信息
第四、五行为内存信息
PID:进程ID
USER:用户名
PR:优先级
NI:负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟机内存总量,单位为KB。VIRT=SWAP+RES
RES:进程使用的、未被换出的物理内存大小,单位KB。RES=CODE+DATA
SHR:共享内存大小,单位KB
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程使用的物理内存百分百
TIME+:进程使用的CPU时间总计,单位1/100秒
vmstat
vmstat [间隔时间] [计数参数]
如vmstat 3 10 表示每隔3秒统计一次,一共统计10次
r:运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。
b:阻塞的进程
swpd:虚拟内容已使用的大小,如果大于0,表示物理内存不足了。
free:空闲的物理内存大小
buff:目录里面有什么内容、权限等缓存
cache:文件和目录缓存
si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不足
so:每秒从虚拟内存写入磁盘的大小,同上
bi:块设备每秒接收的块数量
bo:块设备每秒发送的块数量,例如都文件,bo就大于0 ,bi和bo一般都要接近0 ,不然就是IO过于频繁
in:每秒CPU的中断次数
cs:每秒上下文切换次数,调用系统函数,要进行上下文切换,线程的切换也要进行上下文切换,这个值要越小越好
us:用户CPU时间
sy:系统CPU时间,如果太高,表示系统调用时间长,例如频繁IO操作
id:空虚CPU时间,一般id+us+sy=100
wa:等待IO CPU时间
sar
sar [options] [-A] [-o file] t [n]
t表示采样间隔,n为采样次数,默认为1
-o file 表示将命令结果以二进制形式存放在文件中,file是文件名
options为命令行选项:
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示IO和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
如sar -u -o test 10 3 每10秒采样一次,连续采样3次,观察CPU使用情况,将结果保存到当前目录的test文件中
mpstat
pidstat
jstack
监控内存
Linux
free
/proc/meminfo
jmap
监控磁盘
Linux
df
监控网络
Linux
netstat
netstat参数
-a:显示所有选项
-t:仅显示tcp相关选项
-u:仅显示udp相关选项
-n:拒绝显示别名
-l:仅列出有在listen的服务状态
-p:显示建立相关连接的程序名
-r:显示路由信息
-e:显示扩展信息
-s:按各个协议进行统计
-c:每隔一个固定时间,执行该netstat命令