我在java nio軟件包中有一個聊天應用程序。我想測試服務器的容量。我運行我的服務器應用程序,客戶端程序正在運行一個批處理文件。所以我可以運行任何數量的客戶端。當268客戶端應用程序運行時,RAM停止進程。 Ram沒有足夠的內存來執行下一個客戶端。測試大約20k客戶端與服務器的連接
當Ram滿了時,處理器是否有使用硬盤存儲器的方法?不是Java堆空間
我使用的是Windows 7 32教授位,4 GP RAM,i5處理器
我在java nio軟件包中有一個聊天應用程序。我想測試服務器的容量。我運行我的服務器應用程序,客戶端程序正在運行一個批處理文件。所以我可以運行任何數量的客戶端。當268客戶端應用程序運行時,RAM停止進程。 Ram沒有足夠的內存來執行下一個客戶端。測試大約20k客戶端與服務器的連接
當Ram滿了時,處理器是否有使用硬盤存儲器的方法?不是Java堆空間
我使用的是Windows 7 32教授位,4 GP RAM,i5處理器
我最近嘗試了更謙卑實驗,2000 MySQL的螺紋客戶。
我恐怕你會碰到一些牆壁。
首先,你將有一個java 2GB堆大小限制。你應該考慮去一個64位的JVM。請參閱Maximum Java heap size of a 32-bit JVM on a 64-bit OS
然後,Windows 7 32位不處理超過3.12GB的RAM。你應該考慮一個64位操作系統
此外,操作系統不會讓你首先打開20k插座。檢查註冊表中的MaxUserPort。
如果你通過所有這些,可能是時候考慮CPU分配,在2k線程和你的i5下,這應該不成問題。但我不知道20k ...
對於你的負載測試,你應該分開服務器和客戶端。
運行服務器,並只在您的機器上運行。使用其他計算機運行客戶端。
這將避免你這種問題,並會更現實。你永遠不會有20K的客戶端和一臺服務器運行相同的機器:)
你也將能夠監視服務器的性能,而不會有客戶端干擾您的計算機,因爲您的資源將專用於您的服務器。
順便說一下,在w7中,有turboram,允許你插入一個USB適配器,以擴展您的計算機的RAM。這可以幫助你。
M.
爲什麼您需要支持20k連接? – casablanca 2012-07-24 05:56:10
@casablanca我想創建一個支持至少20k客戶端的服務器。 (至少20k客戶端可以一次通信)所以我想測試我的服務器。 – Amith 2012-07-24 06:19:23
我的問題是爲什麼你要這樣做 - 爲什麼所有的20k客戶端需要與單個服務器通信?一組服務器會更實用。 – casablanca 2012-07-24 06:35:37