The 3-5-x series of patches are all going to be focused on network IO improvements. This first patch lays the groundwork for a number of these changes and includes a significant hardware change. We will be adding 12 cores to the existing pool bringing us from 8 to 20. RAM will remain constant at 48GBs as that has not been an issue that we have seen while profiling. The code changes we are making in this patch do a number of things:
- Introduce 2 Admin level commands that allow us to adjust Logging levels dynamically. Logging can be a huge drag on CPUs and we currently over-log in some areas. These commands allow use to reduce logging events by close to 40% based on this past weekend’s volumes - Increased the Thread Priority on “Write” events as this is where we saw a backlog in the network. Inbound messages are not an issue because there is typically a one to many relationship with inbound to outbound messages. For example, clicking to move your character creates an inbound “Move to Point” message that then needs to be broadcast to all players that can currently “see” the character.” In the case of a bane this could be 50, 60, 100+ outbound messages. Increasing the thread priority here means the CPUs will lean resources toward these threads for writing purposes. This is not intended to be a silver bullet, but we are very interested to see how it plays out - Decreasing thread pause times. Small “pauses” within the network layer allow for data catch-up and a number of other queuing activities, we decreased these pauses to keep data flowing - Prefabricating messages for static content. One area of improvement within the Load process relates to static content like zones and NPC cities. We are going to pre-build some Outbound messages related to this content to streamline the load process. Static buildings and content (e.g. the random “detail” stuff you see in SDR, like bottles and benches) are the first to go in. We will look to expand this further over the next week.
|Previous Version:||Patch 3.4.1|
|Next Version:||Patch 3.6.0|