zookeeper調優(遇到就添加)

1.將集羣中的leader設置不接受客戶端鏈接,讓它專一於集羣的通訊、選舉等操做算法

    設置方式:服務器

    在zoo.cfg中增長網絡

        leaderServes=nosession

2.在大型的生產系統中,zookeeper機器會不少,由於選舉的過半原則,致使每一次選舉都須要大量的網絡通訊,若是併發高,請求多,那麼性能會下降不少,爲此zookeeper添加了觀察者observer,它不參與選舉,可是能夠接受客戶端的鏈接。併發

    由於觀察者不參與選舉,所以觀察者掛了的話,並不會影響整個集羣的正常運行。性能

    配置觀察者方式:大數據

  • 在觀察者機器上的zoo.cfg中添加peerType=observer
  • 在集羣每臺機器的zoo.cfg中對應觀察者機器的server.x=192.168.123.102:2888:2888後面添加":observer"

    重啓全部機器spa

    登陸觀察者機器,執行./zkServer.sh status能夠看到mode:observer字樣,其餘是follower或者leader.net

 

 

附:zookeeper的配置說明日誌

參數名

說明

clientPort

客戶端鏈接server的端口,即對外服務端口,通常設置爲2181吧。

dataDir

存儲快照文件snapshot的目錄。默認狀況下,事務日誌也會存儲在這裏。

ZK會在特定條件下會觸發一次快照(snapshot),將當前服務節點的狀態以快照文件的形式dump到磁盤上去,即snapshot文件。此外,每生成一次快照文件,就會生成一個對應的事務日誌文件

快照數據文件名爲:snapshot.x,而事務日誌文件對應爲:log.x+1。

其中,x是生成快照時的Zxid。
 

dataLogDir

事務日誌輸出目錄。

正常運行過程當中,針對全部事務操做,在返回客戶端「事務成功」的響應前,ZK會確保已經將本次事務操做的事務日誌寫到磁盤上,只有這樣,事務纔會生效。
 

tickTime

ZK中的一個時間單元。ZK中全部時間都是以這個時間單元爲基礎,進行整數倍配置的。例如,session的最小超時時間是2*tickTime。

initLimit

Follower在啓動過程當中,會從Leader同步全部最新數據,而後肯定本身可以對外服務的起始狀態。Leader容許F在 initLimit 時間內完成這個工做。一般狀況下,咱們不用太在乎這個參數的設置。若是ZK集羣的數據量確實很大了,F在啓動的時候,從Leader上同步數據的時間也會相應變長,所以在這種狀況下,有必要適當調大這個參數了。
默認是:10*ticktime

syncLimit

在運行過程當中,Leader負責與ZK集羣中全部機器進行通訊,例如經過一些心跳檢測機制,來檢測機器的存活狀態。若是L發出心跳包在syncLimit以後,尚未從F那裏收到響應,那麼就認爲這個F已經不在線了。
默認是:5*ticktime

minSessionTimeout

maxSessionTimeout

Session超時時間限制,若是客戶端設置的超時時間不在這個範圍,那麼會被強制設置爲最大或最小時間。默認的Session超時時間是在2 *  tickTime ~ 20 * tickTime 這個範圍 

snapCount

每進行snapCount次事務日誌輸出後,觸發一次快照(snapshot), 此時,ZK會生成一個snapshot.*文件,同時建立一個新的事務日誌文件log.*。默認是100000。這是一種狀況

此外,在產生新Leader時,也會生成新的快照文件,(同時會生成對應的事務文件)
 

autopurge.purgeInterval

3.4.0及以後版本,ZK提供了自動清理事務日誌和快照文件的功能,這個參數指定了清理頻率,單位是小時,須要配置一個1或更大的整數,默認是0,表示不開啓自動清理功能。
 

server.x=[hostname]:nnnnn[:nnnnn]

這裏的x是一個數字,與myid文件中的id是一致的。右邊能夠配置兩個端口,第一個端口用於F和L之間的數據同步和其它通訊,第二個端口用於Leader選舉過程當中投票通訊。  

 

jute.maxbuffer

每一個節點最大數據量,是默認是1M。

globalOutstandingLimit

最大請求堆積數。默認是1000。ZK運行的時候, 儘管server已經沒有空閒來處理更多的客戶端請求了,可是仍是容許客戶端將請求提交到服務器上來,以提升吞吐性能。固然,爲了防止Server內存溢出,這個請求堆積數仍是須要限制下的。  

 

preAllocSize

預先開闢磁盤空間,用於後續寫入事務日誌。默認是64M,每一個事務日誌大小就是64M。

electionAlg

默認爲3,即 fast paxos election 選舉算法。在3.4版本後,1 2對應的選舉算已棄用,因此此項配置不要更改。

leaderServes

默認狀況下,Leader是會接受客戶端鏈接,並提供正常的讀寫服務。可是,若是你想讓Leader專一於集羣中機器的協調,那麼能夠將這個參數設置爲no,這樣一來,會提升整個zk集羣性能。

相關文章
相關標籤/搜索