Couchbase的bug引起的缓存服务器CPU占用高
目前我们的非持久化缓存服务器(memcached)与持久化缓存服务器(nosql)用的都是Couchbase(前身是Membase)。
之前每次出故障时,阿里云总是拿nosql服务器说事,因为nosql服务器的CPU占用的确不正常。
上图是Linux中top命令运行的结果。问题表现为,Couchbase总是只用一个CPU核跑memcached进程(nosql中也用到了memcached),CPU几乎跑满,而nosql服务器实际有4个核。1个核累得要死,而其他3个核闲得蛋疼,这的确是不正常的情况,会造成有些情况下读取缓存速度慢。阿里云对它的怀疑有一定的道理。
后来,我们通过日志记录了nosql服务器的读取数据耗时,得到的数据是超过400ms的nosql读取1天发生100多次,相对于每天超过100万的读取次数,这个问题影响不大。
但是,阿里云还是每次拿它说事,我们都厌烦了。今天又提到了,我们实在受不了了,怎么办?只有找出问题的真正原因,才能摆脱它。
对于Couchbase CPU占用高的问题,我们在4月份研究过,当时用的是Couchbase 2.0。我们在Couchbase官方论坛的一篇帖子(High cpu usage in memcached process (couchbase 2.0))中知道了Couchbase 2.0存在CPU占用高的bug,但在Couchbase 2.0.1中已经修复了。于是,我们将Couchbase升级到了2.0.1,以为问题解决了。后来发现还是会出现CPU占用高的情况,以为是其他原因引起的。
今天,我们在Couchbase官方论坛(High cpu memcached process)中找到答案(6楼的回答):
The fix caused a performance regression and was backed out at the last minute. At the time I made that comment the fix was in the 2.0.1 branch. We are fixing it for 2.0.2 though. I apologize for the misleading comment.
原来是Couchbase给大家开了一个玩笑,这个bug在2.0.1中并没有被修复,要等到2.0.2。
好了,终于找到了问题的真正原因(nosql服务器CPU占用高的原因,不是之前故障的原因),这下清静了,这下放心了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· autohue.js:让你的图片和背景融为一体,绝了!
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
2012-05-21 上周热点回顾(5.14-5.20)