性能压测

系统压测命令-stress

命令安装

1
2
yum install epel-release -y
yum install stress -y

压测命令

压测cpu核数为4, 压测时间为20s

1
stress --cpu 4 --timeout 20

磁盘压测命令

I/O写入测试

1
dd if=/dev/zero of=speed_write_test.dd bs=1M count=10240

I/O读取测试

方法一:

安装hdparm

1
yum install hdparm -y

测试命令

1
hdparm -t --direct /dev/sda3

方法二:

1
dd if=speed_write_test.dd of=/dev/null bs=1M

网络压测命令

1
2
3
4
5
6
7
# 工具 iperf3
# 目标服务器启动(172.18.0.101):
iperf3 -s -D -4

# 测试服务器测试命令(172.18.0.102):
iperf3 -c 172.18.0.101 -4 -i 1 -t10 -b 2g -w 256k #写数据服务器测收带宽;正向带宽
iperf3 -c 172.18.0.101 -4 -i 1 -t10 -b 2g -w 256k -R #写数据服务器测发带宽;反向带宽

常用参数

1
2
3
4
5
6
7
8
9
10
- c 指定server端
- p 指定端口(要和服务器端一致)
- B 绑定客户端的ip地址
- 4 指定ipv4
- f 格式化带宽数输出
- n 指定传输的字节数
- b 使用带宽数量
- u 指定udp协议, 默认tcp
- w 指定套接字缓冲区大小
- R 以反向模式运行(服务器发送,客户端接收)

性能监控分析

系统分析工具下载

mpstat, pidstat等命令需要安装sysstat

1
2
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-11.7.3-1.x86_64.rpm
rpm -Uvh sysstat-11.7.3-1.x86_64.rpm

负载监控

  • uptime
1
2
# -d表示高亮显示变化区域, -n表示两秒输出一次结果
watch -n 2 -d uptime
  • mpstat
1
2
# -P ALL监控所有CPU, 每隔5秒输出一次
mpstat -P ALL 5
  • pidstat
1
2
# 每隔两秒输出一次数据, 输出5组
pidstat -u 2 5

磁盘监控

  • 磁盘读写监控
1
iostat -d -x -k 1 10 
  • 磁盘读写进程查看
1
iotop

网络监控

  • 网络流量监控
1
iftop
  • 网络连接监控
1
2
3
4
5
# 统计所有TCP连接
ss -s

# 查看当前TCP连接状态
ss -atp

常用参数:

1
2
3
4
5
6
7
8
-a, --all            显示所有的套接字
-l, --listening 显示监听状态的socket
-t, --tcp 显示tcp套接字
-u, --udp 显示udp套接字
-p, --processes 展示使用socket的进程
-s, --summary 展示socket使用汇总
-n, --numeric 不解析服务名
-r, --resolve 解析服务名

sar命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看硬盘使用情况
sar -d
# 实时
sar -d 1

# 查看网卡流量
全天
sar -n DEV
实时
sar -n DEV 1

# 查看cpu使用情况
sar -u 1

# 查看内存使用情况
sar -r 1

lsof命令

1
2
3
4
5
6
7
8
9
10
11
# 进程相关
lsof -c mysql

# 用户相关
lsof -u www
lsof -u mysql -c mysql

# 网络连接相关
lsof -i tcp
lsof -i:3306
lsof -i tcp:3306