我正在使用C# Datastax connector以及單個羣集和會話對象在cassandra中執行許多異步插入操作。我也正在使用準備好的語句並將其重用於所有操作。cassandra連接中的大內存使用
最近我注意到,運行的應用程序的幾分鐘後變得很慢,因爲它已開始在機器上使用虛擬內存,32 GB的內存。 我追蹤了內存使用情況,發現它全部被cassandra連接使用。
爲了測試我跑,直到內存爲1 GB,注意到以下幾點:
943 MB的Cassandra.Connection在Cassandra.OperationState
890 MB
802 MB的RequestExecution在RequestHandler
738 MB
我也注意到,有在ConcurrentQueue大約934 MB其根源在於Cassandra.Connection._writeQueue。
這是否意味着應用程序正在排隊寫入比節點能夠處理更快? 所有邏輯都是使用預備語句使用異步等待執行的。
不知道我該如何做不同的事情。這是cassandra的基本用法。
這是張貼在official google group。然而,看起來SO可能是一個更好的位置。我坦率地不確定。
謝謝。如果所有事情都像你想象的那樣神奇地工作,那肯定會很好,但畢竟這是真實的世界。 :( – Telavian