pika icon indicating copy to clipboard operation
pika copied to clipboard

Pika 3.3.6 存储(HASH)数据,CPU异常

Open derbyguyb opened this issue 4 years ago • 10 comments

Hello,我们进行打算升级我们的Pika从2.3.8到3.3.6,在验证中发现3.3.6在存储数据时,CPU异常,几乎在50% image 这是写入的网络流量 image

而在相同写入并发,同类型机器,pika 2.3.8版本的情况下,CPU几乎无使用 image 并且写入的网络流量比在3.3.6提高了5倍 image

derbyguyb avatar Mar 10 '21 09:03 derbyguyb

Pika 进程的线程CPU

Pika 3.3.6 image

Pika 2.3.8 image

derbyguyb avatar Mar 10 '21 10:03 derbyguyb

1我们也通过测试发现,线程池调度有些问题,存在惊群的问题。这个我们已经修复,在后续的版本中会发出。2 3.3.6 提供小规模compact的功能,会调用rocksdb bg线程做compact。参考 pika最佳实践之三十一。

kernelai avatar Mar 11 '21 03:03 kernelai

请问,预计什么时候发修复版?

derbyguyb avatar Mar 11 '21 07:03 derbyguyb

两周之后

kernelai avatar Mar 11 '21 07:03 kernelai

好的

derbyguyb avatar Mar 11 '21 07:03 derbyguyb

请问,你们新版本预计什么时候发布?

derbyguyb avatar Jun 10 '21 06:06 derbyguyb

这次我们的开发的变动较大,包含了raft一致性协议,对代码进行了大量的重构。预计7月份能发布一版 raft prerelease 版本。

kernelai avatar Jun 10 '21 06:06 kernelai

请问,raft prerelease 版本是指官方集群版吗?

chenjing7232 avatar Jun 22 '21 06:06 chenjing7232

Pika 进程的线程CPU

Pika 3.3.6 image

Pika 2.3.8 image

图中,2.3.8 在有压力写入的情况下,几乎不使用cpu,这个很异常啊。

kernelai avatar Dec 09 '21 06:12 kernelai

企业微信截图_16390364202003

这个还好啊,网络流量才 10Mbps(包含hgetall请求,hset请求和请求数据,zadd请求,和过期设置),监控显示CPU使用才1%多点

现在在2.3.8发现CPU消耗大的一种场景是hget(还没试过hmget),将hget变为hgetall(再在业务代码中过滤field),CPU将下降一半以上

derbyguyb avatar Dec 09 '21 08:12 derbyguyb

据刘振回忆,网络队列 来任务时由于使用了 condition 的 notify all 导致了惊群问题,后来改为 notify one 解决了该问题。https://github.com/Qihoo360/pink/compare/e0d42563d11d193ebc3e4bc6066636abee85938c...83f884cfeb5f5788659c316538c4f355b339bb87#diff-92f3e13615c33e923d2aae7d9b742e3b8a3d32bfa03c9e2538a59a1bf200423f

AlexStocks avatar Apr 10 '23 10:04 AlexStocks