我希望任何人都可以幫助我解決這個問題。Node.js SSL服務器凍結,高CPU,沒有崩潰但沒有連接
在我們公司,我們正在建立一個連接到Java Push服務器的node.js服務器。
我使用https模塊而不是http和SLL證書。
節點和客戶端之間的連接由socket.io在服務器和客戶端中完成。
與此同時,node.js服務器是java服務器的客戶端,此連接正在使用常規套接字(net.connect)進行。
這個想法是,用戶連接到服務器,加入一些通道,並且當一些數據從java服務器到達時,這被分派給相應的用戶。
似乎一切正常,但過了一會兒,就像隨機,有450到700個用戶一樣,服務器的CPU達到100%,所有連接都斷開,但服務器沒有崩潰。問題是,如果你去瀏覽器中的https:// ...,你沒有得到404或類似的東西,但SSL連接錯誤,並且它非常快。
我試圖在任何地方添加日誌,但沒有像模式那樣的東西,就像隨機。
如果有人有同樣的問題或可以給我一個線索,或提示更好地調試,我會感激任何東西。
非常感謝。
謝謝,這幫了我很多!雖然我有另一個問題。你寫道每個套接字創建新的虛擬文件。現在,例如,如果您有一個用戶,並且他通過套接字發送新的動作,那麼每一個動作都會創建一個新文件。當你有1000個用戶,每個人發送1個套接字,那麼你將有1000個新文件?所以更多的行動===更多的文件和最終的服務器必須達到極限。你是如何解決這個問題的?或者,也許我做錯了什麼?對於我來說,每個socket.emit動作都會創建新文件。 – Rob 2013-08-22 09:42:19
你是什麼意思的行動?,每個用戶維護一個連接,因此一個文件。但是瀏覽器中的每個標籤都會有一個新的連接。 – 2013-09-24 10:37:45
哦,我忘了在解決我的問題後刪除我的評論。我有一個錯誤 - 幾乎每個動作都與memcache建立了連接而沒有關閉它,所以服務器的控制檯告訴我每個套接字都發出動作創建新文件。在添加關閉memcache連接之後,一切都可以。 – Rob 2013-09-25 08:25:38