goguelike 성능 테스트
By SeukWon Kang
지난주 이번주 동안 기본적인 서버/클라이언트의 안정화가 이루어져서 성능테스트를 해가면서 튜닝을 하고 있는 중입니다.
방금 끝낸 테스트를 기록차원에서 적어보면 사용 기계 cpu i2500 ( 4c4t ) , ram 16Gbyte에서 서버는 각 클라이언트당 5패킷 / 초 모드로 작동중이고 5000 클라이언트 시뮬레이터를 다른 기계에서 실행한 결과 입니다.
goguelike 13:41:44 server.go:169: tower test1 frame total:3801/ 4.0/s lap:5/ 4.8/s, gotoutine 5025 goguelike 13:41:44 server.go:173: floor0 AO(72/2232) PO(42/561) Packet(0/1157) goguelike 13:41:44 server.go:173: floor1 AO(69/2401) PO(42/630) Packet(5/2024) goguelike 13:41:44 server.go:173: floor2 AO(85/2617) PO(52/649) Packet(133/3078) goguelike 13:41:44 server.go:173: floor3 AO(96/2800) PO(54/635) Packet(519/4001) goguelike 13:41:44 server.go:173: floor4 AO(97/2837) PO(61/602) Packet(451/4175) goguelike 13:41:44 server.go:173: floor5 AO(92/2745) PO(51/641) Packet(413/3730) goguelike 13:41:44 server.go:173: floor6 AO(80/2543) PO(46/603) Packet(301/2722) goguelike 13:41:44 server.go:173: floor7 AO(76/2346) PO(43/571) Packet(224/1721) goguelike 13:41:44 server.go:173: floor8 AO(59/2237) PO(45/572) Packet(0/1179) goguelike 13:41:44 server.go:173: floor9 AO(62/2105) PO(42/560) Packet(0/529) goguelike 13:41:44 server.go:173: floor10 AO(67/2067) PO(48/561) Packet(0/335) goguelike 13:41:44 server.go:173: floor11 AO(46/2038) PO(36/563) Packet(0/186) goguelike 13:41:44 server.go:173: floor12 AO(46/2020) PO(33/449) Packet(0/100) goguelike 13:41:44 server.go:173: floor13 AO(42/2006) PO(31/515) Packet(0/30) goguelike 13:41:44 server.go:173: floor14 AO(36/2002) PO(37/431) Packet(0/10) goguelike 13:41:44 server.go:173: floor15 AO(39/2001) PO(14/329) Packet(0/5) goguelike 13:41:44 server.go:173: floor16 AO(44/2001) PO(19/311) Packet(0/9) goguelike 13:41:44 server.go:173: floor17 AO(44/2002) PO(6/172) Packet(0/6) goguelike 13:41:44 server.go:178: AO(1152/41000) PO(702/9355) Packet(2046/24997)
설명하면 test1 타워에 0~17까지 18개의 플로어가 있고 각 플로어에는 클라이언트가 접속되어 있습니다. 각 플로어에는 서버가 컨트롤하는 서버AI가 2000개씩 존재하고 여기에 추가로 클라이언트가 있게 됩니다. 이것 (서버 AI + 클라이언트 )를 AO(active object) 라고 부릅니다.
PO( passive object )는 AO가 사용하는 장비/아이템 입니다. AO가 장착하거나 플로어에 떨어져 있을수 있습니다.
요약하면 5000 동접을 처리하고 있는 상황에서 초당 패킷 처리량은 24997 , 서버가 동작시키고 있는 AI는 41000개 입니다. 이중 1152 AO가 전투로 사망했습니다. 그리고 AO가 사용하고 있지않아서 땅에 떨어져 있는 PO 는 9355개이며 이중 702가 시간이 지나 자동으로 사라졌습니다.