St06 CPU
1. Redistribute Wps:
If you find that the CPU Idle is below 35% consistently over some hours, look to see if there
is enough CPU capacity in other computers in the system if the option to redistribute the
workload is possible.
Server A: CPU Idle 25% (busy)
Server B: CPU Idle 70% (free)
Many background jobs and user sessions are running on Server A.
Server B has spare capacity but is barely being used.
👉 Redistributing workload means:
Move some jobs or users to Server B, so that:
o Server A gets some breathing room
o Server B’s CPU is used more efficiently
o Total system load is balanced
⚙ How this is done in SAP
1. Background Jobs
o Use batch server groups (Transaction SM61)
o Assign jobs to a group that includes multiple servers
o SAP scheduler then picks a less busy server from the group automatically
2. Dialog Users
o Adjust logon groups (Transaction SMLG)
o Load balancing ensures new user sessions are directed to the least loaded
server
3. RFC / Workload
o Use RFC load balancing (SM59 + SMLG) so RFC calls are distributed evenly.
4. RZ03/SM63
Temporary Change via RZ03 (Operation Modes)
You can switch work process roles temporarily (e.g., day vs night).
Transaction: RZ03 (Operation Modes) + SM63 (Define time-based switches)
📝 Example Scenario
Day mode: 15 Dialog, 2 Background
Night mode: 5 Dialog, 12 Background
👉 Define both operation modes in RZ03, then schedule them in SM63.
SAP will automatically switch WP distribution at the defined time (e.g., 7 PM
night mode, 7 AM day mode) without restarting the instance.
This is very effective for handling day-time user load vs night-time batch load.
🟡 Why this matters
By increasing Dialog WPs when many users are online, you reduce dialog queueing
and CPU contention with batch [Link] increasing Batch WPs during heavy
background processing periods (e.g., nightly), you improve batch throughput
without hurting daytime user response time.
2. Select the "Top 40 CPU processes" from the Snapshot menu
Here, you can see all currently active processes and their demands on resources.
1. Identify the process with the heavy CPU load using the process ID
2. Take this Process ID and match it with the Work process in SM50 to determine which
program or tables, queries are being processed by the process
Other options for analysis are :
Take the PID and match this with the database process in transaction code "ST04 -> Identify
Expensive SQL Statements" to identify the SQL statement that are being processed by the
database. Once the SQL Statement has been found, some questions to ask are:
Is this SQL statement optimal?
Can it be optimized?
Is it better off using an index and is the optimizer choosing the correct index?
3. SMICM
Open SMICM → check Threads, Connections, Queue.
Peak = Max → ICM bottleneck.
CPU may rise indirectly because WPs wait for ICM to process requests.
Adjust ICM parameters or MPI memory to relieve bottleneck.
Increase Maximum Connections
Parameter: icm/max_conn (default ~500)
Effect: Allows more simultaneous connections, reducing request queuing.
Example: Increase icm/max_conn = 800 if peak connections are hitting 500.
Increase Maximum Threads
Parameter: icm/max_threads
Effect: More threads handle incoming requests concurrently → reduces waiting.
Example: Increase icm/max_threads = 250 if all threads are busy.
Restart ICM (if needed)
Sometimes restarting ICM can clear stuck threads or connections:
o Transaction: SMICM → Administration → ICM → Restart
Course Overview
1 Unit 1: Introduction to Workload Analysis
2 Lesson: Components of a Dialog Step
16 Lesson: Statistical Records and the Workload Monitor- 22
27 Unit 2: Performance Analysis Monitors
28 Lesson: SAP Performance Monitors
45 Lesson: Dynamic Work Processes
49 Lesson: Analyzing ICM Performance
56 Unit 3: SAP Memory Management
57 Lesson: Memory Areas
67 Lesson: SAP Memory Allocation
87 Lesson: Implementation of SAP Extended Memory
90 Unit 4: Hardware Capacity Verification
91 Lesson: Hardware Bottlenecks
96 Lesson: Optimizing Hardware Utilization
99 Unit 5: Expensive SQL Statements
100 Lesson: Detecting Expensive SQL Statements
120 Lesson: Analysis and Tuning of ExpensiveSQL Statements
128 Unit 6: SAP Table Buffering
129 Lesson: Introduction to Table Buffering in SAP Systems
139 Lesson: Analyzing Table Buffering
143 Unit 7: RFC Monitoring
144 Lesson: RFC Basics
153 Lesson: Monitoring RFC Load and Solving RFC Load Problems
© Copyright.