我不是卡桑德拉的專家。幾個月前,我得到了爲社交網絡應用程序建立數據庫的命令。由於我從網絡引用的許多原因,我選擇Cassandra將所有提要和redis的元數據存儲到商店列表,zset或id(輕量級和大部分更改的數據)。我的Cassandra集羣包括4個節點,複製因子設置爲2,2個服務器中有4個節點(每個服務器有2個節點)。我配置了cassandra.yaml以儘可能快地調整Cassandra集羣。 我的系統似乎一直很好,直到我查看系統狀態爲止。這太不可思議了。讓我來解釋爲什麼:爲什麼卡桑德拉用盡了這麼多的CPU
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節點耗盡這麼多。即使一個節點可以達到1400%的CPU,然後降低到0.5%。我真的不知道爲什麼。誰能告訴我爲什麼?如果可能的話,請告訴我解決方案。提前致謝!
您是否在使用Hadoop? – Cmag 2013-05-07 14:27:19
@John Tran你使用Oracle JDK和Ubuntu嗎? – 2013-05-08 07:13:12
是的,我在cent os 6上使用JDK 6. java版本的細節如下: java版本「1.6.0_24」 OpenJDK運行環境(IcedTea6 1.11.3)(rhel-1.48.1.11.3.el6_2-x86_64 ) OpenJDK 64位服務器虛擬機(構建20.0-b12,混合模式) – John 2013-05-08 07:22:16