Posted on 2007-07-27 09:10
ricki 閱讀(1162)
評論(0) 編輯 收藏 所屬分類:
壓力測試
IM的服務(wù)器壓力測試今天完成了。總的來說,測試結(jié)果令人滿意。
IM服務(wù)器配置如下:
CPU:至強(qiáng)3G雙核 x 1
內(nèi)存:1G
硬盤:140G SISC硬盤
IM服務(wù)之外的其余服務(wù):
IM & 客戶端 自動(dòng)更新服務(wù)
公司網(wǎng)站web服務(wù)
公司郵件服務(wù)
測試方式:
3臺(tái)計(jì)算機(jī)并發(fā)模擬客戶登陸及聊天。登陸包括查詢與下載好友列表、好友資料、群組列表、群組資料;聊天測試方式為,每個(gè)模擬客戶端每1秒向好友列表中的一個(gè)好友發(fā)送一條文本消息。所有好友消息均為服務(wù)器轉(zhuǎn)發(fā),因?yàn)槿绻褂肞2P方式的話,一旦P2P通道建立,數(shù)據(jù)便不再經(jīng)過服務(wù)器,對IM服務(wù)器的壓力不產(chǎn)生影響,因此,便沒有測試P2P方式下的壓力數(shù)據(jù),而選擇測試服務(wù)器轉(zhuǎn)發(fā)方式下的壓力數(shù)據(jù)。
最終的測試結(jié)果為:
服務(wù)器轉(zhuǎn)發(fā)模式下,大約能同時(shí)支持3000人登陸,4865人同時(shí)聊天(服務(wù)器崩潰前最近一次讀數(shù))。
光登陸就超過2000,令人非常滿意,而且4865人同時(shí)聊天,這還是在未進(jìn)一步優(yōu)化的情況下獲得的數(shù)據(jù)。接近5000的數(shù)據(jù),令人很是高興。
最后,IM服務(wù)器的架構(gòu)簡述:
采用4IOCP。其中一個(gè)TCP IOCP用作管理員客戶端連接,以及將來的服務(wù)器聚合擴(kuò)展;一個(gè)TCP IOCP用于用戶客戶端登陸登出,以及數(shù)據(jù)補(bǔ)包;一個(gè)UDP IOCP用于心跳、P2P打洞處理、中轉(zhuǎn)聊天的文字消息(包含系統(tǒng)表情);一個(gè)UDP IOCP用于中轉(zhuǎn)聊天的非文本數(shù)據(jù)(比如圖像)。4個(gè)IOCP間的橋接及系統(tǒng)日志、管理員日志、用戶日志、插件日志均采用隊(duì)列處理。系統(tǒng)所有內(nèi)存使用均有專門的內(nèi)存管理器負(fù)責(zé)管理。至于UDP為什么也要采用IOCP,原因則是,雖然普通的UDP已經(jīng)很快了,但是,每次發(fā)送,接收仍均需要阻塞等待。雖然每次阻塞的時(shí)間很短,但積少成多,在大量連接的情況下,仍然會(huì)比較可觀。而采用IOCP,則就是為了經(jīng)量減小每次阻塞的時(shí)間。
最后,關(guān)于系統(tǒng)資源占用:
CPU:4%-9%。即使達(dá)到4865用戶同時(shí)在線聊天,CUP占用率也一直處于4%-9%
內(nèi)存:IM服務(wù)器剛剛啟動(dòng)時(shí),占用內(nèi)存7M多,當(dāng)4865用戶同時(shí)采用服務(wù)器中轉(zhuǎn)方式在線聊天時(shí),達(dá)到190M。