Unexplainable Performance Drop
Posted: 15 Apr 2011, 19:10
Here is a full description of our situation:
Server version: 1.6.9
Server hardware: 8 CPU cores, 8GB RAM
Operating system: Linux
Relevant configuration:
<OutQueueThreads>4</OutQueueThreads>
<ExtHandlerThreads>1</ExtHandlerThreads>
<MaxWriterQueue>50</MaxWriterQueue>
<ClientMessagQueue>
<QueueSize>100</QueueSize>
<MaxAllowedDroppedPackets>1</MaxAllowedDroppedPackets>
</ClientMessagQueue>
<MaxIncomingQueue>8000</MaxIncomingQueue>
<DeadChannelsPolicy>strict</DeadChannelsPolicy> <MaxMsgLen>4096</MaxMsgLen>
Problem:
The game works very well, but after about 400 concurrent users there are moments when players experience extensive lag (5-15 seconds), despite good ping values (50-100ms). This behaviour seems highly erratic, with no apparent direct cause.
We use RAW strings for 95% of our traffic, so the bulk of our traffix rarely exceeds 700kbits/sec. The packet count is about 400 packets per second (200 inbound, 200 outbound).
This is a turn based game, so not much traffic is to be expected anyway.
CPU usage rarely goes above 10% on the core that handles mysql, while the rest are mostly idle, with usages below 3%.
I'm positive that there has to be a design flaw in my code, but I can't seem to find it. Any info on this?
Server version: 1.6.9
Server hardware: 8 CPU cores, 8GB RAM
Operating system: Linux
Relevant configuration:
<OutQueueThreads>4</OutQueueThreads>
<ExtHandlerThreads>1</ExtHandlerThreads>
<MaxWriterQueue>50</MaxWriterQueue>
<ClientMessagQueue>
<QueueSize>100</QueueSize>
<MaxAllowedDroppedPackets>1</MaxAllowedDroppedPackets>
</ClientMessagQueue>
<MaxIncomingQueue>8000</MaxIncomingQueue>
<DeadChannelsPolicy>strict</DeadChannelsPolicy> <MaxMsgLen>4096</MaxMsgLen>
Problem:
The game works very well, but after about 400 concurrent users there are moments when players experience extensive lag (5-15 seconds), despite good ping values (50-100ms). This behaviour seems highly erratic, with no apparent direct cause.
We use RAW strings for 95% of our traffic, so the bulk of our traffix rarely exceeds 700kbits/sec. The packet count is about 400 packets per second (200 inbound, 200 outbound).
This is a turn based game, so not much traffic is to be expected anyway.
CPU usage rarely goes above 10% on the core that handles mysql, while the rest are mostly idle, with usages below 3%.
I'm positive that there has to be a design flaw in my code, but I can't seem to find it. Any info on this?