0

我们正在对 couchbase 进行基准测试并观察到一个非常奇怪的行为。

设置阶段:

Couchbase 集群机器;

2 个 EC2 r3.xlarge,带有通用 80GB SSD(非 EBS 优化),IOPS 240/3000。

沙发底座设置:

集群:数据 RAM 配额:22407 MB
索引 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 工作负载/工作负载a -p recordcount=100000000 -p core_workload_insertion_retry_limit=3 -p couchbase.url= http://HOST:8091/pools -p couchbase.bucket=test -threads 20 | 三通工作负载aLoad.dat

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

结果:

虽然一切都按预期工作
平均操作/秒约为 21000
“磁盘写入队列”图在 200K - 600K(定期耗尽)之间浮动。
'temp OOM per sec' 图为常数 0。

当事情开始变得奇怪
在插入大约 27M 文档后,我们开始看到“磁盘写入队列”不断上升(没有耗尽)
在大约 8M 磁盘队列大小时,OOM 故障开始显示出来,客户端收到“临时来自沙发床的失败。
每个 YCSB 线程重试 3 次后,客户端在仅插入约 27% 的整体文档后停止。
即使 YCSB 客户端停止运行,“磁盘写入队列”也会渐近地向 0 移动,并且仅在大约 15 分钟后耗尽。

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

谢谢。

4

0 回答 0