1. 程式人生 > >zookeeper節點數太多導致的服務癱瘓

zookeeper節點數太多導致的服務癱瘓

zookeeper客戶端連不上伺服器,檢視服務端日誌 檔案zookeeper.out(目錄見 /usr/local/zookeeper/conf/zoo.cfg中的dataLogDir配置項)如下:

2016-02-16 11:17:44,503 [myid:2] - WARN  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:[email protected]] - Exception when following the leader

java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
        at java.io.DataInputStream.readInt(DataInputStream.java:370)
        at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63)
        at org.apache.zookeeper.server.quorum.QuorumPacket.deserialize(QuorumPacket.java:83)
        at org.apache.jute.BinaryInputArchive.readRecord(BinaryInputArchive.java:108)
        at org.apache.zookeeper.server.quorum.Learner.readPacket(Learner.java:152)
        at org.apache.zookeeper.server.quorum.Learner.registerWithLeader(Learner.java:272)
        at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:72)
        at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:740)
2016-02-16 11:17:44,503 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:
[email protected]
] - shutdown called
java.lang.Exception: shutdown Follower
        at org.apache.zookeeper.server.quorum.Follower.shutdown(Follower.java:166)
        at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:744)
2016-02-16 11:17:44,504 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:
[email protected]
] - Shutting down
2016-02-16 11:17:44,504 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:[email protected]] - shutting down
2016-02-16 11:17:44,504 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:[email protected]] - LOOKING
2016-02-16 11:17:44,507 [myid:2] - INFO  [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:
[email protected]
] - Reading snapshot /web/applog/zookeeper/data/version-2/snapshot.119f00000001
2016-02-16 11:17:46,752 [myid:2] - INFO  [WorkerReceiver[myid=2]:[email protected]] - Notification: 4 (n.leader), 0x119f00000001 (n.zxid), 0x139b (n.round), LOOKING (n.state), 4 (n.sid), 0x14bf (n.peerEPoch), LOOKING (my state)
2016-02-16 11:17:52,916 [myid:2] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Accepted socket connection from /10.21.34.240:49942
2016-02-16 11:17:52,916 [myid:2] - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Exception causing close of session 0x0 due to java.io.IOException: ZooKeeperServer not running
2016-02-16 11:17:52,916 [myid:2] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Closed socket connection for client /10.21.34.240:49942 (no session established for client)
2016-02-16 11:17:52,920 [myid:2] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Accepted socket connection from /10.21.33.25:21546

2016-02-16 11:17:52,920 [myid:2] - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:[email protected]] - Exception causing close of session 0x0 due to java.io.IOException: ZooKeeperServer not running

起初以為是防火牆或者其它網路問題,搜尋引擎上沒找到有過類似經驗的貼子(這也是為什麼我寫下來的原因),對zookeeper不熟,無奈只能自己研究配置項的含義,發現它提到幾個超時項可能與上述異常有關

# The number of ticks that the initial 
# synchronization phase can take
initLimit=10

# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5

登入和同步超時時間,當資料量比較大時,這個值要相應增大,不然會超時,故我將這兩項調大(10倍),重啟所有server,果然不再報錯,客戶端連上了

再核實此推斷,發現確實有一個節點的子節點數量很大:

[zk: localhost:2181(CONNECTED) 2] stat /scheduler/trigger/formatnotify/_SCND
cZxid = 0x8023698c2
ctime = Thu Jul 30 17:19:11 CST 2015
mZxid = 0x8023698c2
mtime = Thu Jul 30 17:19:11 CST 2015
pZxid = 0xd01406c09
cversion = 2216863
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2216675

2百多萬,所以使用zookeeper一定要注意做好清理工作,否則做一個協調指揮者,一個小小的失誤,將導致整個生產系統癱瘓!

相關推薦

zookeeper節點導致服務癱瘓

zookeeper客戶端連不上伺服器,檢視服務端日誌 檔案zookeeper.out(目錄見 /usr/local/zookeeper/conf/zoo.cfg中的dataLogDir配置項)如下: 2016-02-16 11:17:44,503 [myid:2] - W

openstack中據庫連接

