Tuning Guidelines and Process Flow
Tuning Guidelines
Performance optimization must comply with the following principles:
- When analyzing the performance, analyze the system resource bottlenecks from multiple aspects. For example, insufficient memory capacity may cause the CPU to be occupied by memory scheduling tasks and the CPU usage to reach 100%.
- Adjust only one performance parameter at a time.
- The analysis tool may consume system resources and aggravate certain system resource bottlenecks. Therefore, the impact on applications must be avoided or minimized.
Tuning Process Flow
The tuning analysis flow is as follows:
- In many cases, pressure test traffic is not completely sent to the backend (server). For example, a protection policy may be triggered on network access layer services such as Server Load Balancing (SLB), Web Application Firewall (WAF), High Defense IP, and even Content Delivery Network (CDN) /site acceleration in a cloud-based architecture. This occurs because the specifications, such as bandwidth, maximum number of connections, and number of new connections, are limited, or the pressure test shows the features of Challenge Collapsar (CC) and Distributed Denial of Service (DDoS) attacks. As a result, the pressure test results do not meet expectations.
- Check whether the key indicators meet the requirements. If not, locate the fault. The fault may be caused by the servers (in most cases) or the clients (in a few cases).
- If the problem is caused by the servers, focus on the hardware indicators such as the CPU, memory, drive I/O, and network I/O. Locate the fault and perform further analysis on the abnormal hardware indicator.
- If all hardware indicators are normal, check the middleware indicators such as the thread pool, connection pool, and GC indicators. Perform further analysis based on the abnormal middleware indicator.
- If all middleware indicators are normal, check the database indicators such as the slow query SQL indicators, hit ratio, locks, and parameter settings.
- If the preceding indicators are normal, the algorithm, buffer, cache, synchronization, or asynchronization of the applications may be faulty. Perform further analysis.
Table 1 lists the possible bottlenecks.
Bottleneck |
Description |
|---|---|
Hardware/Specifications |
Problems of the CPU, memory, and drive I/O. The problems are classified into server hardware bottlenecks and network bottlenecks (Network bottlenecks can be ignored in a LAN). |
Middleware |
Problems of software such as application servers and web servers, and database systems. For example, a bottleneck may be caused if parameters of the Java Database Connectivity (JDBC) connection pool configured on the WebLogic platform are set improperly. |
Applications |
Problems related to applications developed by developers. For example, when the system receives a large number of user requests, the following problems may cause low system performance, including slow SQL statements and improper Java Virtual Machine (JVM) parameters, container settings, database design, program architecture planning, and program design (insufficient threads for serial processing and request processing, no buffer, no cache, and mismatch between producers and consumers). |
OS |
Problems related to the OS such as Windows, UNIX, or Linux. For example, if the physical memory capacity is insufficient and the virtual memory capacity is improper during a performance test, the virtual memory swap efficiency may be greatly reduced. As a result, the response time is increased. This bottleneck is caused by the OS. |
Network devices |
Problems related to devices such as the firewalls, dynamic load balancers, and switches. Currently, more network access products are used in the cloud service architecture, including but not limited to the SLB, WAF, High Defense IP, CDN, and site acceleration. For example, if a dynamic load distribution mechanism is set on the dynamic load balancer, the dynamic load balancer automatically sends subsequent transaction requests to low-load servers when the hardware resource usage of a server reaches the limit. If the dynamic load balancer does not function as expected in the test, the problem is a network bottleneck. |
General tuning procedure:
Figure 1 shows the general tuning procedure.
