在折騰一個(gè)壓力測試的agent
為了考察賬號(hào)服務(wù)器(AS)和網(wǎng)關(guān)服務(wù)器(GS)的性能,寫了一個(gè)agent。大概思路是這樣的,agent啟動(dòng)后,就生成若干個(gè)連接,比如2000個(gè),其中1000個(gè)連接到AS,另1000個(gè)連接到GS。agent每隔一段時(shí)間,比如3s向AS請求注冊一個(gè)賬號(hào),就是把手工注冊
的模擬一遍,賬號(hào)隨機(jī)生成,agent收到注冊成功后,會(huì)把賬號(hào)寫到一個(gè)文本文檔account.txt中。在本地大概收集了2000個(gè)賬號(hào)左
右,然后重新啟動(dòng)agent,利用登錄參數(shù)模擬玩家登錄,每3秒把rand()%50個(gè)賬號(hào)發(fā)給AS,請求驗(yàn)證,由于密碼我都是設(shè)置成固
定的,直接寫在代碼里了。驗(yàn)證完之后,就去GS請求服務(wù),這些服務(wù)都很簡單,基本就是獲取玩家信息,以及附加的數(shù)據(jù)等等,
這些數(shù)據(jù)加起來估計(jì)就是在1k之內(nèi)。
說下遇到的問題,當(dāng)連接數(shù)在500之內(nèi)的時(shí)候,agent運(yùn)行正常,服務(wù)器運(yùn)行也不錯(cuò)。top -2看了下,還比較滿意。當(dāng)連接數(shù)設(shè)
置在1000的時(shí)候,也就是agent要分配2000個(gè)連接數(shù)的時(shí)候,就出問題了,跑著跑著就出現(xiàn)segment error了。掛在了
(gdb) bt
#0 0xb7c29328 in ?? () from /lib/tls/i686/cmov/libc.so.6
我開始懷疑是一次性分配的連接過多,ulimit看了下,是unlimited,奇怪了,而且中間過程,還有部分連接會(huì)自動(dòng)斷開,這里我沒
做心跳,但是我排除了因?yàn)闊o心跳而無響應(yīng)的可能,因?yàn)闀r(shí)間太短,大概有10多分鐘而已就斷開了。比較幸運(yùn)的是,服務(wù)器運(yùn)
行都很正常,資源分配也很正常。但是這個(gè)agent有點(diǎn)不給力啊,補(bǔ)充下,測試環(huán)境為局域網(wǎng)測試,可能測試結(jié)果具有片面性,
下一步再按照這個(gè)思路找問題,完善這個(gè)agent。
posted on 2011-01-12 11:18 zuhd 閱讀(1685) 評(píng)論(0) 編輯 收藏 引用 所屬分類: server

