Some problems in measuring system performance
Dear all
I'm a new in Solaris world. Recently, my team is doing some performance tests on the Solaris 10 platform. But I find that it puzzles me about how Solaris system will measure CPU load
for example, I use command prstat -L -p <pid> to determine the CPU load of each threads for a process and get the result like:
[zhf@SunOS@whale]/export/home/zhf/PCS_Rel/conf> prstat -L -p 12685
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/LWPID
12685 zhf 58M 34M sleep 52 0 0:00:06 3.8% pcs/4
12685 zhf 58M 34M sleep 42 0 0:00:05 3.7% pcs/6
12685 zhf 58M 34M sleep 59 0 0:00:05 3.6% pcs/5
12685 zhf 58M 34M sleep 59 0 0:00:02 1.4% pcs/8
12685 zhf 58M 34M sleep 59 0 0:00:00 0.5% pcs/15
12685 zhf 58M 34M sleep 59 0 0:00:00 0.2% pcs/16
12685 zhf 58M 34M sleep 59 0 0:00:00 0.1% pcs/7
12685 zhf 58M 34M sleep 59 0 0:00:01 0.1% pcs/1
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/3
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/2
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/14
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/13
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/12
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/11
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/10
12685 zhf 58M 34M sleep 59 0 0:00:00 0.0% pcs/9
and prstat -mL -p <pid> to determine the microstate of each thread for a process. the example like:
[zhf@SunOS@whale]/export/home/zhf/PCS_Rel/conf> prstat -mL -p 12685
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWPID
12685 zhf 28 0.4 0.0 0.0 0.0 72 0.0 0.0 377 15 762 0 pcs/4
12685 zhf 24 0.3 0.0 0.0 0.0 75 0.0 0.0 332 16 666 0 pcs/6
12685 zhf 21 0.3 0.0 0.0 0.0 78 0.0 0.0 290 8 584 0 pcs/5
12685 zhf 4.8 0.6 0.0 0.0 0.0 95 0.0 0.0 501 4 4K 0 pcs/8
12685 zhf 2.4 0.3 0.0 0.0 0.0 97 0.0 0.1 1K 3 2K 0 pcs/15
12685 zhf 0.9 0.3 0.0 0.0 0.0 0.0 99 0.0 503 10 1K 0 pcs/16
12685 zhf 0.3 0.2 0.0 0.0 0.0 0.0 99 0.0 501 0 1K 0 pcs/7
12685 zhf 0.1 0.1 0.0 0.0 0.0 0.0 100 0.1 501 2 501 0 pcs/3
12685 zhf 0.0 0.0 0.0 0.0 0.0 0.0 100 0.0 77 0 47 0 pcs/2
12685 zhf 0.0 0.0 0.0 0.0 0.0 0.0 100 0.0 0 0 0 0 pcs/14
12685 zhf 0.0 0.0 0.0 0.0 0.0 100 0.0 0.0 0 0 0 0 pcs/13
12685 zhf 0.0 0.0 0.0 0.0 0.0 100 0.0 0.0 0 0 0 0 pcs/12
12685 zhf 0.0 0.0 0.0 0.0 0.0 0.0 100 0.0 0 0 0 0 pcs/11
12685 zhf 0.0 0.0 0.0 0.0 0.0 0.0 100 0.0 0 0 0 0 pcs/10
12685 zhf 0.0 0.0 0.0 0.0 0.0 100 0.0 0.0 0 0 0 0 pcs/9
12685 zhf 0.0 0.0 0.0 0.0 0.0 0.0 100 0.0 0 0 0 0 pcs/1
Let's look at thread thread 4, I can see from -L result that thread 4 occupies 3.8% CPU time. But in -mL result shows that thread 4 user part only take 28% time and 72% is waiting for locks.
My question is, is the "waitig for locks" also calculated into CPU load? That's to say, if the 3.8% CPU load includes lock time, is that means the real processing time is 3.8%*28%? or the 3.8% CPU load not includes lock time, So, the 3.8% CPU load is the real cost of this thread (which is 28% user processing). I wish my explanation will not mess you :)
For my colleagues have many arguments on this, but no one could be sure. So I ask the experts here to seek the answers.
many many thanks in advance
Cheers
Shen
Message was edited by:
lishen
#1. The first display you have (without the -m) is not an immediate display. The CPU figures are long-term averages, so they can lie considerably.
Take an otherwise idle machine and run a CPU intensive program. It will take 100% of one CPU immediately, but 'top' and 'prstat' will take many seconds to reflect that.
#2. Whether 'waiting on a lock' takes CPU time probably depends on how it's wating. Solaris has adaptive locks, so sometimes the wait will take CPU time and other times it sleeps. (Going to sleep and waking up again has an overhead associated with it. So if the lock is going to release "quickly", then it makes sense to just spin on the CPU and do nothing for a few cycles until the lock is released. However if it's going to take "a while" for the lock to release, then it's better to release the CPU and let other processes have it while we wait for the lock.)
In most circumstances (and almost certainly in your example) the processes are sleeping while waiting for the lock. However there might be other situations where that is not true.
Darren
Similar Messages
-
How to get numeric information about system performance using WMI calls?
Hello everyone,
I'll make the question summarized for your convenience. I want to achieve the following task:
-To be able to measure system performance over a sustained period of time.
The way I intend to tackle that task is by doing the following:
-To use WMI calls to get system performance data in a numeric and/or a percentage form. (RAM utilization, CPU utilization, Power state [active/idle]).
The information I am trying to get is EXACTLY the information you can see in Task Manager under Performance tab.
Please help. If you think there is a better way to do this than using WMI calls, I couldn't be more glad to take your advice and apply it!!
Thanks in advance!
RayThere is a better way.
Use PDH function calls. This gets you as close as you can get to the performance counters provided by the operating system.
Read more about it here.
Examples found here.
Codeproject example here and
here -
1.1 performance problems related to system configuration?
It seems like a lot of people are having serious performance problems with Aperture 1.1 in areas were they didn't have any (or at least not so much) problems in the previous 1.01 release.
Most often these problems occur as slow behaviour of the application when switching views (especially into and out of full view), loading images into the viewer or doing image adjustments. In most cases Aperture works normal for some time and then starts to slow down gradually up to point were images are no longer refreshed correctly or the whole application crashes. Most of the time simply restarting Aperture doesn't help, one has to restart the OS.
Most of the time the problems occur in conjunction with CPU usage rates which are much higher than in 1.0.1.
For some people even other applications seem to be affected to a point where the whole system has to be restarted to get everything working up at full speed again. Also shutdown times seem to increase dramatically after such an Aperture slowdown.
My intention in this thread is to collect information from users who are experiencing such problems about their system configuration. At the moment it does not look like these problems are related to special configurations only, but maybe we can find a common point when we collect as much information as possible about system where Aperture 1.1 shows this behaviour.
Before I continue with my configuration, I would like to point out that this thread is not about general speed issues with Aperture. If you're not able to work smoothly with 16MPix RAW files on G5 systems with Radeon 9650 video cards or Aperture is generally slow on your iBook 14" system where you installed it with a hack, than this is not the right thread. I fully understand if you want to complain about these general speed issues, but please refrain from doing so in this thread.
Here I only want to collect information from people who either know that some things works considerably faster in the previous release or who notice that Aperture 1.1 really slows down after some time of use.
Enough said, here is my information:
- Powermac G5 Dualcore 2.0
- 2.5 GB RAM
- Nvidia 7800GT (flashed PC version)
- System disk: Software RAID0 (2 WD 10000rpm 74GB Raptor drives)
- Aperture library on a hardware RAID0 (2 Maxtor 160GB drives) connected to Highpoint RocketRAID 2320 PCIe adapter
- Displays: 17" and 15" TFT
I do not think, that we need more information, things like external drives (apart from ones used for the actual library), superdrive types, connected USB stuff like printers, scanners etc. shouldn't make any difference so no need to report that. Also it is self-evident that Mac OS 10.4.6 is used.
Of interest might be any internal cards (PCIe/PCI/PCI-X...) build into your system like my RAID adapter, Decklink cards (wasn't there a report about problems with them?), any other special video or audio cards or additional graphic cards.
Again, please only post here if you're experiencing any of the mentioned problems and please try to keep your information as condensed as possible. This thread is about collecting data, there are already enough other threads where the specific problems (or other general speed issues) are discussed.
Bye,
Carsten
BTW: Within the next week I will perform some tests which will include replacing my 7800GT with the original 6600 and removing as much extra stuff from my system as possible to see if that helps.Yesterday i had my first decent run in 1.1 and was pleased i avoided a lot perfromance issues that seemed to affect others.
After i posted, i got hit by a big slow-down in system perfromance. I tried to quit Aperture but couldn't, it had no tasks in its activity window. However Activity Monitor showed Aperture as a 30 thread 1.4GB Virtual memory hairball soaking-up 80-90% of my 4 cpu's. Given the high cpu activity i suspected the reason was not my 2GB of RAM, althought its obviously better with more. So what caused the sudded decerease in system perfromance after 6 hours of relative trouble free editing/sorting with 1.1 ?
This morning i re-created the issue. Before i go further, when i ran 1.1 for the first time i did not migrate my whole library to the new raw algorithum (its not called the bleeding edge for nothing). So this morning i selected one project to migrate all its raw images to 1.1 and after the progress bar completed its work, the cpus ramped and system got bogged-down again.
So Aperture is doing a background task that is consuming large amounts of cpu power, shows nothing in its activity monitor and takes a very long time to complete. My project had 89 raw images migrated to the 1.1 algorithum and it took 4 minutes to complete those 'background processes' (more reconstituting of images?). I'm not sure what its doing, but it takes a long time and shows no obvious sign it is normal. If you leave it to complete its work, the system returns to normal. More of an issue is the system allows you to continue to work as the background processes crank, compounding the heavy workload.
Bit of a guess this, but is this what is causing people system's problems ? As i said if i left my quad alone for 4 minutes all returns as normal. Its just not normal to think it will ever end, so you do more and compound the slow-down ?
In the interests of research i did another project migrating 245 8MB raws to the 1.1 algorithum and it took 8 minutes. First 5mins consumed 1GB of virtual memory over 20 threads at average 250% CPU usage for Aperture alone. The last three minutes saw the cpus ramp higher to 350%, virtual memory increase to 1.2GB. After the 8 minutes all returned to nornal and fans slowed down (excellent fan/noise behaviour on these quads).
Is this what others are seeing ?
When you force quit Aperture during these system slow-downs what effect does this having on your images ? Do the uncompleted background processes restart when you go to try and view them ?
If i get time i'll try and compare to my MBP. -
In a previous thread (was System Overload Problem...) ... I encountered system overload errors as described, while the system performance monitor showed almost no usage for either the disk I/O or the audio monitors.
I was just using some audio Instruments and a few plug-in's ( as was listed in the previous thread) ...
Question: So, and I missing something, or - how can we actually judge the system performance related to actual CPU usage? It seems as though there should be a third column ...
- 1 for disk I/O
- 1 for audio
- 1 for CPU
I would appreciate any insights on this matter.If you do a search for '10010' (also other 1001x errors) or 'error' you'll find plenty of threads of people with the same errors without good reason for the error's description-sometimes it is a driver conflict but the error returned is system overload. These errors are not always indicative of what actually caused the problem.
http://discussions.apple.com/thread.jspa?messageID=765043򺱳
http://discussions.apple.com/thread.jspa?messageID=766671򻋏
http://discussions.apple.com/thread.jspa?messageID=762124򺄌
And there are many little prefs, processes or actions which may trigger it. Many of them go unresolved. -
While i type, the keyboard starts typing multiple letters. I'm fed up of this. I think it's happening at its own. Is it because of some problem in the hardware since OS and system refresh could not resolve this please help.
First thing to try is to reset your device. Press and hold the Home and Sleep buttons simultaneously ignoring the red slider should one appear until the Apple logo appears. Let go of the buttons and let the device restart. See if that fixes your problem.
If you have done this like I describe above and the problem continues I suggest you contact Apple Support or make an appointment at an Apple Store and have your iPad examined by a technician. -
How to measure the sap system performance
hi experts ,
i want to understand how the system performance is calculated in sap. for example " How system , database performances are calculated by sap in SE30, SCI - sap code inspector " ...
With regards ,
James..
Valuable answers will be rewarded...Hi James,
Check these links, they will help you
http://help.sap.com/saphelp_nw04s/helpdata/en/8a/3b834014d26f1de10000000a1550b0/frameset.htm
http://help.sap.com/saphelp_nw04s/helpdata/en/d1/801f7c454211d189710000e8322d00/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/d1/801f7c454211d189710000e8322d00/frameset.htm
Thanks
Janani
award points if helpful -
Mensagem editada por: Mauricio Galletti
It seens that there´s some problem with the specific date of 19/10/2014? Don´t know why? I just remove this date from the interval and the problem gone.
What´s wrong with 19/10/2014?Hello Galdr,
Welcome to the HP Forums.
I see that after doing some updates, you've lost the use of switchable graphics in your Notebook. I will do my best to help you with this.
You can try is to use the HP Recovery Manager. This will allow you to "recover" the Notebook and reinstall the original drivers. This document: Using Recovery Manager to Restore Software and Drivers (Windows 7), can assist you with that.
Once the drivers are "reverted", then if you wish you can attempt updating.
This first thing I will provide you in regards to updating is this document: Switchable Graphics on Notebooks Configured with Dual AMD GPUs. There is more general information than anything, but you may find it useful.
When going to update you will want to use the website or the HP Support Assistant. These are the recommend ways to update. When using AMD's (or other OEM utilities) they will look for compatible drivers for the component, but not necessarily ones that work with your Notebook. What most likely happened, only one of the two drivers were actually updated.
Here is a link to the newest driver provided by HP: AMD High-Definition (HD) Graphics Driver. Also, here's a link to using the HP Support Assistant: Using HP Support Assistant (Windows 7). (in case you wanted to learn more/use this method).
I hope this is able to help you get back to "state 1", so that you may be able to update correctly and have full functionality of your switchable graphics again. Please let me know how this goes for you. Thank you for posting on the HP Forums.
I worked on behalf of HP. -
SAP ECC 6.0 System Performance
Gentlemen,
Please advise me with the following scenario, which is Iu2019m facing a problem with system performance,
My system configuration is: SAP ECC 6.0
Database System: Oracle 10.2.0.2.0.
Server Configuration: Power 6
Processor Type: PowerPC_POWER6
Processor Implementation Mode: POWER 6
Processor Version: PV_6_Compat
Number Of Processors: 6
Processor Clock Speed: 3503 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 2 PRODUCTION
Memory Size: 47104 MB
Good Memory Size: 47104 MB
Platform Firmware level: EL340_039
Firmware Version: IBM,EL340_039
The following Information was generated from TCode: sm51:
SAP Release Information
Application Server SAPPRD_PRD_00
SAP Kernel Information
SAP Kernel : 700_REL
Database Client Library : OCI_101
created in : AIX 2 5 005DD9CD4C00
Support Level : 0
Kernel Patch number : 202
Source ID : 0.202
DBSL Patch No. : 046
ICU Version : 3.0 Unicode Version 4.0.1
libsapu16 Version : 1.0025 Apr 8 2009 16:21:08
Supported Environment
SAP Database Version
700
Database
ORACLE 9.2.0..
ORACLE 10.1.0..
ORACLE 10.2.0..
Operating System
aix 1 5
aix 2 5
aix 3 5
aix 1 6
My active parameter in Tcode : RZ10 as follow:
Parameter Name Parameter value
login/accept_sso2_ticket 1
login/create_sso2_ticket 2
rsau/enable 1
login/failed_user_auto_unlock 0
login/fails_to_user_lock 5
gw/max_sys 2000
gw/max_overflow_size 25000000
rdisp/max_comm_entries 2000
rdisp/tm_max_no 2000
gw/max_conn 2000
rdisp/max_arq 2000
ES/SHM_SEG_COUNT 8192
ES/SHM_USER_COUNT 8192
ES/SHM_SEG_SIZE 2048
ES/TABLE SHM_SEGS
ztta/short_area 4000000
em/global_area_MB 256
zcsa/db_max_buftab 10000
sap/bufdir_entries 10000
enque/table_size 60000
rsdb/obj/large_object_size 35000
rsdb/obj/max_objects 45000
rsdb/obj/buffersize 150000
rdisp/gui_auto_logout 0
login/password_expiration_time 0
rdisp/max_wprun_time 25000
login/multi_login_users CICUSER,TALSAYED,ASALAM
login/disable_multi_gui_login 1
SAPSYSTEMNAME PRD
SAPSYSTEM 0
INSTANCE_NAME DVEBMGS00
DIR_CT_RUN $(DIR_EXE_ROOT)/run
DIR_EXECUTABLE $(DIR_INSTANCE)/exe
PHYS_MEMSIZE 8000
exe/saposcol $(DIR_CT_RUN)/saposcol
rdisp/wp_no_dia 70
rdisp/wp_no_btc 20
exe/icmbnd $(DIR_CT_RUN)/icmbnd
icm/server_port_0 PROT=HTTP,PORT=80$$
ms/server_port_0 PROT=HTTP,PORT=81$$
rdisp/wp_no_enq 1
rdisp/wp_no_vb 2
rdisp/wp_no_vb2 2
rdisp/wp_no_spo 10
abap/buffersize 9900000
zcsa/table_buffer_area 108003328
rtbb/buffer_length 60000
rsdb/cua/buffersize 24000
zcsa/presentation_buffer_area 28166144
rdisp/appc_ca_blk_no 2000
rdisp/wp_ca_blk_no 1000
rsdb/ntab/entrycount 68500
rsdb/ntab/ftabsize 100000
rsdb/ntab/irbdsize 20000
rsdb/ntab/sntabsize 3995
DIR_ROLL /usr/sap/PRD/DVEBMGS00/data
DIR_PAGING /usr/sap/PRD/DVEBMGS00/data
DIR_DATA /usr/sap/PRD/DVEBMGS00/data
DIR_REORG /usr/sap/PRD/DVEBMGS00/data
DIR_TRANS /usr/sap/trans
DIR_TEMP /tmp
DIR_SORTTMP /usr/sap/PRD/DVEBMGS00/data
zcsa/system_language E
zcsa/installed_languages AE
abap/use_paging 0
ztta/roll_first 1024
rdisp/keepalive_timeout 8000
ztta/roll_area 9000960
rdisp/ROLL_SHM 16384
rdisp/ROLL_MAXFS 32768
rdisp/PG_SHM 16384
rdisp/PG_MAXFS 200064
abap/heap_area_dia 2012217344
abap/heap_area_nondia 2012217344
abap/heap_area_total 2012217344
abap/heaplimit 40894464
abap/swap_reserve 20971520
ztta/roll_extension 2101346304
em/initial_size_MB 4092
em/blocksize_KB 4096
em/stat_log_size_MB 20
em/stat_log_timeout 0
login/no_automatic_user_sapstar 0
login/system_client 100
icm/server_port_1 PROT=SMTP,PORT=8025,TIMEOUT=180
rdisp/start_icman TRUE
icm/host_name_full SAPPRD.tmg.dom
install/codepage/appl_server 4102
ipc/shm_psize_10 500000000
ipc/shm_psize_14 0
ipc/shm_psize_18 0
ipc/shm_psize_19 0
ipc/shm_psize_30 -10
ipc/shm_psize_40 500000000
ipc/shm_psize_41 0
ipc/shm_psize_51 -10
ipc/shm_psize_52 -10
ipc/shm_psize_54 -10
ipc/shm_psize_55 -10
ipc/shm_psize_57 -10
ipc/shm_psize_58 -10
I already generated EWA report and I got the following result:
1. Performance Overview PRD
The performance of your system was analyzed with respect to average response times and total workload. We have detected some problems that may impair system performance.
To ensure adequate performance in your core business transactions, you should take corrective action as soon as possible. For further information, please SAP Support.
Rating Check
Performance Evaluation
The following table shows the average response times for various task types:
Task type Dialog Steps Avg. Resp. Time in ms Avg. CPU Time in ms Avg. Wait Time in ms Avg. Load Time in ms Avg. DB Time in ms Avg. GUI Time in ms
DIALOG 212990 1595.2 257.7 31.0 5.0 622.2 136.8
RFC 2904 11876.4 192.1 33.1 1.4 10574.2 0.0
UPDATE 86257 116.1 28.4 2.1 2.9 58.1 0.0
UPDATE2 1100 84.6 16.9 1.3 1.4 48.2 0.0
BATCH 11600 189360.5 46218.1 5.5 3.7 132313.5 0.0
SPOOL 9989 1686.8 37.1 55.6 0.3 49.2 0.0
1.1. Current Workload
The following table lists the number of current users (measured from our workload analysis) in your system.
Users Low Activity Medium Activity High Activity Total Users
Measured in System 162 119 6 287
1.2. Performance Evaluation
The measured times are compared against reference times to provide a rating.
- If the number of dialog steps in an hour is less than 1000 this hour is not considered.
- If the total number of transaction steps is less than 24000, the rating for the task is not performed and a blue line is entered in the table.
The table below shows that a performance problem is expected for the task that is rated YELLOW.
Task Steps Application Server Performance Database Server Performance
Dia 212987
Upd 86257
HTTP 0
Rating Task Time Steps Avg. Response Time (ms) Avg. CPU Time (ms) Avg. Database Time (ms)
Dia 08-09 3726 1343 137 889
Dia 09-10 19990 1003 174 620
Dia 10-11 20603 1747 112 630
Dia 11-12 27934 2437 239 612
Dia 12-13 18921 2737 235 858
Dia 13-14 21579 2163 349 549
Dia 16-17 22529 1134 230 703
Dia 17-18 12189 1709 561 991
Dia 19-20 5840 1550 414 967
Dia 20-21 4951 1294 176 454
The ratings in the table above are determined by comparisons against the reference table below.
If the dialog response times are very poor, it will cause a RED rating for the entire check.
Task Reference for Avg. Response Time (ms) Reference for Avg. DB time (ms)
Dia 1200 600
Upd 2400 1200
HTTP 1200 600
1.3. Transaction Profile Check
The following tables show the response times and the number of dialog steps for the transactions that cause the highest workload in your system. NOTE: A business transaction normally consists of more than one dialog step. As a rough estimate, the actual number of business transactions that are executed in your system is approximately one third of the total dialog steps shown. (Transaction CPIC/RFC is not taken into account.)
1.3.1. Transactions by Total Workload
The following tables list the activities with the highest contribution to the total workload.
WORKLOAD BY TRANSACTION (DIALOG/UPDATE)
Transaction Type Dialog Steps Total Resp. Time in % Avg. Resp. Time in ms Avg. CPU Time in ms Avg. DB Time in ms Avg. GUI Time in ms
Total 299247 100.0 1168.9 191.7 459.6 136.8
ZFIBB DIA 8592 11.1 4522.4 2258.5 633.4 30.1
ZFIRP DIA 6641 7.3 3858.0 1089.7 1162.6 50.0
RECN DIA 11644 6.8 2047.9 129.1 1165.8 202.6
SESSION_MANAGER DIA 8972 5.7 2226.9 80.2 244.2 458.2
ZFICCR DIA 4834 5.2 3775.9 138.4 2535.9 195.6
ZRECPD DIA 8895 4.6 1790.1 85.9 525.3 329.4
FBL3N DIA 10414 4.1 1386.7 109.3 971.8 49.1
ZFIOBC2 DIA 852 3.4 13909.2 2675.7 9302.3 1028.7
ZREOR DIA 2241 3.3 5216.1 2246.2 808.1 357.5
ZFIOB DIA 1176 3.2 9503.7 51.3 8287.0 753.4
38.1% of the "Total Resp. Time" in the above table is caused by customer transactions.
WORKLOAD BY TRANSACTION (BATCH/SPOOL)
Transaction Type Dialog Steps Total Resp. Time in % Avg. Resp. Time in ms Avg. CPU Time in ms Avg. DB Time in ms
Total 21492 100.0 102913.8 24939.7 71399.3
SBIE0001 BTC 36 98.7 60613763.4 14848709.4 42408448.0
ZFIPR SPO 448 0.2 7939.6 169.9 387.1
(BATCH) BTC 7368 0.2 478.4 7.5 22.2
ZFIADCA SPO 486 0.1 5733.7 168.6 177.9
RSAL_BATCH_TOOL_DISPATCHING BTC 96 0.1 23895.0 1964.7 21770.3
ZFIJV SPO 309 0.1 6092.5 107.7 89.5
SAPRSLOG BTC 4 0.1 318475.8 69165.0 257824.5
ZRE_GENERATE_COND_RO BTC 5 0.1 250075.0 3336.0 237287.8
ZRE_AUTO_REJECT_OFFER BTC 20 0.1 57062.0 339.0 54977.8
ZRE_TRANSFER_TOCONT_UPL BTC 346 0.0 3161.3 941.6 2327.7
0.6% of the "Total Resp. Time" in the above table is caused by customer transactions.
According to our analysis, the main system load is caused by background jobs.
The EarlyWatch Alert Service can only detect performance problems for dialog, update and RFC response times. This service does not evaluate performance problems for background jobs.
1.3.2. Transactions by DB Load
The following transaction profiles list the transactions that have the greatest share in the database load, sorted by percentage of total database access times.
DATABASE LOAD BY TRANSACTIONS (DIALOG/UPDATE)
Transaction Type Dialog Steps Total DB Time in % Avg. DB Time in ms
Total 299247 100.0 459.6
RECN DIA 11644 9.9 1165.8
ZFICCR DIA 4834 8.9 2535.9
FBL3N DIA 10414 7.4 971.8
ZFIOB DIA 1176 7.1 8287.0
ZRECCR DIA 1504 7.0 6368.3
ZFIOBC2 DIA 852 5.8 9302.3
ZFIRP DIA 6641 5.6 1162.6
ZFIBB DIA 8592 4.0 633.4
ZFIREMTCH DIA 73 3.5 66443.6
ZRECPD DIA 8895 3.4 525.3
45.3% of the "Total DB Time" in the above table is caused by customer transactions.
DATABASE LOAD BY TRANSACTIONS (BATCH/SPOOL)
Transaction Type Dialog Steps Total DB Time in % Avg. DB Time in ms
Total 21492 100.0 71399.3
SBIE0001 BTC 36 99.5 42408448.0
RSAL_BATCH_TOOL_DISPATCHING BTC 96 0.1 21770.3
ZRE_GENERATE_COND_RO BTC 5 0.1 237287.8
ZRE_AUTO_REJECT_OFFER BTC 20 0.1 54977.8
SAPRSLOG BTC 4 0.1 257824.5
ZRE_TRANSFER_TOCONT_UPL BTC 346 0.1 2327.7
RSPO1043 BTC 4 0.0 143273.5
ZFIPR SPO 448 0.0 387.1
(BATCH) BTC 7368 0.0 22.2
ZFIADCA SPO 486 0.0 177.9
0.3% of the "Total DB Time" in the above table is caused by customer transactions.
Please advice.
Regards,
AhmedGentlemen,
Please advise me with the following scenario, which is Iu2019m facing a problem with system performance,
My system configuration is:
SAP ECC 6.0 , Oracle 10.2.0.2.0 , Kernel Patch number : 202 , DBSL Patch No. : 046
Server Configuration:
Power 6 , Processor Type: PowerPC_POWER6 , Processor Implementation Mode: POWER 6 , Processor Version: PV_6_Compat , Number Of Processors: 6 , Processor Clock Speed: 3503 MHz , CPU Type: 64-bit , Kernel Type: 64-bit , LPAR Info: 2 PRODUCTION , Memory Size: 47104 MB , Good Memory Size: 47104 MB , Platform Firmware level: EL340_039 , Firmware Version: IBM,EL340_039
My active parameter in Tcode : RZ10 as follow:
Parameter Name Parameter value
rsau/enable 1
login/failed_user_auto_unlock 0
login/fails_to_user_lock 5
gw/max_sys 2000
gw/max_overflow_size 25000000
rdisp/max_comm_entries 2000
rdisp/tm_max_no 2000
gw/max_conn 2000
rdisp/max_arq 2000
ES/SHM_SEG_COUNT 8192
ES/SHM_USER_COUNT 8192
ES/SHM_SEG_SIZE 2048
ES/TABLE SHM_SEGS
ztta/short_area 4000000
em/global_area_MB 256
zcsa/db_max_buftab 10000
sap/bufdir_entries 10000
enque/table_size 60000
rsdb/obj/large_object_size 35000
rsdb/obj/max_objects 45000
rsdb/obj/buffersize 150000
rdisp/max_wprun_time 25000
DIR_CT_RUN $(DIR_EXE_ROOT)/run
DIR_EXECUTABLE $(DIR_INSTANCE)/exe
PHYS_MEMSIZE 8000
exe/saposco $(DIR_CT_RUN)/saposcol
rdisp/wp_no_dia 70
rdisp/wp_no_btc 20
exe/icmbnd $(DIR_CT_RUN)/icmbnd
rdisp/wp_no_enq 1
rdisp/wp_no_vb 2
rdisp/wp_no_vb2 2
rdisp/wp_no_spo 10
abap/buffersize 9900000
zcsa/table_buffer_area 108003328
rtbb/buffer_length 60000
rsdb/cua/buffersize 24000
zcsa/presentation_buffer_area 28166144
rdisp/appc_ca_blk_no 2000
rdisp/wp_ca_blk_no 1000
rsdb/ntab/entrycount 68500
rsdb/ntab/ftabsize 100000
rsdb/ntab/irbdsize 20000
rsdb/ntab/sntabsize 3995
abap/use_paging 0
ztta/roll_first 1024
rdisp/keepalive_timeout 8000
ztta/roll_area 9000960
rdisp/ROLL_SHM 16384
rdisp/ROLL_MAXFS 32768
rdisp/PG_SHM 16384
rdisp/PG_MAXFS 200064
abap/heap_area_dia 2012217344
abap/heap_area_nondia 2012217344
abap/heap_area_total 2012217344
abap/heaplimit 40894464
abap/swap_reserve 20971520
ztta/roll_extension 2101346304
em/initial_size_MB 4092
em/blocksize_KB 4096
em/stat_log_size_MB 20
em/stat_log_timeout 0
install/codepage/appl_server 4102
ipc/shm_psize_10 500000000
ipc/shm_psize_14 0
ipc/shm_psize_18 0
ipc/shm_psize_19 0
ipc/shm_psize_30 -10
ipc/shm_psize_40 500000000
ipc/shm_psize_41 0
ipc/shm_psize_51 -10
ipc/shm_psize_52 -10
ipc/shm_psize_54 -10
ipc/shm_psize_55 -10
ipc/shm_psize_57 -10
ipc/shm_psize_58 -10
I already generated EWA report and I got the following result:
Performance Evaluation
The following table shows the average response times for various task types:
Task type Dialog Avg. Resp. Avg. CPU Avg. Wait Avg. Load Avg. DB Avg. GUI
DIALOG 212990 1595.2 257.7 31.0 5.0 622.2 136.8
RFC 2904 11876.4 192.1 33.1 1.4 10574.2 0.0
UPDATE 86257 116.1 28.4 2.1 2.9 58.1 0.0
UPDATE2 1100 84.6 16.9 1.3 1.4 48.2 0.0
BATCH 11600 189360.5 46218.1 5.5 3.7 132313.5 0.0
SPOOL 9989 1686.8 37.1 55.6 0.3 49.2 0.0
1.1. Current Workload
The following table lists the number of current users (measured from our workload analysis) in your system.
Low Activity Medium Activity High Activity Total Users
162 119 6 287
1.2. Performance Evaluation
Task Time Steps Avg. Response Avg. CPU Avg. Database
Dia 08-09 3726 1343 137 889
Dia 09-10 19990 1003 174 620
Dia 10-11 20603 1747 112 630
Dia 11-12 27934 2437 239 612
Dia 12-13 18921 2737 235 858
Dia 13-14 21579 2163 349 549
Dia 16-17 22529 1134 230 703
Dia 17-18 12189 1709 561 991
Dia 19-20 5840 1550 414 967
Dia 20-21 4951 1294 176 454
Task Reference for Avg. Response Time (ms) Reference for Avg. DB time (ms)
Dia 1200 600
Upd 2400 1200
HTTP 1200 600
Please advice.
Regards,
Ahmed -
Windows 8.1 File System Performance Down Compared to Windows 7
I have a good workstation and a fast SSD array as my boot volume.
Ever since installing Windows 8.1 I have found the file system performance to be somewhat slower than that of Windows 7.
There's nothing wrong with my setup - in fact it runs as stably as it did under Windows 7 on the same hardware with a similar configuration.
The NTFS file system simply isn't quite as responsive on Windows 8.1.
For example, under Windows 7 I could open Windows Explorer, navigate to the root folder of C:, select all the files and folders, then choose
Properties. The system would count up all the files in all the folders at a rate of about
30,000 files per second
the first time, then about 50,000 files per second the next time, when all the file system data was already cached in RAM.
Windows 8.1 will enumerate roughly
10,000 files per second the first time, and around
18,000 files per second the second time -
a roughly 1 to 3 slowdown. The reduced speed once the data is cached in RAM implies that something in the operating system is the bottleneck.
Not every operation is slower. I've benchmarked raw disk I/O, and Windows 8.1 can sustain almost the same data rate, though the top speed is a little lower. For example, Windows 7 vs. 8 comparisons using the ATTO speed benchmark:
Windows 7:
Windows 8:
-Noel
Detailed how-to in my eBooks:
Configure The Windows 7 "To Work" Options
Configure The Windows 8 "To Work" OptionsNo worries, and thanks for your response.
The problem can be characterized most quickly by the slowdown in enumerating files in folders. Unfortunately, besides some benchmarks that show only an incremental degradation in file read/write performance, I don't have any good before/after
measurements of other actual file operations.
Since posting the above I have verified:
My system has 8dot3 support disbled (same as my Windows 7 setup did).
Core Parking is disabled; CPU benchmarks are roughly equivalent to what they were.
File system caching is configured the same.
CHKDSK reports no problems
C:\TEMP>fsutil fsinfo ntfsInfo C:
NTFS Volume Serial Number : 0xdc00eddf00edc11e
NTFS Version : 3.1
LFS Version : 2.0
Number Sectors : 0x00000000df846fff
Total Clusters : 0x000000001bf08dff
Free Clusters : 0x000000000c9c57c5
Total Reserved : 0x0000000000001020
Bytes Per Sector : 512
Bytes Per Physical Sector : 512
Bytes Per Cluster : 4096
Bytes Per FileRecord Segment : 1024
Clusters Per FileRecord Segment : 0
Mft Valid Data Length : 0x0000000053f00000
Mft Start Lcn : 0x00000000000c0000
Mft2 Start Lcn : 0x0000000000000002
Mft Zone Start : 0x0000000008ad8180
Mft Zone End : 0x0000000008ade6a0
Resource Manager Identifier : 2AFD1794-8CEE-11E1-90F4-005056C00008
C:\TEMP>fsutil fsinfo volumeinfo c:
Volume Name : C - NoelC4 SSD
Volume Serial Number : 0xedc11e
Max Component Length : 255
File System Name : NTFS
Is ReadWrite
Supports Case-sensitive filenames
Preserves Case of filenames
Supports Unicode in filenames
Preserves & Enforces ACL's
Supports file-based Compression
Supports Disk Quotas
Supports Sparse files
Supports Reparse Points
Supports Object Identifiers
Supports Encrypted File System
Supports Named Streams
Supports Transactions
Supports Hard Links
Supports Extended Attributes
Supports Open By FileID
Supports USN Journal
I am continuing to investigate:
Whether file system fragmentation could be an issue. I think not, since I measured the slowdown immediately after installing Windows 8.1.
All of the settings in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
Thank you in advance for any and all suggestions.
-Noel
Detailed how-to in my eBooks:
Configure The Windows 7 "To Work" Options
Configure The Windows 8 "To Work" Options -
Measuring the performance of Networking code
Lately I've had renewed interest in Java networking, and been doing some reading on various ways of optimizing networking code.
But then it hit me.
I dont know any way of benchmarking IO/Networking code. To take a simple example, how exactly am I supposed to know if read(buf,i,len) is more efficient than read() ? or how do I know the performance difference between setting sendBufferSize 8k and 32k? etc
1)
When people say "this networking code is faster than that", I assume they are referring to latency. Correct? Obviously these claims need to be verifiable. How do they do that?
2)
I am aware of Java profilers ( http://java-source.net/open-source/profilers), but most of them measure stuff like CPU, memory, heap, etc - I cant seem to find any profiler that measures Networking code. Should I be looking at OS/System level tools? If so, which ones?
I dont want to make the cardinal sin of blindly optimizing because "people say so". I want to measure the performance and see it with my own eyes.
Appreciate the assistance.
Edited by: GizmoC on Apr 23, 2008 11:53 PMIf you're not prepared to assume they know what they're talking about, why do you assume that you know what they're talking about?Ok, so what criteria determine if a certain piece of "networking code" is better/faster than another? My guess is: latency, CPU usage, memory usage - that's all I can think of. Anyway, I think we are derailing here.
The rest of your problem is trivial. All you have to do is time a large download under the various conditions of interest.1)
hmm.. well for my purpose I am mainly interested in latency. I am writing a SOCKS server which is currently encapsulating multiplayer game data. Currently I pay an apprx 100 latency overhead - I dont understand why.. considering both the SOCKS client (my game) and SOCKS server are localhost. And I dont think merely reading a few bytes of SOCKS header information can potentially cause such an overhead.
2)
Let's say I make certain changes to my networking code which results in a slightly faster download - however can I assume that this will also mean lower latency while gaming? Game traffic is extremely sporadic, unlike a regular HTTP download which is a continuous stream of bytes.
3)
"timing a large download" implies that I am using some kind of external mechanism to test my networking performance. Though this sounds like a pragmatic solution, I think there ought to be a formal finely grained test harness that tests networking performance in Java, no? -
Some problem about SAP R/3 ~ I need some detail solutions and suggests
I need some detail solutions and suggests about below these problems:
Problem 1: SAP Management Console cannot start successfully
Problem 1.1: Click on SAP Management Console, but yellow light continues for a long period of time.
Problem 1.2: In DOS, startsap command cannot start SAP R/3.
Problem 1.3: Oracle 9i database automatically shutdown by itself.
Problem 1.4: There is very low disk storage left (say less than 50MB) in the hard disk where Oracle 9i database is installed in the server.
Problem 2: Problems in User Maintenance and Security of the SAP R/3 System
Problem 2.1: Super user account password was lost (e.g. SAP* password was lost)
Problem 2.2: Super users DDIC and SAP* were dropped in table usr02 in Oracle.
Problem 2.3: Some users have been locked or deleted by an ABAP programmer who has been granted with almost superuser profiles. For example, an ABAP programmer has been granted a profile of SAP_ALL and SAP_NEW but the system administrator would like to restrict all programmers form using SU01, SU02, SM01, so that no programmers can maintain other user's accounts.
Problem 3: Problems in the configuration of client copy
Problem 3.1: A copied client from the Client 000 cannot be customized.
Problem 3.2: No sample data in IDES after a successful client copy.
Problem 3.3: Logging on without being authorized. A new client is created and client copied and transported successfully. However, anyone can log into the system using user SAP* with the default password PASS.
Problem 4: Problems in the installation of SAP R/3 Server
Problem 4.1: Computer Name of the SAP R/3 server has been changed after the full installation of Oracle 9i and SAP R/3.
Problem 4.2: A network card of a server was faulty and it was replaced by a new network card but the SAP R/3 license was expired.
Problem 4.3: You would like to reinstall SAP R/3 on a server which has previously installed with SAP R/3 but the same error message appears during the re-installation.
Problem 5: Problems in the backup and recovery of Oracle 9i Database
Problem 5.1: A redo log file was lost and the database could not be started.
Problem 5.2: A group of data files were accidentally deleted and the database could not be started.
Problem 5.3: Both the online redo log files and archived redo log files have been damaged.
Problem 6: General problems regarding the general operations and the connection to the SAP R/3 System
Problem 6.1: After a reboot of the Windows 2003 Server, SAP service is not automatically started.
Problem 6.2: Some users complained that the performance of SAP R/3 is really very slow.
Problem 6.3: A user complained that his/her password was correct but he/she could not lock on the client because it was locked.Problem 2
2.1 If user account of the sap* is lost u can retrive by loging into os level as sidadm type this command
DELETE SAP<sid>.USR02 where BNAME='SAP*' AND MANDT=100
This 100 is the client in which u want to delete the sap*
after that restart the server and login as sap* with the default password as pass
there is also another way of doing this if needed u can catch me at [email protected] -
Degraded system performance - possibly caused by external LaCie HD
I'm stumped over what to do to solve a serious performance problem with my iMac. Here's the setup:
Prior to today, I've been running:
An iMac Intel Core 2 Duo 17" (late 2006). The guts of it all OEM: 1 GB (2x512) RAM, 250 GB HD, SuperDrive.
A 500 GB LaCie USB 2.0 External HD.
Two external optical drives; one that can read/burn CDs and one that can read//burn DVDs/CDs. Both of these are connected via FireWire
Operating system: Mac OS 10.4.x
Network: Wireless Airport on iMac to DLink wireless router to Sympatico DSL. Using OpenDNS
Over the last few weeks, system performance (and by this, I mean basic tasks like copying a file or selecting a menu option or switching between apps) has degraded to the point where it could take several seconds simply switching from one app to another. No new software or devices were added over this time.
Running Apple's Hard Disk Utility, I discovered some "Minor" problems on the internal hard drive. I booted up in safe mode, which automatically forces a disk repair, and, upon running disk utility again, the disk appears fine.
Performance problems persisted.
I ran disk utility on the external drive. No problems.
Earlier this week, I decided to upgrade the OS.
The upgrade took 5+ hours to install. (I'd heard it can take a while but 5 hours seems silly).
Performance problems persisted.
Last night, I loaded everything I needed on the internal drive and backed up to the external drive. THen I proceeded to do a clean install of the OS 10.5.6. I ran Software Update to get the latest Java machine and other updates.
Still got problems. (Copying 2 GB of files I'd backed up on my external drive back to the internal drive took more than 2 hours! via USB 2.0)
Ran Hard Disk Utility again. Everything's fine. Still have performance problems.
Shut power down on all external drives and re-booted.
Ah-ha! Now we're gettin' somewhere. Performance seems normal. System is responding to basic commands in the what seems like a normal way.
But I need those external drives. First bright idea: Perhaps it's the cheap Dyntech 5-port USB hub that's gumming things up. To test, I disconnected the hub and connected the LaCie external drive directly to the iMac.
Back to the same old problem.
Ok -- so it seems pretty clear that the iMac and the LaCie drive, which once got along famously, are now like an old married couple -- grumpy and slow to respond to each other's requests. Again -- neither the LaCie drive nor the iMac internal drive report any problems via Hard Disk Utility. Files are being successfully copied back and forth albeit at a mind-numbingly slow speed. But for all intents and purposes, so long as the iMac is attached to the LaCie drive, it has all the zip and functional usefulness of my old Centris 610.
Any and all suggestions gratefully welcomed.True unless you frequently attach and detach the drive so that indexing never is completed. To see if this may be the case with the drive attached, open Spotlight preferences, click on the Privacy tab, then drag the drive's icon into the list.
You can also try a few other things, but start by downloading and installing AppleJack - VersionTracker or MacUpdate. Read instructions and run the program to do some cleanup. For other maintenance tips see:
Kappy's Personal Suggestions for OS X Maintenance
For disk repairs use Disk Utility. For situations DU cannot handle the best third-party utilities are: Disk Warrior; DW only fixes problems with the disk directory, but most disk problems are caused by directory corruption; Disk Warrior 4.x is now Intel Mac compatible. TechTool Pro provides additional repair options including file repair and recovery, system diagnostics, and disk defragmentation. TechTool Pro 4.5.1 or higher are Intel Mac compatible; Drive Genius is similar to TechTool Pro in terms of the various repair services provided. Versions 1.5.1 or later are Intel Mac compatible.
OS X performs certain maintenance functions that are scheduled to occur on a daily, weekly, or monthly period. The maintenance scripts run in the early AM only if the computer is turned on 24/7 (no sleep.) If this isn't the case, then an excellent solution is to download and install a shareware utility such as Macaroni, JAW PseudoAnacron, or Anacron that will automate the maintenance activity regardless of whether the computer is turned off or asleep. Dependence upon third-party utilities to run the periodic maintenance scripts had been significantly reduced in Tiger and Leopard.
OS X automatically defrags files less than 20 MBs in size, so unless you have a disk full of very large files there's little need for defragmenting the hard drive. As for virus protection there are few if any such animals affecting OS X. You can protect the computer easily using the freeware Open Source virus protection software ClamXAV. Personally I would avoid most commercial anti-virus software because of their potential for causing problems.
I would also recommend downloading the shareware utility TinkerTool System that you can use for periodic maintenance such as removing old logfiles and archives, clearing caches, etc.
For emergency repairs install the freeware utility Applejack. If you cannot start up in OS X, you may be able to start in single-user mode from which you can run Applejack to do a whole set of repair and maintenance routines from the commandline. Note that AppleJack 1.5 is required for Leopard.
When you install any new system software or updates be sure to repair the hard drive and permissions beforehand. I also recommend booting into safe mode before doing system software updates.
Get an external Firewire drive at least equal in size to the internal hard drive and make (and maintain) a bootable clone/backup. You can make a bootable clone using the Restore option of Disk Utility. You can also make and maintain clones with good backup software. My personal recommendations are (order is not significant):
1. Retrospect Desktop (Commercial - not yet universal binary)
2. Synchronize! Pro X (Commercial)
3. Synk (Backup, Standard, or Pro)
4. Deja Vu (Shareware)
5. Carbon Copy Cloner (Donationware)
6. SuperDuper! (Commercial)
7. Intego Personal Backup (Commercial)
8. Data Backup (Commercial)
9. SilverKeeper 2.0 (Freeware)
10. MimMac (Commercial)
11. CloneTool Hatchery (Shareware)
12. Clone X (Commercial)
The following utilities can also be used for backup, but cannot create bootable clones:
1. Backup (requires a .Mac account with Apple both to get the software and to use it.)
2. Toast
3. Impression
4. arRSync
Apple's Backup is a full backup tool capable of also backing up across multiple media such as CD/DVD. However, it cannot create bootable backups. It is primarily an "archiving" utility as are the other two.
Impression and Toast are disk image based backups, only. Particularly useful if you need to backup to CD/DVD across multiple media.
Visit The XLab FAQs and read the FAQs on maintenance, optimization, virus protection, and backup and restore.
Additional suggestions will be found in Mac Maintenance Quick Assist.
Referenced software can be found at www.versiontracker.com and www.macupdate.com. -
Some Thoughts On An OWB Performance/Testing Framework
Hi all,
I've been giving some thought recently to how we could build a performance tuning and testing framework around Oracle Warehouse Builder. Specifically, I'm looking at was in which we can use some of the performance tuning techniques described in Cary Millsap/Jeff Holt's book "Optimizing Oracle Performance" to profile and performance tune mappings and process flows, and to use some of the ideas put forward in Kent Graziano's Agile Methods in Data Warehousing paper http://www.rmoug.org/td2005pres/graziano.zip and Steven Feuernstein's utPLSQL project http://utplsql.sourceforge.net/ to provide an agile/test-driven way of developing mappings, process flows and modules. The aim of this is to ensure that the mappings we put together are as efficient as possible, work individually and together as expected, and are quick to develop and test.
At the moment, most people's experience of performance tuning OWB mappings is firstly to see if it runs set-based rather than row-based, then perhaps to extract the main SQL statement and run an explain plan on it, then check to make sure indexes etc are being used ok. This involves a lot of manual work, doesn't factor in the data available from the wait interface, doesn't store the execution plans anywhere, and doesn't really scale out to encompass entire batches of mapping (process flows).
For some background reading on Cary Millsap/Jeff Holt's approach to profiling and performance tuning, take a look at http://www.rittman.net/archives/000961.html and http://www.rittman.net/work_stuff/extended_sql_trace_and_tkprof.htm. Basically, this approach traces the SQL that is generated by a batch file (read: mapping) and generates a file that can be later used to replay the SQL commands used, the explain plans that relate to the SQL, details on what wait events occurred during execution, and provides at the end a profile listing that tells you where the majority of your time went during the batch. It's currently the "preferred" way of tuning applications as it focuses all the tuning effort on precisely the issues that are slowing your mappings down, rather than database-wide issues that might not be relevant to your mapping.
For some background information on agile methods, take a look at Kent Graziano's paper, this one on test-driven development http://c2.com/cgi/wiki?TestDrivenDevelopment , this one http://martinfowler.com/articles/evodb.html on agile database development, and the sourceforge project for utPLSQL http://utplsql.sourceforge.net/. What this is all about is having a development methodology that builds in quality but is flexible and responsive to changes in customer requirements. The benefit of using utPLSQL (or any unit testing framework) is that you can automatically check your altered mappings to see that they still return logically correct data, meaning that you can make changes to your data model and mappings whilst still being sure that it'll still compile and run.
Observations On The Current State of OWB Performance Tuning & Testing
At present, when you build OWB mappings, there is no way (within the OWB GUI) to determine how "efficient" the mapping is. Often, when building the mapping against development data, the mapping executes quickly and yet when run against the full dataset, problems then occur. The mapping is built "in isolation" from its effect on the database and there is no handy tool for determining how efficient the SQL is.
OWB doesn't come with any methodology or testing framework, and so apart from checking that the mapping has run, and that the number of rows inserted/updated/deleted looks correct, there is nothing really to tell you whether there are any "logical" errors. Also, there is no OWB methodology for integration testing, unit testing, or any other sort of testing, and we need to put one in place. Note - OWB does come with auditing, error reporting and so on, but there's no framework for guiding the user through a regime of unit testing, integration testing, system testing and so on, which I would imagine more complete developer GUIs come with. Certainly there's no built in ability to use testing frameworks such as utPLSQL, or a part of the application that let's you record whether a mapping has been tested, and changes the test status of mappings when you make changes to ones that they are dependent on.
OWB is effectively a code generator, and this code runs against the Oracle database just like any other SQL or PL/SQL code. There is a whole world of information and techniques out there for tuning SQL and PL/SQL, and one particular methodology that we quite like is the Cary Millsap/Jeff Holt "Extended SQL Trace" approach that uses Oracle diagnostic events to find out exactly what went on during the running of a batch of SQL commands. We've been pretty successful using this approach to tune customer applications and batch jobs, and we'd like to use this, together with the "Method R" performance profiling methodology detailed in the book "Optimising Oracle Performance", as a way of tuning our generated mapping code.
Whilst we want to build performance and quality into our code, we also don't want to overburden developers with an unwieldy development approach, because what we'll know will happen is that after a short amount of time, it won't get used. Given that we want this framework to be used for all mappings, it's got to be easy to use, cause minimal overhead, and have results that are easy to interpret. If at all possible, we'd like to use some of the ideas from agile methodologies such as eXtreme Programming, SCRUM and so on to build in quality but minimise paperwork.
We also recognise that there are quite a few settings that can be changed at a session and instance level, that can have an effect on the performance of a mapping. Some of these include initialisation parameters that can change the amount of memory assigned to the instance and the amount of memory subsequently assigned to caches, sort areas and the like, preferences that can be set so that indexes are preferred over table scans, and other such "tweaks" to the Oracle instance we're working with. For reference, the version of Oracle we're going to use to both run our code and store our data is Oracle 10g 10.1.0.3 Enterprise Edition, running on Sun Solaris 64-bit.
Some initial thoughts on how this could be accomplished
- Put in place some method for automatically / easily generating explain plans for OWB mappings (issue - this is only relevant for mappings that are set based, and what about pre- and post- mapping triggers)
- Put in place a method for starting and stopping an event 10046 extended SQL trace for a mapping
- Put in place a way of detecting whether the explain plan / cost / timing for a mapping changes significantly
- Put in place a way of tracing a collection of mappings, i.e. a process flow
- The way of enabling tracing should either be built in by default, or easily added by the OWB developer. Ideally it should be simple to switch it on or off (perhaps levels of event 10046 tracing?)
- Perhaps store trace results in a repository? reporting? exception reporting?
at an instance level, come up with some stock recommendations for instance settings
- identify the set of instance and session settings that are relevant for ETL jobs, and determine what effect changing them has on the ETL job
- put in place a regime that records key instance indicators (STATSPACK / ASH) and allows reports to be run / exceptions to be reported
- Incorporate any existing "performance best practices" for OWB development
- define a lightweight regime for unit testing (as per agile methodologies) and a way of automating it (utPLSQL?) and of recording the results so we can check the status of dependent mappings easily
other ideas around testing?
Suggested Approach
- For mapping tracing and generation of explain plans, a pre- and post-mapping trigger that turns extended SQL trace on and off, places the trace file in a predetermined spot, formats the trace file and dumps the output to repository tables.
- For process flows, something that does the same at the start and end of the process. Issue - how might this conflict with mapping level tracing controls?
- Within the mapping/process flow tracing repository, store the values of historic executions, have an exception report that tells you when a mapping execution time varies by a certain amount
- get the standard set of preferred initialisation parameters for a DW, use these as the start point for the stock recommendations. Identify which ones have an effect on an ETL job.
- identify the standard steps Oracle recommends for getting the best performance out of OWB (workstation RAM etc) - see OWB Performance Tips http://www.rittman.net/archives/001031.html and Optimizing Oracle Warehouse Builder Performance http://www.oracle.com/technology/products/warehouse/pdf/OWBPerformanceWP.pdf
- Investigate what additional tuning options and advisers are available with 10g
- Investigate the effect of system statistics & come up with recommendations.
Further reading / resources:
- Diagnosing Performance Problems Using Extended Trace" Cary Millsap
http://otn.oracle.com/oramag/oracle/04-jan/o14tech_perf.html
- "Performance Tuning With STATSPACK" Connie Dialeris and Graham Wood
http://www.oracle.com/oramag/oracle/00-sep/index.html?o50tun.html
- "Performance Tuning with Statspack, Part II" Connie Dialeris and Graham Wood
http://otn.oracle.com/deploy/performance/pdf/statspack_tuning_otn_new.pdf
- "Analyzing a Statspack Report: A Guide to the Detail Pages" Connie Dialeris and Graham Wood
http://www.oracle.com/oramag/oracle/00-nov/index.html?o60tun_ol.html
- "Why Isn't Oracle Using My Index?!" Jonathan Lewis
http://www.dbazine.com/jlewis12.shtml
- "Performance Tuning Enhancements in Oracle Database 10g" Oracle-Base.com
http://www.oracle-base.com/articles/10g/PerformanceTuningEnhancements10g.php
- Introduction to Method R and Hotsos Profiler (Cary Millsap, free reg. required)
http://www.hotsos.com/downloads/registered/00000029.pdf
- Exploring the Oracle Database 10g Wait Interface (Robin Schumacher)
http://otn.oracle.com/pub/articles/schumacher_10gwait.html
- Article referencing an OWB forum posting
http://www.rittman.net/archives/001031.html
- How do I inspect error logs in Warehouse Builder? - OWB Exchange tip
http://www.oracle.com/technology/products/warehouse/pdf/Cases/case10.pdf
- What is the fastest way to load data from files? - OWB exchange tip
http://www.oracle.com/technology/products/warehouse/pdf/Cases/case1.pdf
- Optimizing Oracle Warehouse Builder Performance - Oracle White Paper
http://www.oracle.com/technology/products/warehouse/pdf/OWBPerformanceWP.pdf
- OWB Advanced ETL topics - including sections on operating modes, partition exchange loading
http://www.oracle.com/technology/products/warehouse/selfserv_edu/advanced_ETL.html
- Niall Litchfield's Simple Profiler (a creative commons-licensed trace file profiler, based on Oracle Trace Analyzer, that displays the response time profile through HTMLDB. Perhaps could be used as the basis for the repository/reporting part of the project)
http://www.niall.litchfield.dial.pipex.com/SimpleProfiler/SimpleProfiler.html
- Welcome to the utPLSQL Project - a PL/SQL unit testing framework by Steven Feuernstein. Could be useful for automating the process of unit testing mappings.
http://utplsql.sourceforge.net/
Relevant postings from the OTN OWB Forum
- Bulk Insert - Configuration Settings in OWB
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=291269&tstart=30&trange=15
- Default Performance Parameters
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=213265&message=588419&q=706572666f726d616e6365#588419
- Performance Improvements
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=270350&message=820365&q=706572666f726d616e6365#820365
- Map Operator performance
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=238184&message=681817&q=706572666f726d616e6365#681817
- Performance of mapping with FILTER
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=273221&message=830732&q=706572666f726d616e6365#830732
- Poor mapping performance
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=275059&message=838812&q=706572666f726d616e6365#838812
- Optimizing Mapping Performance With OWB
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=269552&message=815295&q=706572666f726d616e6365#815295
- Performance of mapping with FILTER
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=273221&message=830732&q=706572666f726d616e6365#830732
- Performance of the OWB-Repository
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=66271&message=66271&q=706572666f726d616e6365#66271
- One large JOIN or many small ones?
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=202784&message=553503&q=706572666f726d616e6365#553503
- NATIVE PL SQL with OWB9i
http://forums.oracle.com/forums/thread.jsp?forum=57&thread=270273&message=818390&q=706572666f726d616e6365#818390
Next Steps
Although this is something that I'll be progressing with anyway, I'd appreciate any comment from existing OWB users as to how they currently perform performance tuning and testing. Whilst these are perhaps two distinct subject areas, they can be thought of as the core of an "OWB Best Practices" framework and I'd be prepared to write the results up as a freely downloadable whitepaper. With this in mind, does anyone have an existing best practices for tuning or testing, have they tried using SQL trace and TKPROF to profile mappings and process flows, or have you used a unit testing framework such as utPLSQL to automatically test the set of mappings that make up your project?
Any feedback, add it to this forum posting or send directly through to me at [email protected]. I'll report back on a proposed approach in due course.Hi Mark,
interesting post, but I think you may be focusing on the trees, and losing sight of the forest.
Coincidentally, I've been giving quite a lot of thought lately to some aspects of your post. They relate to some new stuff I'm doing. Maybe I'll be able to answer in more detail later, but I do have a few preliminary thoughts.
1. 'How efficient is the generated code' is a perennial topic. There are still some people who believe that a code generator like OWB cannot be in the same league as hand-crafted SQL. I answered that question quite definitely: "We carefully timed execution of full-size runs of both the original code and the OWB versions. Take it from me, the code that OWB generates is every bit as fast as the very best hand-crafted and fully tuned code that an expert programmer can produce."
The link is http://www.donnapkelly.pwp.blueyonder.co.uk/generated_code.htm
That said, it still behooves the developer to have a solid understanding of what the generated code will actually do, such as how it will take advantage of indexes, and so on. If not, the developer can create such monstrosities as lookups into an un-indexed field (I've seen that).
2. The real issue is not how fast any particular generated mapping runs, but whether or not the system as a whole is fit for purpose. Most often, that means: does it fit within its batch update window? My technique is to dump the process flow into Microsoft Project, and then to add the timings for each process. That creates a Critical Path, and then I can visually inspect it for any bottleneck processes. I usually find that there are not more than one or two dogs. I'll concentrate on those, fix them, and re-do the flow timings. I would add this: the dogs I have seen, I have invariably replaced. They were just garbage, They did not need tuning at all - just scrapping.
Gee, but this whole thing is minimum effort and real fast! I generally figure that it takes maybe a day or two (max) to soup up system performance to the point where it whizzes.
Fact is, I don't really care whether there are a lot of sub-optimal processes. All I really care about is performance of the system as a whole. This technique seems to work for me. 'Course, it depends on architecting the thing properly in the first place. Otherwise, no amount of tuning of going to help worth a darn.
Conversely (re. my note about replacing dogs) I do not think I have ever tuned a piece of OWB-generated code. Never found a need to. Not once. Not ever.
That's not to say I do not recognise the value of playing with deployment configuration parameters. Obviously, I set auditing=none, and operating mode=set based, and sometimes, I play with a couple of different target environments to fool around with partitioning, for example. Nonetheless, if it is not a switch or a knob inside OWB, I do not touch it. This is in line with my dictat that you shall use no other tool than OWB to develop data warehouses. (And that includes all documentation!). (OK, I'll accept MS Project)
Finally, you raise the concept of a 'testing framework'. This is a major part of what I am working on at the moment. This is a tough one. Clearly, the developer must unit test each mapping in a design-model-deploy-execute cycle, paying attention to both functionality and performance. When the developer is satisifed, that mapping will be marked as 'done' in the project workbook. Mappings will form part of a stream, executed as a process flow. Each process flow will usually terminate in a dimension, a fact, or an aggregate. Each process flow will be tested as an integrated whole. There will be test strategies devised, and test cases constructed. There will finally be system tests, to verify the validity of the system as a production-grade whole. (stuff like recovery/restart, late-arriving data, and so on)
For me, I use EDM (TM). That's the methodology I created (and trademarked) twenty years ago: Evolutionary Development Methodology (TM). This is a spiral methodology based around prototyping cycles within Stage cycles within Release cycles. For OWB, a Stage would consist (say) of a Dimensional update. What I am trying to now is to graft this within a traditional waterfall methodology, and I am having the same difficulties I had when I tried to do it then.
All suggestions on how to do that grafting gratefully received!
To sum up, I 'm kinda at a loss as to why you want to go deep into OWB-generated code performance stuff. Jeepers, architect the thing right, and the code runs fast enough for anyone. I've worked on ultra-large OWB systems, including validating the largest data warehouse in the UK. I've never found any value in 'tuning' the code. What I'd like you to comment on is this: what will it buy you?
Cheers,
Donna
http://www.donnapkelly.pwp.blueyonder.co.uk -
Hi Experts,
We are running APO DP process chain with parallel processing in our company, we are experiencing some issues regarding run time of process chain, need your help on below points;
- What are the ways we can optimize process chain run time.
- Special points we need to take care of in case of parallel processing profiles used in process chain.
- Any specific sequence to be followed for different processes in process chain - if there is some best practice followed.
- Any notes suggesting ways to improve system performance for APO version 7 with different enhancement packs 1 and 2.
Any help will be really appreciated.
RegardsHI Neelesh,
There are many ways to optimize performance of the process chains (background jobs) in APO system.
Firstly I would recommend you to identify the pain areas (steps) which are completing with more runtimes. Then each one of the step has got different approaches to decrease the runtime.
Like you may end up with steps like infopackage executions, DTPs, DP mass processing jobs etc which might be running with more runtimes. So now target each one of them differently and find out the ways to optimize. At the same time the approach you follow should be technically possible with basis perspective (system load and utilization) as well.
And coming to parallel processing, you can use parallel processing for different for different jobs. You can further r explore on the same using parallel processing. Like loading an infocube, mass processing, infopackage execution, DTP, TSCOPY etc.
Check the below link for more info
Performance problems in DP mass processing
Let me know if you require further info.
Regards,
Raj -
Problems on measuring temperature using thermocouples connected to SCB-68 terminal block
I have problems on measuring temperature using thermocouples connected to SCB-68 terminal block.The thermocouples were connected to the differential channel 1 and a return path for the instrumentation amplifier bias currents and a 4 Hz low pass filter were both developed. But the readings were floating and jumped randomly between 0 and 200 Deg Cel abnormally.The CJC on the terminal block was disabled and a new one was developed by myself. However, the readings for the CJC were accurate and quite stable. So what is the reason for the floating of thermocouple readings? Did I miss anything that I need to do? Thanks.
Are your TCs floating or grounded? Basically, if your TCs are mounted to a metal test article and the object is grounded to earth, then, the TCs are grounded -- and very likely contaminated with ground loops. You will need to reference the TC inputs accordingly. These ground loops will cause the TC data readings to float - recall that TC readings are in the millivolt level. It does not take much of a ground loop to ruin a TC measurement.
Also, try this... first, set the filter to 10KHz and sample for a few seconds at 20 KHz (take 32768 data points). Now subtract the mean value from the trace and perform an FFT on the data. Look for the dominant frequency. Is it 60 Hz or some multiple? If yes, the likely cause is a ground reference problem.
Maybe you are looking for
-
Error while offsetting a variable
Hello Experts I want to display the data for last 5 years in my query. So I tried using the SAP exit variable Current Calendar Year (0CYEAR) and the offset it by 5. However, I am getting the following error message for the query "System error in prog
-
Using Javascript To UnCheck A Checkbox
Hi, I have a select list with two options in. When one of them is selected I have two checkboxes that I want hiding and setting to unselected. I can hide and show them fine using *$x_HideItemRow* and *$x_ShowItemRow*, but when I hide them I want the
-
My location in Find My iPhone not clear.Fix the map
My location in find my iphone not clear..
-
Two Step Confirmation Transfer Order with Radiofrquency
Friends & Gurus. Can I use 2 step confirmation with RF? Which transaction should I use? I can do it with regular SAP transactions, but as soon as I do it with RF transactions both Pick and Transfer are confirmed. Thanks. Solved, yes you can. Edited b
-
Specify colors in drop down lists
A client has requested that their drop down menu options are color coded - is this possible? As an example, they have a drop down with 3 choices (Completed, In Progress, Not Started). They want to attribute a color to each option (ie Complete - Green