本周的工作中需要对一套部署好的redis集群进行性能测试,在这个过程中用到了几个工具,这里对这些工具的用法记录一下。

sar

我们拿到一台虚拟机,在使用之前可以先用sar看一下该虚拟机目前的性能概况。使用方法如下:

$ sudo yum install -y sysstat # 安装sysstat包

$ sar -u 5 # Report CPU utilization every 5 seconds
$ sar -r 5 # Report Memory utilization every 5 seconds
$ sar -B 5 # Report paging statistics every 5 seconds
$ sar -d -p 5 # Report activity for each block device every 5 seconds
$ sar -d -p 5 # Report activity for each block device every 5 seconds
$ sar -n ALL 5 # Report network statistics every 5 seconds

后面如果出现性能问题,还可以随时执行以上命令查看系统状况。sar的完整命令行参数可参考这里

iperf3

如果工作涉及多台服务器之间的通讯,可以在具体工作前使用iperf3这个工具对服务器之间的网络性能测量一下,心里对网络性能也有个底。使用方法如下:

$ sudo yum install -y iperf3

$ iperf3 --server # 在服务端启动Server
$ iperf3 --client $server_ip --bandwidth 10M --bytes 300 # 使用10Mbit/s的带宽,发送的报文长度为300 Bytes
$ iperf3 --client $server_ip --udp # 测试UDP传输的性能

有了iperf3的输出,我们对服务器之间的网络状况更加信心了。iperf3的完整命令行参数可参考这里

redis-benchmark

redis本身带了一个叫redis-benchmark的工具,用它可以测量一下部署的redis的性能指标。使用方法如下:

$ redis-benchmark -h ${redis_ip} -p ${redis_port} -c 50 -n 10000 -d 20 -r 10000 -P 30 # 50并发连接,共总10000个请求,set/get的数据大小为20,存取的键在10000间随时变动(避免热写某一个键值),每30条命令作为一个pipeline执行

redis-benchmark的完整命令行参数可参考这里

参考

  1. https://www.linuxtechi.com/generate-cpu-memory-io-report-sar-command/
  2. https://blog.51cto.com/dingtongxue1990/1854124
  3. http://ghoulich.xninja.org/2016/11/17/how-to-use-redis-benchmark-to-measure-performance/
  4. https://www.computerhope.com/unix/usar.htm
  5. https://iperf.fr/iperf-doc.php
  6. https://redis.io/topics/benchmarks