Linux监控调优
Linux中常用的监控CPU整体性能的工具
mpstat: mpstat 不但能查看所有CPU的平均信息,还能查看指定CPU的信息。
vmstat:只能查看所有CPU的平均信息;查看cpu队列信息;
iostat: 只能查看所有CPU的平均信息。
sar: 与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。
top:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示。
1、Disabling daemons (关闭 daemons)
2、Shutting down the GUI (关闭GUI)
3、Changing kernel parameters (改变内核参数)
4、Kernel parameters (内核参数)
5、Tuning the processor subsystem(处理器子系统调优)
6、Tuning the memory subsystem (内存子系统调优)
7、Tuning the file system(文件系统子系统调优)
8、Tuning the network subsystem(网络子系统调优)
【http://os.51cto.com/art/201108/286625_all.htm】
找到最耗CPU的java线程
判断I/O瓶颈
【找到最耗CPU的java线程】
ps -mp pid -o THREAD,tid,time
ps -Lfp pid
这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列。
通过 printf "%x\n" 30834 首先转化成16进制。
通过jstack命令dump出当前的jvm进程的堆栈信息。
通过grep命令即可以查到对应16进制的线程id信息,很快就可以找到对应最耗CPU的代码快在哪。
top -Hp pid
【判断I/O瓶颈】
mpstat命令
Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。
命令:mpstat -P ALL 1 1000
注意一下这里面的%iowait列,CPU等待I/O操作所花费的时间。这个值持续很高通常可能是I/O瓶颈所导致的。通过这个参数可以比较直观的看出当前的I/O操作是否存在瓶颈
iostat命令
命令:iostat -m -x 1 1000
pid命令
命令:pidstat -p pid -u -d -t -w -h 1 1000
相当实用的一个命令,可以基于当个进程分析对应的性能数据,包括CPU,I/O,IR , CS等,可以方便开发者更加精细化的观察系统的运行状态。不过pidstat貌似是在2.6内核的一些较新的版本才有,需要安装sysstat包。
【其他命令】
netstat -natp : 查看对应的网络链接,关注下Recv-Q , Send-Q , State。
lsof -p pid : 查找对应pid的文件句柄
lsof -i : 80 : 查找对应端口被哪个进程占用
lsof /tmp/1.txt :查找对应文件被哪个进程占用
tcpdump / wireshark :抓包分析工具
jstat / jmap / jstack / jps 等一系列的java监控命令

浙公网安备 33010602011771号