forked from NetEase/pomelo
-
Notifications
You must be signed in to change notification settings - Fork 1
Pomelo performance
Charlie Crane edited this page Oct 31, 2013
·
4 revisions
- The server test environment
- The client test environment
- Multiple roles in multiprocess fight at the same time (up to 486 characters)
- Multiple roles in multiprocess walk at the same time (up to 800 characters)
- Multiple roles in multiprocess fight/walk at the same time (up to 558 characters)
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 |
- 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.
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 |
- The clients are all within intranet.
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:
- Each character spawn randomly distributed in 15 points, as shown below:
- After logined successfully, 486 characters began to attack targets. Server and pomelo16's top is:
- When the test is completed, server and pomelo16's top is:
- In the process of the testing, server's status is:
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:
- 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:
- After logined successfully, 800 characters began to move targets. Server and pomelo16's top is:
- When the test is completed, server and pomelo16's top is:
- In the process of the testing, server's status is:
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:
- 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:
- After logined successfully, 558 characters began to attack or move. Server and pomelo16's top is:
- When the test is completed, server and pomelo16's top is:
- In the process of the testing, server's status is: