我们正在测试基准测试并观察一个非常奇怪的行为 .

设置阶段:

Couchbase集群机器;

2 x EC2 r3.xlarge,通用80GB SSD(未经过EBS优化),IOPS 240/3000 .

Couchbase设置:

集群:数据Ram配额:22407 MB
Index Ram配额:2024 MB
索引设置(默认)
桶:
每节点Ram配额:22407 MB
总铲斗尺寸:44814 MB(22407 x 2)
副本已启用(1)
磁盘I / O优化(低)

每个节点都运行所有三个服务

Couchbase客户端;

1 x EC2 m4.xlarge通用20 GB SSD(EBS优化),IOPS 60/3000 .
客户端正在运行'YCSB'基准测试工具 .

ycsb load couchbase -s -P workloads / workloada -p recordcount = 100000000 -p core_workload_insertion_retry_limit = 3 -p couchbase.url = http://HOST:8091/pools -p couchbase.bucket = test -threads 20 | tee workloadaLoad.dat

PS:所有机器都驻留在同一个VPC和子网中 .

结果:

While everything works as expected
平均操作/秒为~21000
'disk write queue'图表在200K到600K之间浮动(周期性耗尽) .
'temp OOM per sec'图表处于常量0 .

When things starting to get weird
插入约~27M文件后,我们开始看到'disk write queue'正在不断上升(未被排空)
在大约8M磁盘队列大小时,OOM故障开始显示自己,客户端从couchbase接收'Temporary failure' .
在每个YCSB线程重试3次后,客户端仅在插入约27%的整个文档后停止 .
即使YCSB客户端停止运行,'disk write queue'也渐渐向0移动,仅在~15分钟后才会耗尽 .

P.S当我们在MacBook上使用16GB内存SSD磁盘(本地客户端一个节点服务器)进行本地基准测试时,我们没有观察到这种行为,并且“磁盘写入队列”会以可预测的方式不断耗尽 .

谢谢 .