調(diào)整本機(jī)可發(fā)起的TCP連接和可接受的TCP連接的方法:
適用的操作系統(tǒng):
Microsoft Windows NT Workstation versions 3.5, 3.51, 4.0
Microsoft Windows NT Server versions 3.5, 3.51, 4.0
Microsoft Windows 2000 Professional
Microsoft Windows 2000 Server
Microsoft Windows 2000 Advanced Server
方法:
修改(添加)注冊(cè)表,并重新啟動(dòng)系統(tǒng):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下面:
TcpNumConnections
Key: Tcpip\Parameters
取值類型:REG_DWORD - Number
取值范圍:0 - 0xfffffe
缺省值:0xfffffe
描述:本參數(shù)限制可以同時(shí)打開的TCP連接的數(shù)量
MaxUserPort
key: Tcpip\Parameters
取值類型:REG_DWORD - Number
取值范圍:5000-65534 (十進(jìn)制)
缺省值:0x1388 (5000 十進(jìn)制)
描述:控制一個(gè)應(yīng)用程序可以打開的最多端口數(shù)量。通常,短命的端口在1024-5000之間分配。
當(dāng)試圖發(fā)起5000以上端口的連接,系統(tǒng)將出現(xiàn)WSAENOBUFS(10055)錯(cuò)誤:因?yàn)殛?duì)列滿或者系統(tǒng)
缺乏足夠的緩沖空間。
下面是我的IOCP TCP服務(wù)器單機(jī)測(cè)試結(jié)果:
15:201 | | | | | | TIOCPServerCore.Dump Begin==================================>
15:201 | | | | | | Socket線程數(shù)量=2
15:201 | | | | | | 緩沖區(qū)尺寸=4096
15:211 | | | | | | 空閑緩沖區(qū)數(shù)量=3
15:211 | | | | | | 使用緩沖區(qū)數(shù)量=16275
15:211 | | | | | | 最大空閑緩沖區(qū)數(shù)量=500
15:221 | | | | | | 空閑Socket數(shù)量=0
15:231 | | | | | | 使用Socket數(shù)量=16274
15:231 | | | | | | 最大空閑Socket數(shù)量=500
15:241 | | | | | | 業(yè)務(wù)處理線程數(shù)量=1
15:241 | | | | | | 最大空閑業(yè)務(wù)處理線程數(shù)量=2
CPU占用率很低,內(nèi)存占用10M左右
本機(jī)發(fā)起和接受的TCP連接數(shù)是16274,好像是最大的可發(fā)起連接數(shù)了,如果有
別的機(jī)器可能可以更多,Microsoft資料說可以接收200000個(gè)連接
服務(wù)器反應(yīng)迅速
請(qǐng)說明您的tcp服務(wù)器使用的是什么io模型,我說的是socket I/O 模型!
一下是各種io模型的大概性能比較。
I/O 模型 嘗試數(shù)/連接成功數(shù)
block: 7000/1008
noBlock: 7000/4011
WSAAsyncSelect: 7000/1956
WSAEventSelect: 7000/6999
Overlapped: 7000/5558
completion port: 7000/7000, 50000/49997
posted on 2007-08-17 10:50
聶文龍 閱讀(887)
評(píng)論(1) 編輯 收藏 引用