2 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
“等待可用主機(jī)時(shí)超時(shí)” - 這肯定是您的客戶(hù)端和數(shù)據(jù)庫(kù)之間的連接問(wèn)題。關(guān)于調(diào)試與 Neptune 的連接有很多答案,請(qǐng)嘗試一下。首先,您可以在客戶(hù)端計(jì)算機(jī)上嘗試以下操作嗎?
telnet <db-endpoint> <db-port>
您很可能會(huì)看到它正在等待建立連接,這證實(shí)了這一假設(shè)。
通常,建立與服務(wù)器的連接相當(dāng)快。您需要擔(dān)心的唯一超時(shí)是查詢(xún)超時(shí),而 Neptune 有一個(gè)參數(shù)組條目。
https://docs.aws.amazon.com/neptune/latest/userguide/parameters.html

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
我遇到了同樣的錯(cuò)誤。Neptunes 不會(huì)將錯(cuò)誤堆棧跟蹤記錄到日志中。當(dāng) cpu > 60% 用例時(shí),我的 TimeoutException 即將到來(lái)。由于與 db 建立了許多連接,cpu 會(huì)變得如此之高。
Gremlin 基于 websockets,多個(gè)請(qǐng)求可以通過(guò)同一個(gè)通道復(fù)用和使用。添加maxInProcessPerConnection
并maxSimultaneosUsagePerConnection
確實(shí)幫助我將錯(cuò)誤率降低到 0%。這些參數(shù)設(shè)置將在一個(gè)連接中多路復(fù)用的進(jìn)程數(shù)。在我的例子中,大約有 50 名工作人員同時(shí)讀/寫(xiě)。我觀察到,對(duì)于我的用例,將值設(shè)置為 32 會(huì)導(dǎo)致 CPU 使用率最低。下面是我現(xiàn)在要解決的集群屬性。
默認(rèn)情況下,如果未提及,Cluster 會(huì)保留一個(gè)最多 8 個(gè) websocket 連接的池。TimeoutException
當(dāng)maxPoolSize
設(shè)置為100時(shí),我得到了。
.addContactPoint(uri) .port(port) .serializer(Serializers.GRAPHBINARY_V1D0) .maxInProcessPerConnection(32) .maxSimultaneousUsagePerConnection(32) .maxContentLength(10000000) .maxWaitForConnection(10) .create()
添加回答
舉報(bào)