How to Diagnose and Optimize Business System Performance After Launch
This article outlines a comprehensive process for analyzing, diagnosing, and optimizing performance issues in production business systems, covering hardware, database, middleware, JVM tuning, code-level problems, testing limitations, scaling considerations, and the role of APM monitoring.
Today we discuss the analysis, diagnosis, and optimization of business system performance issues, focusing on post‑launch problems and their remediation.
System Performance Issue Analysis Process
When a business system shows no performance problems before launch but encounters serious issues after going live, the typical causes are:
High concurrent access leading to bottlenecks
Growing database volume causing bottlenecks
Changes in key environment such as network bandwidth
First determine whether the problem appears 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, while concurrent issues require stress testing and analysis of the database and middleware.
Factors Influencing Performance
Performance factors can be grouped into hardware, software runtime environment, and application code.
Hardware Environment
Includes compute, storage, and network resources. CPU and memory capacity, as well as storage I/O, are common bottlenecks. Linux provides tools such as iostat, ps, sar, top, and vmstat for monitoring CPU, memory, JVM, and disk I/O.
Database and Middleware
Database tuning (e.g., Oracle) involves optimizing disk I/O, rollback segments, redo logs, SGA, and database objects. Middleware tuning includes configuring containers like WebLogic or Tomcat and adjusting JVM parameters.
-Xmx # set maximum heap size
-Xms # set initial heap size
-XX:MaxNewSize # set maximum young generation size
-XX:NewSize # set minimum young generation size
-XX:MaxPermSize # set maximum permanent generation size (replaced by Metaspace)
-XX:PermSize # set minimum permanent generation size (replaced by Metaspace)
-Xss # set thread stack sizeRecommended ratios: Xmx/Xms about 3‑4 × the live old‑generation size, Metaspace about 1.2‑1.5 ×, young generation (Xmn) about 1‑1.5 ×, and old generation 2‑3 × the live objects.
Software Code
Common code‑level performance problems include large object initialization inside loops, unreleased resources causing memory leaks, missing caching, long‑running transactions, and using sub‑optimal data structures or algorithms. Code review and static analysis are essential to detect these issues.
Performance Testing and Scaling
Pre‑release performance tests often cannot fully replicate production hardware, data volume, or concurrency, which explains why issues surface after launch. Horizontal scaling of databases is limited (e.g., Oracle RAC 2‑3×), while application clusters scale more readily, but scaling alone does not solve underlying single‑node performance defects.
Diagnosis Classification
Operating system and storage layer
Middleware layer (database, application server)
Software layer (SQL, business logic, front‑end)
APM and Monitoring
Application Performance Management (APM) monitors key business applications, improves reliability, and reduces total cost of ownership. It bridges the gap between resource‑level metrics and business‑level impact, enabling fast identification of slow services, SQL statements, or code paths.
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.
Java Interview Crash Guide
Dedicated to sharing Java interview Q&A; follow and reply "java" to receive a free premium Java interview guide.
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.
