How to use SAP transaction ST06 for SAP performance analysis In my previous post, I have covered how to run ST06, navigate through important ST06 screens and understand those screens. In this post, I would talk about how to use SAP transaction ST06 or perormance analysis! ". #se SAP SAP ST06 ST06 to to do $P# $P# worklo workload ad analy analysis sis %. #se SAP SAP ST06 ST06 to to do SAP SAP system system memory memory load load analysi analysis s &. 'the 'therr an analy alysis sis I mainly ocus on $P# and (emory analysis which are oten showed up as a concern to application)system perormance. SAP ST06 itsel cannot provide all data needed or $P# load and memory perormance analysis. SAP ST06 can be used to ind out when and where there is a perormance concern related to $P# and memory e tc or urther analysis. *orking in con+unction with other perormance tools like SAP workload monitor � ST0&)ST0&, database load monitor- ST0, SAP transaction statistics tool � STA/ and SAP snapshots collector -)S/)(' etc, you can identiy SAP work processes , +obs)programs, users who contributed to to $P#)(emory $P#)(emory perormance issue, then solutions)options solutions)options can be reviewed reviewed and worked on subse1uently. subse1uently.
1 Use SAP ST06 to do CPU workload analysis $P# workload analysis is to make sure that $P# workload is not e2ceeding recommended utili3ation 405 and maintaining $P# workload balance by analy3ing peak load period and load distribution pattern.
1.1 Reiew CPU load to make sure CPU utili!ation under t"e recommended t"res"old 'ne o important goals or $P# workload analysis is to make sure that $P# utili3ation is not over general recommendation Sum o #ser and Sys $P# utili3ation should not over 405 on hourly basis. or application server, system utili3ation utili3ation portion o $P# should not be over "05 and or data base server, itit should not be over %05. It is more critical to maintain at least %05 $P# idle rate or database server since database server is a central instance and all SAP transactions)programs need to access database server one way or another. 7ou 7ou can run ST06 and reresh the main screen to see whether $P# is over utili3ed now. 7ou 7ou can use hourly $P# utili3ation history or the past % hours or daily average in the past &0 days provided by SAP ST06 to see whether $P# has been over utili3ed in the past. I there are situations that those thresholds are e2ceeded, you need to look into the details on who 8+obs, processes or users9 are contributing most to the over utili3ation so you can review the situation and identiy the solution. Then you might ask how to identiy top +obs, processes or users who is consuming a lot o $P# power. #nortunately #nortunately,, SAP ST06 itsel cannot provide SAP +obs or processes names. 7ou need to use dierent SAP or non SAP tools to complete the perormance analysis dependant on whether you are reviewing a current $P# load concern or past $P# load concern. Since we are dealing with SAP system perormance and the $P# overutili3ation overutili3ation is mostly related to processes rom SAP in most cases, this post would cover details how to identiy top SAP +obs, processes or users. There are cases when non SAP processes are making signiicant contribution to $P# overutili3ation, I would briely mention this.
1.1.1 How to identify T#P CPU SAP user$ processes$ pro%rams&'o(s related to current CPU load issue irst, you need to reresh ST06 :Top :Top $P#; process screens to know which ST06 process is a top $P# process. ollowing is a part o ST06 :Top $P# processes; screen!
)i%ure 1 ST06 T#P CPU processes I a process is continuously showed at top o above screen during the observation period, then it is an e 2pensive process. I it is related SAP work process or a SAP database session)process. 7ou can ind corresponding sap user, sap work process or database session, SAP +ob)program name via ollowing method. or a process in ST06 Top $P# processes screen which is related to a SAP work process, you can use ollowing way to identiy related SAP user, program or +obs• •
•
0 and locate SAP work process based on :Process id;. rom SAP S(>0 screen, you can know the SAP process type, program name and SAP userI/. or SAP background process, you can ind corresponding S(&? +ob name! =un S@"6 against SAP table TT$', put :process-id; into ield TT$'-*PP='$I/, e2ecute it, you would get S(&? +ob name. There are other ways to get background +ob name based on :process I/;.
or a process in ST06 Top $P# processes screen which is related to a SAP database process, you can get the corresponding database process and urther the SAP work process i applied! • •
•
•
0)S(66 work process I/. 7ou can identiy corresponding SAP +ob i it is a background process 8see above9.
I a process in ST06 Top $P# processes screen is a non-SAP process and you do not have access to operating system shell, you need to talk with your system-level administrator to ind out operating system level program)script)+ob name. ST06 process name like /*.D is related to SAP work process in S(>0. ST06 process name like :'=A$C@D; is related to a database session)process in ST0. This has been covered in my previous post how to run ST06, navigate through important ST06 screens and understand those screens.
1.1.1 How to identify T#P CPU SAP user$ processes$ pro%ram&'o(s related to past CPU load or past $P# overload, you need to use SAP transaction ST0&)ST0& � SAP system workload monitor to analy3e the workload or the speciic period to identiy top oenders. SAP transaction ST0&)ST0& is an important perormance tool. 7ou can use ST06 data as an input or ST0&)ST0& analysis. I )S/)(' is scheduled in the system, you can use )S/)(' system perormance snapshots to do urther analysis.
1.* Reiew CPU load to ac"iee (etter load (alance Another goal o $P# workload analysis is to achieve $P# load balance including ertical and "ori!ontal balance. Eertical balance is to make sure that the same SAP server has proper load balance over time period such as a day or a week. The ob+ective o vertical $P# load review is to spread $P# load out over time so a server $P# power can be used e1ually in dierent time period as much as possible. The ob+ective o hori3ontal $P# load review is to spread $P# load among all servers)instances o a SAP system so each server o a SAP system has e1ual utili3ation at any speciic moment whenever possible. In reality, it is impossible to achieve absolute vertical or hori3ontal $P# utili3ation balance due to various reasons � business oice hours and non business oice hours, business pattern8seasonal 9, dierent level o resource consumption by dierent programs)+obs and dierent level o resource consumption by the same program due to volume dierence etc. SAP ST06 can display hourly $P# utili3ation or past % h ours. It can display daily average $P# utili3ation or a single server and across systems or the past &0 days. This inormation is an input or load balance analysis. SAP ST06 cannot tell you which users and processes are creating those loads. 7ou need to work with SAP workload monitor ST0&)ST0& to ind urther details. Coad balance issue is normally caused by many concurrent running SAP work process as a result o parallel solution, immediate processed @/I)AC@ interace in my e2perience and incoming =$ calls etc. SAP $P# workload balance analysis should look into those a reas irst. It is really rare that culprit is singe thread o SAP work process.
1.+ Understandin% CPU load and application&system performance $P# load is an important actor or application)system perormance. ut there is no simple e1uation to say! high $P# load F bad perormance, low $P# load F good perormanceG High $P# load F bad user e2perience, Cow $P# load F good user e2perience. 7ou can reer to my previous post to understand other actors which might inluence a program perormance. However I would assume here that $P# is only actor which inluence perormance to make discussion simple. @ven hourly average $P# utili3ation is under 405, this does not mean all business transactions e2ecuted in that hour would have normal perormance. *hether there is a perormance impact, this really depends on $P# load distribution in that hour and how sensitive a business transaction is to runtime. or e2ample, i $P# utili3ation or " st hal hour is 05 and % nd hal hour utili3ation is "05, then average $P# utili3ation is >05 or that hour well below the recommended utili3ation, however perormance o a business transaction which is running in the "st hal hour would be very likely impacted. This would also depends on normal utili3ation � I normal utili3ation is >05, then $P# utili3ation +umps to 405, an application or transaction perormance might be impacted. I a +ob)program normally runs or several days, then single h our $P# over utili3ation on runtime o such +ob or program can be ignored. In another way, when we evaluate $P# impact on a long running transaction)+ob runtime, we need to check $P# load history instead o current $P# load. Also i a SAP system has separate database server and application server, one server has overloaded but another server is ok.. the perormance impact on a transaction might depends on where the transaction spends most time. I 5 o time is spent on database server and database server is not over loaded , $P# contention on an application server is very likely have no impact on the perormance o transaction where it is e2ecuted on application server. So on. @ven perormance o all business transactions in the SAP system are impacted rom technical analysis point view. This might be dierent rom what business users eel. Since each business transaction and process has an acceptable runtime range � that is SAP usersJ e2pectation as well. usiness users would only eel the perormance impact i business transaction or perormance has a notable deviation rom itsJ normal runtime range. or e2ample, a background +ob has a run time range o " � % hours based on volume, business might not eel dierence i what should be inished in " hour normally or small volume takes " and hal hour due to $P# overutili3ation. However, business would eel the perormance issue i big volume happens to kick in while there is a $P# overutili3ation in this case. Technically, $P# load would impact a program)+ob perormance i a business +ob needs $P# but h ave to be put to wait due to $P# contention. *hen a +ob)program spends a lot o time waiting or $P#, itsJ perormance is impacted. SAP transaction STA/ would show statistical data o +ob)program runtime �which break +ob runtime down to urther components. Analysis o those components can help you to understand the impact o $P# contention. or e2ample, in server with processors running only +obs and each o +obs is purely doing calculation w)o disc or hours, 7ou should see $P# "005 utili3ation but each o +obs spends no time in waiting or $P#.
#nder current SAP technology, we normally do not need to worry about individual $P#)processor utili3ation showed in Snapshot � $P# screen 8ot T'P $P# screen which shows a list o work processes9. However, this could be a concern i one or more o server $P#s are reserved or speciic pu rpose)application.
1., #t"er CPU workload analysis tools There are other tools or $P# load analysis. I have mentioned SAP workload monitor � SAP transaction ST0&)ST0& in previous section. It can be used to do workload analysis as well. 7ou can use ST06 to identiy peak load period and use SAP workload monitor ST0&)ST0& or urther analysis. SAP database load monitor ST0 can be used to monitor SBC operation load on database server. I would cover SAP workload monitor ST0&)ST0& and database load monitor ST0 in the uture. (y avorite tool or load monitor analysis is SAP perormance snapshot program )S/)('. )S/)(' is not good or current $P# contention but it can be used to collect $P# load snap-shots or historical utili3ation analysis. ST ST06 is good or current $P# load analysis but depends on other tools to ind process, sap +ob, user and program inormation. So you can ST06 to know when there is a $P# contention, then use SAP )S/)(' transaction to collect snapshot or that p articular period or details analysis. 7ou can reer to my post SAP )S/)(' workload analysis or details on how to use SAP transaction )S/)(' in load analysis.
1.- Process relation amon% SAP ST06$ S-0&S66 and ST0, This section would tell you the linkage among ST06 T'P $P# process, S(>0 SAP work processes and ST0 database process)sessions via e2amples. @2ception where a process e2ists in one tool but not in another tool due to SAP +ob cancellation etc is not discussed here.
1.-.1 How is a ST06 data(ase related process linked to a SAP S-0 work process
)i%ure * ST06 / related process 2 S-0 process
1.-.1 How is a ST06 SAPrelated process linked to a S-0 SAP work process
)i%ure + ST06 #S process 2 S-0 process
1.6 Possi(le solution for miti%atin% CPU work load and ac"iein% (etter load (alance Through above analysis, you identiy the top peak period and top business transactions)+obs, you can consider ollowing solutions to reduce $P# load and achieve better load balance! •
Schedule � run t +ob in dierent time when system is less busy or change +ob re1uency
•
• •
Tune +ob)program logic and database operation � So the +ob)program is more eicient and use less $P#. This can include +ob variant change. *orkload balance)redistribution � run the +ob)program in another server)instance o the SAP system. #pgrading hardware � more powerul server or more $P#s)Processors.
#pgrading hardware should be the last resort ater all other options have been tried. or tuning AAP program perormance, you can reer to my post � how to do perormance trace using SAP ST"% and how to tuning AAP program perormance i you like. I e2ternal process is using a lot o $P# power, then you can use similar solutions as what we have or SAP related processes. 'r you can simply terminate it and stop it depending on your scenario.
* Use SAP ST06 to do emory load analysis (emory workload analysis is to make sure that there is enough ree memory and ree swap space 8Eirtual memory9 available in the system by analy3ing peak memory and memory usage pattern. SAP ST06 can show you current server memory utili3ation and hourly average memory utili3ation or past % hours. Please reer to my post � how to run ST06 on ST06 screen navigation and understanding. ollowing is a part o past % hours memory history screen!
)i%ure , ST06 3 past *, "r memory "istory To know current SAP server memory utili3ation status, you can +ust run ST06 transaction and rereshing the main screen every "0 seconds. I you would like to know which SAP process)user is consuming the server memory, you need to access mode list screen o SAP transaction ST0% � SAP buer)memory monitor. ST06 provides top $P# processes but unortunately it cannot provide Top memory processes.
)i%ure - ST0* modelist To know history memory usage, you can run SAP ST06 screen and navigate to past % hours memory screen. However, i you observed a particular period when the memory usage is a concern�that is all you can get rom SAP ST06. 7ou can use this inormation to schedule SAP transaction )S/)(' to get memory snapshots or the period concerned, Then based on )S/)(' memory snapshots, you can igure who and which processes are top memory consumption processes)users or the period in 1uestions. That is why SAP )S/)(' stands out as one o my avorite perormance tool both or SAP
production support and SAP development. Please reer to my po st on how to run )S/)(' or memory analysis i you would like to know more on it.
)i%ure 6 &S/) snaps"ots (emory load analysis also pays attention to swap space. I normally +ust check whether there are enough ree swap space and hourly paging out rate. Hourly paging out rate or #K and Cinu2 'S should not be over %05 o physical memory in general. Here I assume that all memory consumption in a server are rom SAP users or sap p rocesses. SAP ST0% and SAP )S/)(' is or analy3ing memory consumption rom SAP users in the instance)system where it is started. I there are other instances on one server or there are operating system level processes which consume a lot o memory, they would not be captured by SAP ST0% or SAP )S/)('. #K level or other sap instances need to be checked at the same time. Possible solutions to mitigate perormance concerns due to memory o verload and achieve better SAP memory load balance are! ". %. &. . >.
=educe volume � you might need to educate end business users or change +ob variant. Schedule � =un +ob)transaction in dierent time when there is less memory load. =edeployment � run the +ob in dierent instance or server. Tune the SAP +ob)program to reduce memory usage. (ore capacity � add in additional physical memory or swap space.
As or $P# load analysis, adding more capacity should the last resort when other options have been reviewed. I e2ternal process)task is causing issue, you need to work with owner and look into solution depends on actual scenario.
, #t"er analysis 5ia SAP ST06 ased on ST06, we can do I' analysis based on and ile space analysis. 'b+ective o this analysis is to make sure that there is no hot spot or I' bottleneck by proper I' coniguration such as spreading d ata out among system disc properly. 7ou can reresh ST06 (ain screen and pay attention to /IS$ with highest response time to observe whether a particular disc has high utili3ation or a signiicant duration and has a lot o process in waiting 81ueue length9. 7ou also can check past % hours disc usage history to ind out whether a particular disc has an e2tremely high utili3ation and 1ueue length. I have not run into such situation in my SAP perormance work so ar. o urther insight can be shared. SAP system I' coniguration is not my area as well.
)i%ure ST06 /isc wit" Hi%"est response time
ile space analysis is to check that we have enough ree space at 'S directory level. This might be critical or successul running o +obs)programs which need to output ile to operating system level.
,. )urt"er clarification #p to now, I have covered on how to use SAP operating system monitor ST06 to do perormance analysis! Identiy e2isting)potential problems using SAP operating system monitor ST06 and continue ST06 analysis with other SAP perormance tools. rom ST06, you can access other SAP tools such as network traic check which can be handy or troubleshooting network related perormance issue.