System Performance Issue Analysis, Diagnosis, and Optimization Process
This article outlines a comprehensive approach to diagnosing and optimizing performance problems in production business systems, covering common causes such as concurrency spikes, data growth, and environment changes, and detailing hardware, middleware, database, JVM, code-level analyses, monitoring tools, and APM strategies.
System Performance Issue Analysis Process
The article begins by stating that it focuses on diagnosing and optimizing performance problems that appear after a business system has been launched, rather than on pre‑release testing.
Typical Causes of Post‑Launch Performance Degradation
High concurrent access leading to bottlenecks.
Increasing database volume over time.
Changes in critical environment factors such as network bandwidth.
When a problem is detected, the first step is to determine whether it occurs under single‑user (non‑concurrent) conditions or only under load. Single‑user issues are usually easier to test and often stem from code or SQL inefficiencies, while concurrent issues require stress testing in a controlled environment.
During load testing, CPU, memory, and JVM should be monitored to detect problems such as memory leaks that may also arise under concurrency.
Factors Influencing Performance
Performance is affected by three main dimensions:
Hardware environment : compute, storage, and network resources. Server compute capability is often expressed by TPMC, but real‑world performance can vary. Storage I/O performance is a frequent bottleneck; tools like iostat, top, vmstat help monitor these metrics.
Software runtime environment : operating system, middleware, and JVM settings.
Application code : algorithms, data structures, and resource management.
Database and Middleware Tuning
For Oracle databases, performance factors include system, database, and network settings. Optimization targets include disk I/O, rollback segments, redo logs, SGA, and object design. Continuous monitoring is required, and DBAs often extract high‑cost SQL statements for developers to tune.
Middleware containers such as WebLogic or Tomcat require configuration tuning (thread pools, connection limits) and JVM parameter optimization.
-Xmx # set maximum heap size
-Xms # set minimum heap size
-XX:MaxNewSize # set maximum young generation size
-XX:NewSize # set minimum young generation size
-XX:MaxPermSize # (old model) set maximum permanent generation size
-XX:PermSize # (old model) set minimum permanent generation size
-Xss # set thread stack sizeIn modern JVMs the permanent generation has been replaced by Metaspace; therefore heap and Metaspace sizing, together with the choice of garbage‑collection algorithm, must be considered.
Software Code Issues
Creating large objects or opening DB connections inside loops.
Resource leaks causing memory exhaustion.
Missing caching where appropriate.
Long‑running transactions that consume resources.
Choosing sub‑optimal data structures or algorithms for a given scenario.
These problems are best uncovered through static analysis tools, code reviews, and adherence to coding standards.
Performance Detection via Monitoring and APM
Two main paths to discover performance issues are:
Proactive monitoring of infrastructure and Application Performance Management (APM) tools that generate alerts.
User feedback during normal operation.
APM links resource usage (CPU, memory, I/O) to specific applications, services, and business functions, enabling rapid pinpointing of slow SQL statements or service calls.
By integrating resource → application → business layers, APM supports full‑stack tracing, making performance diagnosis more efficient.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Architecture Digest
Focusing on Java backend development, covering application architecture from top-tier internet companies (high availability, high performance, high stability), big data, machine learning, Java architecture, and other popular fields.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
