Memory usage over time, can be caused by a whole range of activities. Something as simple as adding more documents into your cluster over time will add additional memory requirements. Other things to look for include checking the resources used by the built-in stats collection and any looking for issues with memory fragmentation. Couchbase has used the open source JEMalloc dynamic memory allocator since version 4.0 to manage memory usage, if your system is having issues with JEMalloc it may not be freeing memory correctly. If you are using an older version, I would suggest using a later release.
Memory usage is controlled by setting quotas in Couchbase Server. There’s a Server Quota and a per bucket Quota that can be configured for the data service, and individual quotas for other services deployed.
Running on BSD is something we rarely see as you’d need to make your own custom build. Given we do not build or test this platform, if possible I’d suggest using a pre-built package on another platform such as Linux, just in case this issue you are seeing is being caused by something in your build or environment.
Ian McCloy (Principal Product Manager, Couchbase)