服务器监控性能测试
1.服务器性能测试范围:
测试目的:发现服务器的性能瓶颈。配置的不同能够承载的最大任务数不同,能够承载的压力也不同。
2.测试范围及性能指标:
CPU 内存 磁盘 网络 版本
测试和生产的环境配置不同?
性能预估要包含正常性能和性能损耗,通过多次压测来计算性能损耗
即用相同的脚本,相同的场景,相同的用户并发数去测试
3.服务器实时内存监控
3.1 实时监控进程的资源运行状态:top
可以按照CPU和内存等进行排序
语法:
-p 监控指定进程,多个用逗号隔开
M 按内存使用率排序
P 按CPU使用率排序
top中有个运行队列的平均使用率(load average),即可运行进程的平均数,分别按1、5、15分钟平均负载值;
单核CPU load average 的值为1表示满负荷状态。多核就1 * CPU核数
所以 load average的大小要根据CPU核数来判断。
3.2 vmstat
可以监控进程状态、内存memory、虚拟内存swap、磁盘IO 、cpu
动态监控 vmstat 5 20 第一个参数是时间间隔,第二个是显示次数。即每5秒显示1次,总共20次
3.3 free 监控系统的内存使用状态
total 物理内存的大小
used 已经用了多大
free 还有多少可用
shared 多个进程共享的内存总额
buffers/cached 磁盘缓存大小
为了看清楚可以用 free -h 多少兆和G显示
3.服务器实时CPU监控
如果centos系统没有这个命令 iostat、mpstat,用
yum -y install sysstat
mpstat 可以查看多核的CPU核心统计数据
-P 监控哪个核 默认不写就所以的核
后面再跟时间间隔 和 次数
注意第一次输入的时候不看,从第二次开始看
因为第一行是显示自系统启动以来的平均信息。
mpstat -P 0 就是查看第0个CPU
mpstat 查看所有的CPU
动态的:mpstat 1 5 每隔1秒监控5次
分别指定是用户使用的,系统使用的,空闲的
4.实时网络监控
netstat
-n 拒绝显示别名 能显示数字都转换为数字
-l 仅展示监听的服务状态
-p 显示建立相关链接的程序名
-t tcp
-u udp
-i 自动匹配接口信息
netstat -ntlp
netstat -i 网络传输的大小
主要关注这几个:
iface 网络设备的接口名称
MTU 最大的网络传输 字节
RX-OK 接受数据包
TX-OK 发送数据包
RX-ERR 接受数据包时发生多少错误
TX-ERR 发送数据包时发生多少错误
RX-DRP 接受数据包丢多少数据包
TX-DRP 发送数据包丢多少数据包
netstat -i -c 1 实时的每个1秒打印一次(其实不加-c 直接加数字即可)
-ntlp 其实就是用来查看端口有没有被监听,是不是活着,-i是看网络传输的大小。
5.实时监控磁盘
要关注程序运行起来后磁盘的读取和写入的操作。
利用iostat 对系统磁盘IO操作进行监控,同时给出CPU使用情况
这里的tps 指一次IO请求
KB_read 读的总数
iostat -x 展示不同设备的读写情况
指关注
rkb/s 每秒读多少KB
wkb/s 每秒写多少KB
%util 1秒钟有多少时间用于IO操作,即繁忙程度。如果达到100%就有问题
动态监控
iostat -x 2 每2秒就展示io 磁盘情况
iostat -x 5 2 每1秒打印2次磁盘情况
6.万能监控 命令 sar
system activity reporter 系统活动情况报告
是目前linux 上最为全面的系统性能分析工具之一。可以查看cpu\内存、磁盘、进程活动等。
-u cpu使用率
-b 缓存区buffer
-v 进程
-r 内存使用情况
sar -ubvr 2 1
sar -ubvr 2 1 >> test.txt 存到到当前位置