kafka生產環境規劃-kafka 商業環境實戰

kafka 線上真實環境實戰及調優進階系列

本套系列博客從真實商業環境抽取案例進行總結和分享,並給出kafka商業應用的調優建議和集羣環境容量規劃等內容,請持續關注本套博客。版權聲明:本套kafka調優系列版權歸做者(秦凱新)全部,禁止轉載,歡迎學習。java

kafka真實環境部署規劃

1. 操做系統選型

由於kafka服務端代碼是Scala語言開發的,所以屬於JVM系的大數據框架,目前部署最多的3類操做系統主要由Linux ,OS X 和Windows,可是部署在Linux數量最多,爲何呢?由於I/O模型的使用和數據網絡傳輸效率兩點。緩存

  • 第一:Kafka新版本的Clients在設計底層網絡庫時採用了Java的Select模型,而在Linux實現機制是epoll,感興趣的讀者能夠查詢一下epoll和select的區別,明確一點就是:kafka跑在Linux上效率更高,由於epoll取消了輪詢機制,換成了回調機制,當底層鏈接socket數較多時,能夠避免CPU的時間浪費。
  • 第二:網絡傳輸效率上。kafka須要經過網絡和磁盤進行數據傳輸,而大部分操做系統都是經過Java的FileChannel.transferTo方法實現,而Linux操做系統則會調用sendFile系統調用,也即零拷貝(Zero Copy 技術),避免了數據在內核地址空間和用戶程序空間進行重複拷貝。

2. 磁盤類型規劃

  • 機械磁盤(HDD) 通常機械磁盤尋道時間是毫秒級的,如有大量隨機I/O,則將會出現指數級的延遲,可是kafka是順序讀寫的,所以對於機械磁盤的性能也是不弱的,因此,基於成本問題能夠考慮。
  • 固態硬盤(SSD) 讀寫速度可觀,沒有成本問題能夠考慮。
  • JBOD (Just Bunch Of Disks ) 經濟實惠的方案,對數據安全級別不是很是很是高的狀況下能夠採用,建議用戶在Broker服務器上設置多個日誌路徑,每一個路徑掛載在不一樣磁盤上,能夠極大提高併發的日誌寫入速度。
  • RAID 磁盤陣列 常見的RAID是RAID10,或者稱爲(RAID 1+0) 這種磁盤陣列結合了磁盤鏡像和磁盤帶化技術來保護數據,由於使用了磁盤鏡像技術,使用率只有50%,注意,LinkedIn公司採用的就是RAID做爲存儲來提供服務的。那麼弊端在什麼地方呢?若是Kafka副本數量設置爲3,那麼實際上數據將存在6倍的冗餘數據,利用率實在過低。所以,LinkedIn正在計劃更改方案爲JBOD.

3. 磁盤容量規劃

咱們公司物聯網平臺天天大約可以產生一億條消息,假設副本replica設置爲2 (其實咱們設置爲3),數據留存時間爲1周,平均每條上報事件消息爲1K左右,那麼天天產生的消息總量爲:1億 乘 2 乘 1K 除以 1000 除以 1000 =200G磁盤。預留10%的磁盤空間,爲210G。一週大約爲1.5T。採用壓縮,平均壓縮比爲0.5,總體磁盤容量爲0.75T。 關聯因素主要有:安全

  • 新增消息數
  • 副本數
  • 是否啓用壓縮
  • 消息大小
  • 消息保留時間

4. 內存容量規劃

kafka對於內存的使用,並不過多依賴JVM 內存,而是更多的依賴操做系統的頁緩存,consumer若命中頁緩存,則不用消耗物理I/O操做。通常狀況下,java堆內存的使用屬於朝生夕滅的,很快會被GC,通常狀況下,不會超過6G,對於16G內存的機器,文件系統page cache 能夠達到10-14GB。服務器

  • 怎麼設計page cache,能夠設置爲單個日誌段文件大小,若日誌段爲10G,那麼頁緩存應該至少設計爲10G以上。
  • 堆內存最好不要超過6G。

5. CPU選擇規劃

kafka不屬於計算密集型系統,所以CPU核數夠多就能夠,而沒必要追求時鐘頻率,所以核數選擇最好大於8。網絡

6. 網絡帶寬決定Broker數量

帶寬主要有1Gb/s 和10 Gb/s 。咱們能夠稱爲千兆位網絡和萬兆位網絡。舉例以下: 咱們的物聯網系統一天每小時都要處理1Tb的數據,咱們選擇1Gb/b帶寬,那麼須要選擇多少機器呢?併發

  • 假設網絡帶寬kafka專用,且分配給kafka服務器70%帶寬,那麼單臺Borker帶寬就是710Mb/s,可是萬一出現突發流量問題,很容易把網卡打滿,所以在下降1/3,也即240Mb/s。由於1小時處理1TTB數據,每秒須要處理292MB,1MB=8Mb,也就是2336Mb數據,那麼一小時處理1TB數據至少須要2336/240=10臺Broker數據。冗餘設計,最終能夠定爲20臺機器。

典型推薦

  • cpu 核數 32
  • 內存 32GB
  • 磁盤 3TB 7200轉 SAS盤三塊
  • 帶寬 1Gb/s

結語

秦凱新 於深圳 2018-10-27框架

相關文章
相關標籤/搜索