We are using a single-server, single-bucket memcached couchbase server instance running on Windows Server 2012 R2 as caching solution of our system for a while. We were running CouchBase version 3.0.3 until last week without issues. Then we had some connectivity issues after installing latest Windows updates and we observed that those updates can run fine with 5.1.1 so we decided to upgrade to 5.1.1.
Before the upgrade the VM was working with stable CPU 10-20% CPU utilization. After the upgrade it started hitting 100%. As an initial workaround we increased the cores of the VM from 4 to 8 which granted some margin of free CPU but still it was around 70-80%.
We are observing the CPU usage on that machine for almost a week and CPU usage never ever gets below 50-60%, sometimes hitting 90%. Below is the PRTG graph that shows CPU usage for the last 30 days. You can clearly see how it peaked after upgrade and settled down a bit after increasing cores.
There is no change in the load before and after deployment. We are using CouchBase as 2nd level cache solution and we examined the immediate peak in CPU usage just after updating it to 5.1.1
We do not have specific services like XDCR, full text search nodes, GSI indexes etc. It is just a single memcache bucket.
I don’t believe I’ve seen anyone report this increase in resource usage between 3.0.3 & 5.1.1 on Windows; certainly most users are not using memcache-type buckets exclusively. It’s possible there’s some resource usage regression between those versions in your specific configuration.
Would you be able to get a per-thread CPU breakdown using Perfmon or similar, so we can see which thread(s) are busy?
BTW, due to complaints from our clients, we reverted CouchBase to version 3.1.3 and CPU usage went down back to 10-20%. But of course it is not the final solution. We still need to identify how to run the latest version with acceptable performance.