我不是关于 Cassandra 的专家。几个月前,我接到了为社交网络应用程序建立数据库的订单。由于我从网络中引用的许多原因,我选择 Cassandra 来存储所有提要的元数据,并选择 redis 来存储列表、zset 或 id(轻量级和更改最多的数据)。我的 Cassandra 集群包括 4 个节点,复制因子设置为 2,2 个服务器中有 4 个节点(每个服务器有 2 个节点)。我配置了 cassandra.yaml 以尽可能快地调整 Cassandra 集群。在我查看系统统计信息的那一天之前,我的系统似乎还不错。这太不可思议了。让我解释一下原因:
First: I type "iostat -x 5" to view io stat. The result is as following:
avg-cpu: %user %nice %system %iowait %steal %idle
0.35 0.00 0.82 0.08 0.00 98.75
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 2.80 0.00 22.40 8.00 0.01 4.50 3.93 1.10
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
这里的 CPU 是 0.35%,虽然我们只有 4000 个活跃用户,但 IO 还不是我的问题。问题就在这里。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4689 root 20 0 13.1g 6.8g 182m S 514.6 21.8 37374:09 java 5029 root 20 0 13.0g 6.7g 174m S 1.7 21.5 10113:45 java
CPU cassandra 节点用完了这么多。甚至一个节点也可以达到 CPU 的 1400%,然后下降到 0.5%。我真的不知道为什么。谁能告诉我为什么?如果可能的话,请告诉我处理它的解决方案。提前致谢!