系统性能分析主要从以下四个方面考虑:
1. 整体系统CPU使用率
2. 内存利用率
3. 磁盘I/O利用率和延迟
4. 网络利用率
CPU:
vmstat, sar, dstat, mpstat, top, ps
系统自带的监控分析工具,检查相关系统日志,Web服务器应用日志,DB日志等。
结合辅助的一些命令,如top, free, uptime, sar等
可用CPU阈值,设定期望系统平均可用的CPU百分比
- JAVA程序可通过JVM自带的命令工具(jstat, jmap, Jvisualvm, JConsole)来分析
- MySQL可通过数据库监控工具(Spotlight, Monyog, 及命令行工具)来分析
- 是否做负载均衡
- 加强机器性能
内存:
vmstat, sar, dstat, free, top, ps
做一些缓存服务器去提升性能
虚拟内存:当物理内存不够用的时候,要将物理内存的一部分空间释放出来以供当前运行的程序使用。那些被释放的空间,可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到虚拟内存空间中,等到那些程序要运行时,再从虚拟内存中恢复保存的数据到屋里内存。
网络:
sar, ifconfig, netstat
网络带宽,响应时间,网络延迟,阻塞等
要考虑对应的网络是否可达,防火墙是否开启,端口的访问,带宽是否有被限制,路由的寻址,网络的时延等问题。
I/O:
sar, iostat, iotop
I/O比较频繁的(读或些)时候,如果I/O得不到满足会导致应用的阻塞
要考虑的有IO的TPS,平均IO数据,平均队列长度,平均服务时间,平均等待时间、IO利用率等指标
Linux系统性能分析:
uptime, top, w 分析系统负载
系统平均负载: 在特定时间间隔内运行队列中的平均进程数