2016-08-18 40 views
0

在我的一張表中,大約有2000萬行(未來可能會增長更多),需要每天更新。有關特定行的定期更新會降低cassandra的性能

此前的更新過程非常流暢(吞吐量約爲100K更新/分鐘,機器上的負載平均值沒有任何增加)。但是經過一個月的定期更新,性能已經下降很多。現在,即使我試圖以低吞吐量(即大約30K rpm)進行更新,機器的平均負載也會變高,其他查詢也會受到影響。

卡桑德拉版本 - > 2.0.14

機配置 - >(RAID-1,1TB,32core,64 GB RAM),類似的4臺機器用的3

複製因子

壓實戰略給定表 - > SizeTiered

我應該嘗試擴展它什麼樣的變化?

回答

1

以下是一些建議給你:

  • 卡桑德拉喜歡的,而不是幾個大的人更小的機器。建議保持最大8GB的堆。大堆=長GC =暫停和較低的性能(這可能是你的情況,但你必須監視你的環境,檢查它是否是一個GC或CPU)。也不要在單個節點上存儲太多的數據,修復&壓縮可能需要很長時間並採取cpu。

  • 你可以嘗試調整你的卡珊德拉(見例如this guide - 可惜的是爲卡桑德拉2.1)

  • 你可以考慮也卡桑德拉昇級
  • ,如果你每天更新整個表 - 那麼這可能是一個反模式對於卡桑德拉 - 大量的更新=更長的壓縮。如果你想保持目前的設計,我會建議也有更多的節點,每個節點的數據較少,並檢查多少時間資源需要壓縮過程
+0

堆大小我只保留8GB。我會嘗試添加更多的節點和監視器。任何建議小型機器配置? –

+0

另外我檢查了卡桑德拉系統日誌的GC時間,我發現GC的ConcurrentMarkSweep需要8秒。平均而言。但它一天一次。 這可能不是我想的問題。 –