Details
-
Task
-
Resolution: Resolved
-
Major
-
None
-
None
-
None
-
0
Description
Sync Gateway is showing a significant increase in the number of gocbcore pipeline read buffers when running with cbgt 1.3.4 vs. cbgt 1.3.2. I've isolated the memory difference to the cbgt version - we see the difference in the heap profile when switching the cbgt version, and keeping everything else constant.
The memory is associated with gocbcore initializing a memcached connection - it's the number of 20MB read buffers being initialized by gocbcore. I'm assuming this is related to how cbgt is initializing DCP agents.
I've tested with the following configuration, with cbgt 1.3.2 and 1.3.4:
- one node of Sync Gateway
- one node of Couchbase Server 7.1.2
- Sync Gateway running a cbgt gocbcore DCP feed with 16 partitions, with all partitions assigned to the single SG node
cbgt 1.3.2:
6 gocbcore read buffers (120 MB)
cbgt 1.3.4:
24 gocbcore read buffers (480 MB)
I'll attach Sync Gateway debug logs for these two tests, which includes cbgt logging. I've also included the heap profiles showing the difference in heap size.
The difference in memory is more significant when running with multiple Couchbase Server nodes, as the number of read buffers is multiplied by the number of server nodes (as seen in perf tests on CBG-3283).
Do you know of any changes between these cbgt versions that could account for this difference?
Attachments
Issue Links
- blocks
-
CBG-3283 SGW 3.1.1 using 50-75% more memory compared to 3.1.0
- Resolved