ons per 連接數 read .cn too error: 運行 connect openstack運行過程中出現如下問題: OperationalError: (pymysql.err.OperationalError) (1040, u‘Too many conn

Mysql連接不夠(報錯連接

max_connectionsMysql連接數不夠(報錯連接數太多): 查看當前連接數: netstat -anp | grep 3306 | wc -l 查看mysql配置的最大連接數(默認為151): show variables like ‘max_connections‘; 修改連接數(建議設為6

的一種簡化方法

work 職責 targe hub git img png 原則 函數參數 我們假設一下,我們有一個方法,擁有多達 20 多個參數,如: 這種情況下,我們可以想象到後續維護時候的痛苦,尤其是,需要增加或者刪除參數的時候。 今天看 Redis 的 Queue 源代碼的時

jquery-easyui元件combobox模糊查詢在IE中資料導致瀏覽器崩潰

       由於combobox模糊查詢是吧原來的所有下拉的選項首先全部隱藏,然後再根據使用者輸入的值來判斷,如果正確,則顯示出來,本人測試1000條資料的時候在火狐裡並沒有問題,可是在IE8卻導致瀏覽器十分緩慢,經常導致瀏覽器奔潰。由於

label文字導致與控制元件換行的問題

用bootstrap時,使用label為input元素顯示文字時,如果label的文字太多的話,會導致input的元素和文字不在同一行。 先看看最開始的程式碼: <input type="radio" name="sex" id="male" /> <label for=

34 mybatis-spring Mapper導致 StackOverflow

前言 前幾天 專案上有這樣的一個問題, 記憶體給的2G, 專案似乎是啟動不起來, 然後 之後調整為 4G 專案就啟動起來了  然後 這個問題, 我們最開始都沒有太在意, 認為可能 初始化專案需要的記憶體稍微需要大一些吧 ?  然後 上週五, 和測試同事釋出專案的時候

解決Scrapy效能問題——案例四(響應導致溢位)

症狀:下載器幾乎是在滿負荷工作,然後過一會就關閉了。然後一直重複這樣,而scaper佔用的記憶體很多。 示例:這裡我們和之前的設定是一樣的(也使用了treq),但是響應的大小被設定成了120kb的HTML。正如你所看到的,它一共花費了31s而不是20s:

mysql---連線 (1040 too many connection),調大連線

貴州專案mysql資料庫連線太多---1040 too many connection 計劃調一下最大連線數。 方法1:(命令修改) 1)登入mysql:mysql -u root -p  輸入密碼,回車 執行以下語句修改最大連線數:set global max_conn

解決Scrapy效能問題——案例五(Item併發導致溢位)

症狀:爬蟲對於每個Response都產生了多個Item,系統的吞吐量比期望的要低,並且可能會出現和前一個案例相同的下載器開/關現象。 示例:這裡我們假設有1000個請求,每個返回的頁面有100個Ite

table表格某一td內容導致樣式混亂的解決方案

問題在開發過程難免遇到這樣那樣的問題。對於有很多條目的資料,我們通常採用table元素來快速實現。如果某一個td的內容太多的話就會出現下面的情況,導致樣式混亂難看: 解決方案要讓table的寬度固定我們可以給table元素設定table-layout:fixed;樣式,但這

Oracle 當前連線 TNS:Liste…

ORA-12519, TNS:no appropriate service handler found   The Connection descriptor used by the client was:   這種問題主要是在JDBC連線時出現,連線過多沒有及時關閉連線。如果是spring管理

運維繫統,發現報錯,開啟檔案控制代碼解決方案

在Linux中檢視日誌時,發現有Can’t open so many files資訊。應該是虛擬機器開啟檔案數或者sockets數太多了。 在Linux下,我們使用ulimit -n命令可以看到單個程序能夠開啟的最大檔案控制代碼數量(socket連線也算在裡面)。系統預設值

hive 動態分割槽 分割槽出錯

insert overwrite table lobehaviour_trade_daily partition (part)  select dp_id, buyer_nick, to_date(created), payment, 0 as item, if(to_da

審計日誌導致Oracle系統表空間佔滿的處理

1.檢視所有表空間資訊(包括總大小、已使用、空閒、使用百分比): select a.tablespace_name,total "Total(M)",free "Free(M)",total-free "Used(M)",round(((total-free)/total)*

牛客網“程式發生段錯誤,可能是陣列越界,堆疊溢位(比如,遞迴呼叫層)”錯誤的可能原因

晚上在牛客網練習程式設計,做了一題網易的,很簡單的題但是會提示“程式發生段錯誤,可能是陣列越界,堆疊溢位(比如,遞迴呼叫層數太多)”,想來想去也不懂為什麼,本地可以測試通過,然後既沒有陣列越界也沒有呼叫遞迴。。。後面找到了原因,有可能是陣列界定太大了,在給陣列賦值的時候系統

Docker啟動出現"No space left on device" 或者 docker日誌導致磁盤占滿問題

col null 升序 html aec ice brush 清理 doc 機房有一臺服務器上面部署了多個docker容器, 並且每個docker容器都往stderr中源源不斷的輸出日誌,導致磁盤被占滿了。Docker容器在啟動/重啟的時候會往/var/lib/dock

服務器訪問不同據庫的表的方法

通過 open onf code eight value use rom str /*跨多個服務器訪問不同的表的方法一 *先創建鏈接服務器TESTT, *在MSSQL2008下不能直接修改鏈接服務器 ‘TESTT‘ 的RPC配置成TURE,可以通過語句修改如下: */ U

關於WPF的ComboBox中Items導致加載過慢的問題

ive html ack 顯示 item 關於 ali 崩潰 color 原文:關於WPF的ComboBox中Items太多而導致加載過慢的問題 【WFP疑難】關於WPF的ComboBox中Items太

w3周日__C++裏有微妙到蛋疼的細節。比如構造函也能搞這麽幺蛾子

ons 規則 pil ron 分享 struct 蛋疼 lin 編譯 ?問題提出 主要是在VC++ 2015裏經常提示莫名其妙的編譯錯誤。 分析一下,為什麽Java裏構造函數這個問題很簡單:   1. C++裏對象類型不止有按引用傳遞,還可能拷貝傳遞。所以有時候得提供拷