Skip to content
This repository has been archived by the owner on Sep 25, 2023. It is now read-only.

Pomelo performance

Charlie Crane edited this page Oct 31, 2013 · 4 revisions

Pomelo performance test (based on LordOfPomelo)

Test environment
  1. The server test environment
  2. The client test environment
Test results
  1. Multiple roles in multiprocess fight at the same time (up to 486 characters)
  2. Multiple roles in multiprocess walk at the same time (up to 800 characters)
  3. Multiple roles in multiprocess fight/walk at the same time (up to 558 characters)

Test environment

1.1 server test environment
Service Machine Hardware configuration
GameServer
&
WebServer
pomelo3.server.163.org cloud host
1 CPU, 8 cores
CPU Type: GenuineIntel QEMU Virtual CPU version 1.1.2@2.0GHz
16G memory
1 network card
linux/64bit OS
Description:
  • Server side is developed using Node.js. Disk I/O is mainly used for the log. All game-server are configured toobusy (MAXLAG is the default 70ms). The bottlenecks is the CPU's computing power.
1.2 client test environment
Service Machine Hardware configuration
Clients pomelo16~25.server.163.org cloud host
1 CPU, 1 core
CPU Type: GenuineIntel Westmere E56xx/L56xx/X56xx (Nehalem-C)@2.6GHz
1G memory
1 network card
linux/64bit OS
Description:
  • The clients are all within intranet.

Test results

1. Multiple roles in multiprocess fight at the same time (up to 486 characters in area3 scene at the same time)
  • We launch a client process on each of 9 cloud hosts. A proxy is running on each client process. Each agent is responsible for 55 characters. So there will be 495 characters login game. 9 client proxies act concurrently. Each proxy launches a role login operation every 2 seconds. Eventually, there will be 486 roles in area3 scene at the same time. The role which logined successfully launches an attack (the target is other role or monster nearby) or pick up item every 2~5 seconds. The success rate of attack is 98.29%. As shown below:

attack-1 attack-2

  • Each character spawn randomly distributed in 15 points, as shown below:

attack-3 attack-4

  • After logined successfully, 486 characters began to attack targets. Server and pomelo16's top is:

attack-5

  • When the test is completed, server and pomelo16's top is:

attack-6

  • In the process of the testing, server's status is:

attack-7 attack-8 attack-9 attack-10


2. Multiple roles in multi-process walk at the same time (up to 800 characters in area3 scene at the same time)
  • We launch a client process on each of 9 cloud hosts. A proxy is running on each client process. Each agent is responsible for 90 characters. So there will be 810 characters in game. 9 client proxies act concurrently. Each proxy launches a role login operation every 2 seconds. Eventually, there will be 800 roles in area3 scene at the same time. The role which logined successfully launches an move every 2~5 seconds. The success rate of move is 99.95%. As shown below:

move-1 move-2

  • 800 characters spawned randomly distributed in 15 points on the map. Every character's movement operating is regular. 8 times movements are an action cycle. Each step is a random value(1~walkSpeed). After 8 times movements, the character can be roughly back to the beginning point. The purpose of doing so is to try to define a character in the vicinity of its birth. So that all characters were distributed evenly over the whole map as far as possible. As shown below:

move-3 move-4

  • After logined successfully, 800 characters began to move targets. Server and pomelo16's top is:

move-5

  • When the test is completed, server and pomelo16's top is:

move-6

  • In the process of the testing, server's status is:

move-7 move-8 move-9 move-10


3. Multiple roles in multiprocess fight/walk at the same time (up to 558 characters in area3 scene at the same time)
  • We launch a client process on each of 9 cloud hosts. A proxy is running on each client process. Each agent is responsible for 63 characters. So there will be 567 characters login game. 9 client proxies act concurrently. Each proxy launches a role login operation every 2 seconds. Eventually, there will be 558 roles in area3 scene at the same time. The role which logined successfully launches an attack(50%) or move(50%) every 2~5 seconds. The success rate of attack is 99.50%. The success rate of move is 99.57%. As shown below:

both-1 both-2 both-3

  • 558 characters spawned randomly distributed in 15 points on the map. The target which is attacked is other role or monster nearby. Every character's movement operating is regular. 8 times movements are an action cycle. Each step is a random value(1~walkSpeed). After 8 times movements, the character can be roughly back to the beginning point. The purpose of doing so is to try to define a character in the vicinity of its birth. So that all characters were distributed evenly over the whole map as far as possible. As shown below:

both-4 both-5

  • After logined successfully, 558 characters began to attack or move. Server and pomelo16's top is:

both-6

  • When the test is completed, server and pomelo16's top is:

both-7

  • In the process of the testing, server's status is:

both-8 both-9 both-10 both-11


Clone this wiki locally