Capacity

Cassandra:容量規劃

  • November 22, 2011

我正在研究將一些大型數據庫從 MySQL 移動到 Cassandra,並且我試圖弄清楚如何規劃集群。從歷史上看,人們只會購買包含相關數據的磁碟,但我不清楚 Cassandra 如何使用磁碟空間與 RAM 空間。

在規劃集群時,會出現每台機器有多少機器、多少磁碟、RAM 等問題。對於 1Tb,我該如何回答?10TB?更多的?

基本上,每個節點的磁碟公式是 D x RF / N x O / C,變數定義如下:

  • D 是您的整體數據大小。
  • RF 是您的複制因子。大多數集群至少使用 2 個(用於持久性)或 3 個(用於在 CL=Quorum 時組合持久性和可用性)。
  • N 是集群中的節點數。這必須至少是射頻。您還需要增加此數字,直到獲得舒適的“每個節點的磁碟”結果。
  • O 是磁碟上索引和未合併 sstables 的成本乘數。除非您幾乎沒有索引和極其穩定的數據,否則我會在這里至少使用 O=2 因子。
  • C 是您使用 Cassandra 1.0+ 壓縮支持節省的因素,假設您啟用它。這大約是您通過 gzip 壓縮具有代表性內容的文件所節省的費用。如果禁用壓縮,則使用 C=1。如果壓縮傾向於將數據大小減半,請嘗試 C=0.6 左右,因為壓縮不會用於所有內容(例如,索引)。

一旦你得到了一些數字,你應該定位一個“每個節點的磁碟”,它不超過可用本地儲存的 30%,這樣你就不必立即擴大集群,這樣就可以創建快照了。

記憶體規劃更多地取決於架構的外觀,但您需要在每個節點上至少有 4GB 專用於 Cassandra。作業系統將能夠使用除此之外的任何東西來實現非常有益的磁碟記憶體。更多記憶體只有在大大超過磁碟上的實際數據量時才會變得完全無用。

引用自:https://serverfault.com/questions/299730