2017-09-26 84 views
1

我經常收到節點分段。它發生在具有約40個節點的羣集中 - 一次只發生在一個節點上。在發生一些重大的GC工作時發生了幾次。另一方面,我看到類似的重型GC工作正在進行,沒有節點被分割。我調整了故障檢測超時時間,使其大於我正在經歷的最大GC,但這並沒有幫助 - failure檢測超時幾乎是最大GC的2倍。我怎樣才能弄清楚這是真的GC還是網絡問題? 我懷疑它與網絡有關,因爲其他節點會失敗。當進程重新啓動時,它工作正常,所以我會排除網絡問題。 我在哪裏可以查看產生EVT_NODE_SEGMENTED的代碼? 我調試了IgniteConfiguration對象,看到segResolvers爲空/空,所以我不知道它發佈的事件的位置。Apache Ignite節點分段

基於S3的發現被使用,不確定它在這裏(點燃1.9)。

我想知道在哪種情況下會產生這種事件?無法連接到大多數其他節點或全部?

+1

您是否配置了其他超時?我的意思是networkTimeout,connectTimeout等。 此外,從所有節點查看您的配置和日誌將會很有幫助。 –

+0

我只配置了failureDetectionTimeout和slowClientQueueLimit。我有時會看到與socketWriteTimeout相關的警告 - 發生超時,我應該增加它。 – Bart

+0

所有其他節點日誌都包含特定節點FAILED的條目。警告oaiimdGridDiscoveryManager - 節點失敗:TcpDiscoveryNode [id = 6d74ee33-0068-4e4f-8e67-b8f2a8bca05b,addrs = [0:0:0:0:0:0: 0:1:lo,10.50.9.176,127.0.0.1],sockAddrs = [/ 0:0:0:0:0:0:0:1%lo:47500,/127.0.0.1:47500,ip-10- 50-9-176.ec2.internal/10.50.9.176:47500],discPort = 47500,order = 74,intOrder = 57,lastExchangeTime = 1506065144854,loc = false,ver = 1.9.0#20170302-sha1:a8169d0a,isClient = false]' – Bart

回答

0

此事件發生時,節點斷開連接,無法連接回,見ClientImpl.javaServerImpl.java

看看日誌在分段節點,它必須是像Node is out of topology (probably, due to short-time network problems消息,這樣你就可以找出確切的問題。

+0

Thx,現在看代碼。試想一下,如果所有其他節點都認爲這個節點「死了」,並且JVM本身還活着,那麼意味着點燃沒有對某些心跳檢查做出迴應。如果這不是網絡問題,那麼它意味着該框一定非常忙,不處理這些消息。據我瞭解失敗檢測超時是指心跳,這對我來說是相當大的 - 任何想法我應該檢查什麼? – Bart

+0

它會是'org.apache.ignite.spi.discovery.tcp.ServerImpl.RingMessageWorker.checkHeartbeatsReceiving生成TcpDiscoveryStatusCheckMessage',這會導致節點感覺它被分割? – Bart