kafka性能测试
kafka性能测试
磁盘IO测试
(1.)测试磁盘IO的写入瓶颈,在当前目录下创建一个test.dd的文件,写入20000个1M的数据。
sync;time -p bash -c "(dd if=/dev/zero of=test.dd bs=1M count=20000)"
16472+0 records in
16471+0 records out
17271095296 bytes (17 GB) copied, 60.7684 s, 284 MB/s
real 60.78
user 0.10
sys 21.69
(2.) 使用iostat命令监测磁盘io情况
# -x 参数显示所有设备的详细的 I/O 统计信息
iostat -x 1
iostat /dev/vdb -x 1
wkB/s:每秒写入设备的数据量
%util:消耗在I/O请求中的CPU时间百分比(设备带宽利用率)。如果该值接近100%说明设备出现了瓶颈。
如果没有iostat。请执行yum install sysstat –y命令进行安装iostat命令
# 查看 LVM 磁盘 I/O 统计报告
iostat -N
# 以 5 秒捕获的间隔捕获两个报告
iostat 5 2
# 以 MB 为单位统计
iostat -m
(3.) 磁盘IO测试
time dd if=/dev/zero of=test.dbf bs=8k count=300000 oflag=direct #测试写性能
dd if=test.dbf bs=8k count=300000 of=/dev/null #测试读性能
# 读写性能
time dd if=/dev/zero of=./testReadOrWrite bs=8k count=1000000
(4.)查看下系统的磁盘参数
grep ^ /sys/block/*/queue/rotational # 0-ssd
(5.)测试磁盘IO的读取瓶颈
hdparm -tT --direct /dev/sda
hdparm命令是显示与设定硬盘的参数。
-t参数为评估硬盘的读取效率(不经过磁盘cache)。
-T参数为评估硬盘的读取效率(经过磁盘cache)
如果没有hdparm命令可以直接yum –y install hdparm即可
(6.)iotop
# 找到消耗I/O最高的进程
iotop -oP
# 使用非交互模式将iotop命令输出信息写入日志
nohup iotop -b -o -n 10 -d 5 -t > /tmp/iotop.log &
网卡性能测试
(1.)查看网卡的速度
ethtool eth0
(2.) 查看网卡的出入流量
nload eth0
CPU性能测试
(1.)查看/proc/cpuinfo能查看cpu的详情
cat /proc/cpuinfo
主机性能测试
unixbench 工具 Run
https://github.com/kdlucas/byte-unixbench
kafka性能测试
(1.) 性能测试命令
kafka-producer-perf-test --producer-props bootstrap.servers=localhost:9092 --topic Test --throughput 1000000 --record-size 1024 --num-records 50000000
--producer-props bootstrap.servers:Kafka 的服务器地址及端口
--topic:发送的消息所属类别
--throughput:最大信息吞吐量,单位为 messages/sec,数值越小消息延迟越小
--record-size:每条消息的大小,单位为 bytes
--num-records:要发送的消息条数
----------------------------------------------------------------------------------------------------
bin/kafka-consumer-perf-test.sh --zookeeper localhost:2181 --messages 100000 --topic test --threads 1
zookeeper:zookeeper端口配置
messages:消费者消费消息总数量
topic:消费者需要消费的topic
threads:消费者使用几个线程同时消费
group:消费者组名称
socket-buffer-sizesocket: 缓冲大小
fetch-size :每次向kafka broker请求消费大小
(2.)broker参数
num.network.threads(用于接收并处理网络请求的线程数):3
num.io.threads(用于接收并处理磁盘IO的线程数 ):8
num.partitions(每个 Topic 下面的 Partition 数量,直接影响 Kafka 集群的吞吐性能,理论上 Partition 越多吞吐量越大,但相应的延迟和内存开销越大,并且高可用性降低):3
(3.)查看kafka消费堆积
kafka-consumer-groups --bootstrap-server master:9092 --describe --group test_kafka_game_x_g1
# 字段说明:
LogEndOffset 下一条将要被加入到日志的消息的位移
CurrentOffset 当前消费的位移
LAG 消息堆积量
消息堆积量:消息中间件服务端中所留存的消息与消费掉的消息之间的差值即为消息堆积量也称之为消费滞后量
(4.) 查看正在运行的消费组
kafka-consumer-groups --bootstrap-server master:9092 --list --new-consumer
相关链接
【励志篇】:
古之成大事掌大学问者,不惟有超世之才,亦必有坚韧不拔之志。