Zookeeper压力测试.docx
- 文档编号:3785103
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:17
- 大小:226.46KB
Zookeeper压力测试.docx
《Zookeeper压力测试.docx》由会员分享,可在线阅读,更多相关《Zookeeper压力测试.docx(17页珍藏版)》请在冰豆网上搜索。
Zookeeper压力测试
Zookeeper压力测试
压力测试情况
通过对zk并发测试,在800个连接并发创建80万数据时,每个zk虚机节点的磁盘IO达到瓶颈。
由于磁盘性能限制,tps基本在9000左右。
根据官方的一份测试情况来看,tps在3万以上问题不大(测试环境差异)。
通过iostat查看,%util在70%以上,说明cpu大部分时间都消耗在磁盘io请求的处理上。
单节点每秒在几十MB左右。
通过lsof查看,磁盘性能主要消耗在zk自身的操作日志、数据快照、运行日志三部分文件上。
目前建议如果资源充足情况下,生产环境压力上来时,可以将操作日志与数据快照存在不同磁盘。
另一方面,随着负载的增大,日志文件产生过多会占用大量磁盘,而时间较长的历史数据又没有参考价值,建议做定期删除操作。
可以通过crontab添加定时任务,或者通过zk自身配置:
#执行频率单位小时
autopurge.purgeInterval=1
#保存数量
autopurge.snapRetainCount=100
iostat-x-k2
avg-cpu:
%user %nice%system%iowait %steal %idle
10.55 0.00 18.73 21.64 1.58 47.49
Device:
rrqm/s wrqm/s r/s w/s rkB/s wkB/savgrq-szavgqu-sz await svctm %util
scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
vda 0.0023052.74 1.003979.60 3.9894477.61 47.47 19.89 4.71 0.19 75.87
avg-cpu:
%user %nice%system%iowait %steal %idle
8.99 0.00 16.93 15.87 1.32 56.88
Device:
rrqm/s wrqm/s r/s w/s rkB/s wkB/savgrq-szavgqu-sz await svctm %util
scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
vda 0.00 6958.00 0.504223.50 2.0044066.00 20.87 2.04 0.76 0.18 75.75
注:
%util PercentageofCPUtimeduringwhichI/Orequestswereissuedtothedevice.
附上测试情况
测试环境:
Zk集群:
三个zk节点组成集群
双cpu2.4G
内存:
4G
磁盘45G
通过不同连接数并发进行如下操作:
每个连接创建1000个节点,每个节点大小1024B,进行相应的create、get、set、delete、watch操作。
连接数从100到1000。
当连接数达到1000时,由于磁盘瓶颈导致zk集群出现问题。
测试结果:
Createset和get的数据波动原因是zk要对所有的操作以及数据进行持久化,磁盘io压力过大。
在此压力下数据创建没有失败情况。
补充与1节点zk对比测试结果:
测试中发现的相关问题记录
一.maxClientCnxns配置
之前讨论的maxClientCnxns配置,是针对一个客户端ip下连接数的限制,而不是针对有多少连接连到了集群或者这个zk节点。
目前生产环境下5个zk节点的集群承担着总共约550个客户端连接,创建了约7万个数据节点。
负载相对不高,连接数变化也不会大,目前应该不需要考虑限制连接的问题。
二.事务日志和快照策略
三.相同压力下创建成功但删除失败问题跟踪
在建立1000个连接,每个连接创建1000个znode,每个znode1024B的情况下,创建全部成功。
但是在delete操作时,测试过程一致,但是会出现部分回话超时,连接被断开的问题,导致10w个节点中5w个无法删除的问题。
所以,我从集群状况,磁盘IO,cpu,jvmGC等几个方面逐步分析。
集群延迟
通过四字命令mntr可以看到集群三节点上,create时延迟大概在2-3s左右。
而delete时follower节点在70s左右,而leader节点出现了100+s的延时。
怪不得客户端会超时。
查看客户端日志,INFO [Thread-964-SendThread(172.28.20.101:
2181):
zookeeper.ClientCnxn$SendThread@1083]-Clientsessiontimedout,havenotheardfromserverin26666msforsessionid0x352a619b371196d,closingsocketconnectionandattemptingreconnect
可以看出是服务端延迟导致的连接关闭。
下面要探究delete操作为何会出现如此高的延时。
首先想到的是磁盘IO瓶颈。
磁盘IO
之前在做读写测试时,遇到了磁盘IO的瓶颈,所以首先想到的是create和delete由于操作的不同,可能导致磁盘IO压力差别。
通过iostat或者zabbix来记录不同操作间的磁盘IO。
create105s写入磁盘增加7G 延迟3.9s
红色磁盘写,蓝绿代表网络OUT和IN。
Delete114s3.3G延迟76-117s,由于较大延迟,很多回话超时。
通过对比,发现删除过程并没有磁盘瓶颈。
所以怀疑GC可能导致了线程阻塞。
将GC日志打印出来进行对比。
JVMGC
JVMMaxHeapSize设置为2G,
通过打印gc日志,获取create时gc日志截取。
2016-02-04T13:
46:
31.614+0800:
79240.306:
[GC[PSYoungGen:
112032K->6817K(119808K)]367030K->265296K(2085888K),0.0286750secs][Times:
user=0.04sys=0.00,real=0.02secs]
2016-02-04T13:
46:
32.246+0800:
79240.938:
[GC[PSYoungGen:
114849K->5216K(119296K)]373328K->269368K(2085376K),0.0256210secs][Times:
user=0.05sys=0.00,real=0.02secs]
2016-02-04T13:
46:
32.895+0800:
79241.587:
[GC[PSYoungGen:
113248K->4864K(120320K)]377400K->272336K(2086400K),0.0284400secs][Times:
user=0.05sys=0.00,real=0.02secs]
2016-02-04T13:
46:
33.435+0800:
79242.128:
[GC[PSYoungGen:
114432K->4640K(120320K)]381904K->275552K(2086400K),0.0237400secs][Times:
user=0.05sys=0.00,real=0.02secs]
2016-02-04T13:
46:
33.947+0800:
79242.640:
[GC[PSYoungGen:
114208K->6080K(120832K)]385120K->280544K(2086912K),0.0445500secs][Times:
user=0.05sys=0.00,real=0.04secs]
2016-02-04T13:
46:
34.593+0800:
79243.285:
[GC[PSYoungGen:
116160K->4928K(120320K)]390624K->282888K(2086400K),0.0357750secs][Times:
user=0.05sys=0.00,real=0.04secs]
2016-02-04T13:
46:
35.132+0800:
79243.825:
[GC[PSYoungGen:
115008K->4992K(121344K)]392968K->286752K(2087424K),0.0291100secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
35.620+0800:
79244.313:
[GC[PSYoungGen:
116608K->5632K(121344K)]398368K->291280K(2087424K),0.0712610secs][Times:
user=0.07sys=0.00,real=0.07secs]
2016-02-04T13:
46:
36.111+0800:
79244.803:
[GC[PSYoungGen:
117248K->8192K(120832K)]402896K->297680K(2086912K),0.0413980secs][Times:
user=0.06sys=0.00,real=0.04secs]
2016-02-04T13:
46:
36.643+0800:
79245.335:
[GC[PSYoungGen:
119808K->5248K(121344K)]409296K->298424K(2087424K),0.0414960secs][Times:
user=0.06sys=0.00,real=0.05secs]
2016-02-04T13:
46:
37.141+0800:
79245.833:
[GC[PSYoungGen:
116864K->6752K(121344K)]410040K->304128K(2087424K),0.0479870secs][Times:
user=0.06sys=0.00,real=0.05secs]
2016-02-04T13:
46:
37.763+0800:
79246.456:
[GC[PSYoungGen:
118368K->5120K(121344K)]415744K->306296K(2087424K),0.0455030secs][Times:
user=0.06sys=0.00,real=0.05secs]
2016-02-04T13:
46:
38.157+0800:
79246.850:
[GC[PSYoungGen:
116736K->4960K(121856K)]417912K->310128K(2087936K),0.0277640secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
38.672+0800:
79247.364:
[GC[PSYoungGen:
117600K->7787K(120832K)]422768K->316844K(2086912K),0.0275650secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
39.366+0800:
79248.058:
[GC[PSYoungGen:
120427K->4512K(121344K)]429484K->320252K(2087424K),0.0298390secs][Times:
user=0.06sys=0.00,real=0.03secs]
2016-02-04T13:
46:
40.083+0800:
79248.775:
[GC[PSYoungGen:
116128K->5472K(121344K)]431868K->324668K(2087424K),0.0355870secs][Times:
user=0.05sys=0.00,real=0.04secs]
2016-02-04T13:
46:
40.841+0800:
79249.533:
[GC[PSYoungGen:
117088K->4672K(121856K)]436284K->327188K(2087936K),0.0321530secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
41.530+0800:
79250.222:
[GC[PSYoungGen:
117312K->4576K(121856K)]439828K->330588K(2087936K),0.0312960secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
42.090+0800:
79250.782:
[GC[PSYoungGen:
117216K->5088K(122368K)]443228K->334564K(2088448K),0.0698520secs][Times:
user=0.07sys=0.00,real=0.07secs]
2016-02-04T13:
46:
42.771+0800:
79251.463:
[GC[PSYoungGen:
118240K->5056K(121856K)]447716K->338140K(2087936K),0.0469540secs][Times:
user=0.06sys=0.00,real=0.05secs]
2016-02-04T13:
46:
43.388+0800:
79252.080:
[GC[PSYoungGen:
118208K->7923K(121344K)]451292K->344927K(2087424K),0.0277740secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
43.968+0800:
79252.661:
[GC[PSYoungGen:
120563K->6400K(121856K)]458141K->350869K(2087936K),0.0310830secs][Times:
user=0.06sys=0.00,real=0.03secs]
2016-02-04T13:
46:
44.586+0800:
79253.278:
[GC[PSYoungGen:
119040K->5760K(122368K)]463512K->353768K(2088448K),0.0290280secs][Times:
user=0.06sys=0.00,real=0.03secs]
2016-02-04T13:
46:
46.055+0800:
79254.747:
[GC[PSYoungGen:
118912K->5376K(121856K)]466920K->357152K(2087936K),0.0462040secs][Times:
user=0.06sys=0.00,real=0.05secs]
2016-02-04T13:
46:
46.647+0800:
79255.339:
[GC[PSYoungGen:
118528K->5760K(122880K)]470304K->360008K(2088960K),0.0276510secs][Times:
user=0.06sys=0.00,real=0.02secs]
2016-02-04T13:
46:
47.459+0800:
79256.151:
[GC[PSYoungGen:
119936K->8169K(122368K)]474184K->367729K(2088448K),0.0295130secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
48.201+0800:
79256.893:
[GC[PSYoungGen:
122345K->5152K(118272K)]481905K->371113K(2084352K),0.0307940secs][Times:
user=0.06sys=0.00,real=0.03secs]
2016-02-04T13:
46:
48.916+0800:
79257.608:
[GC[PSYoungGen:
114720K->4736K(120320K)]480681K->374281K(2086400K),0.0307920secs][Times:
user=0.06sys=0.00,real=0.04secs]
2016-02-04T13:
46:
49.618+0800:
79258.310:
[GC[PSYoungGen:
114304K->4416K(120320K)]483849K->377129K(2086400K),0.0533660secs][Times:
user=0.06sys=0.00,real=0.05secs]
2016-02-04T13:
46:
50.431+0800:
79259.124:
[GC[PSYoungGen:
113984K->5088K(120320K)]486697K->381089K(2086400K),0.0264330secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
51.880+0800:
79260.572:
[GC[PSYoungGen:
114656K->9600K(118784K)]490659K->388747K(2084864K),0.0322610secs][Times:
user=0.06sys=0.00,real=0.03secs]
2016-02-04T13:
46:
52.394+0800:
79261.086:
[GC[PSYoungGen:
118144K->3648K(119808K)]497291K->385911K(2085888K),0.0259280secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
53.115+0800:
79261.807:
[GC[PSYoungGen:
112192K->4096K(119808K)]494455K->389399K(2085888K),0.0250070secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
53.803+0800:
79262.495:
[GC[PSYoungGen:
112640K->7321K(119808K)]497943K->395993K(2085888K),0.0263660secs][Times:
user=0.05sys=0.00,real=0.03secs]
2016-02-04T13:
46:
54.524+0800:
79263.216:
[GC[PSYoungGen:
115865K->3904K(120320K)]504537K->399289K(2086400K),0.0591120secs][Times:
user=0.06sys=0.00,real=0.06secs]
2016-02-04T13:
46:
55.323+0800:
79264.015:
[GC[PSYoungGen:
112960K->3648K(119808K)]508345K->401889K(2085888K),0.0366270secs][Times:
user=0.05sys=0.00,real=0.04secs]
delete时gc日志截取
2016-02-04T13:
56:
20.954+0800:
79829.646:
[GC[PSYoungGen:
109120K->1888K(119808K)]511382K->404678K(2085888K),0.0382200secs][Times:
user=0.04sys=0.00,real=0.03secs]
2016-02-04T13:
56:
21.353+0800:
79830.046:
[GC[PSYoungGen:
110432K->3872K(119808K)]513222K->408142K(2085888K),0.0282380secs][Times:
user=0.05sys=0.00,real=0.02secs]
2016-02-04T13:
56:
21.756+0800:
79830.448:
[GC[PSYoungGen:
112416K->1376K(120832K)]516686K->405654K(2086912K),0.0278400secs][Times:
user=0.04sys=0.01,real=0.03secs]
2016-02-04T13:
56:
22.080+0800:
79830.773:
[GC[PSYoungGen:
111456K->3424K(120320K)]515734K->407710K(2086400K),0.0307060secs][Times:
user=0.05sys=0.01,real=0.03secs]
2016-02-04T13:
56:
22.545+0800:
79831.238:
[GC[PSYoungGen:
113504K->9696K(117248K)]517790K->414478K(2083328K),0.0314430secs][Times:
user=0.04sys=0.01,real=0.03secs]
2016-02-04T13:
56:
23.035+0800:
79831.727:
[GC[PSYoungGen:
117216K->11776K(11929
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Zookeeper 压力 测试