RE: CPU Wait troubleshoot

  • From: "Osborne, Chris" <Chris.Osborne@xxxxxx>
  • To: Stefan Koehler <contact@xxxxxxxx>, "cstephens16@xxxxxxxxx" <cstephens16@xxxxxxxxx>
  • Date: Mon, 18 Apr 2016 15:51:23 +0000

Hi Stefan,

Fair enough, I was aware that I was oversimplifying as I was just dashing off a 
quick email, and perhaps simplified too much :-)
Clearly there are other 'normal' wait states that sessions can be in. Log File 
Sync being a big one that springs to mind.

Still  I find the ratio of IO to CPU to be a good enough rule  of thumb to get 
you started, and the real answers come from testing as each app will be 
slightly different.

I should have been clearer that I was suggesting a 'starting point' for testing 
and not a hard limit. Still this is better IMO, than the opposite of starting 
way to high, and tuning down the way (or more likely, up the way) when you 
start to get connection pool exhaustion.

Chris







-----Original Message-----
From: Stefan Koehler [mailto:contact@xxxxxxxx]
Sent: 18 April 2016 16:46
To: Osborne, Chris <Chris.Osborne@xxxxxx>; cstephens16@xxxxxxxxx
Cc: oracle-l@xxxxxxxxxxxxx
Subject: RE: CPU Wait troubleshoot

Hello Christopher,

My understanding of the RWP recommendation is that max session should
be between 1 and 10 times the number of cores, depending on the percentage 
time spent on IO versus CPU for your app.

Almost correct. It is not just about I/O versus CPU as there are many many 
other non-CPU (waiting) states as well. Max session of 1 time the number of 
cores would mean an absolute perfect world as the application would have no 
waiting state at all, which is not very "real world". In addition you also have 
to consider multi-threading up to a specific point. Max session of a small 
multiple up to 10 times the number of cores would be the range.


On the rare occasions when we get in early and have time for full
testing, I like to have each app server with a connection pool set very low, 
and then test for performance versus requirement, and then only go up the way 
if we don't meet the requirements.

You can only go up, if the "very low" connection pool is not already exhausting 
the hardware (CPU) capacity. SwingBench (with high frequency OE) is a nice 
reproducible example of the RWP guideline. Max session of 10 times the number 
of cores is using round about 70 to 80 percent of the CPU capacity in my recent 
benchmarks.

Best Regards
Stefan Koehler

Freelance Oracle performance consultant and researcher
Homepage: http://www.soocs.de
Twitter: @OracleSK

"Osborne, Chris" <Chris.Osborne@xxxxxx> hat am 18. April 2016 um 16:29 
geschrieben:

My understanding of the RWP recommendation is that max session should
be between 1 and 10 times the number of cores, depending on the percentage 
time spent on IO versus CPU for your app.

On a 32 Core system, 320 sessions max, if they are IO intensive.
However, if each session is roughly 50/50 on IO versus CPU, you'll probably 
want a smaller number than 320. As always, testing is your friend.

On the rare occasions when we get in early and have time for full
testing, I like to have each app server with a connection pool set very low, 
and then test for performance versus requirement, and then only go up the way 
if we don't meet the requirements.

Christopher Osborne
Information in this email including any attachments may be privileged, 
confidential and is intended exclusively for the addressee. The views expressed 
may not be official policy, but the personal views of the originator. If you 
have received it in error, please notify the sender by return e-mail and delete 
it from your system. You should not reproduce, distribute, store, retransmit, 
use or disclose its contents to anyone. Please note we reserve the right to 
monitor all e-mail communication through our internal and external networks. 
SKY and the SKY marks are trademarks of Sky plc and Sky International AG and 
are used under licence. Sky UK Limited (Registration No. 2906991), Sky-In-Home 
Service Limited (Registration No. 2067075) and Sky Subscribers Services Limited 
(Registration No. 2340150) are direct or indirect subsidiaries of Sky plc 
(Registration No. 2247735). All of the companies mentioned in this paragraph 
are incorporated in England and Wales and share the same registered office at 
Grant Way, Isleworth, Middlesex TW7 5QD.

Other related posts: