Re: LIO/sec per CPU limit? Is it Hardware or Oracle code?

  • From: Stefan Koehler <contact@xxxxxxxx>
  • To: henry.poras@xxxxxxxxx, ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 10 Aug 2017 16:47:23 +0200 (CEST)

Hello Henry,

So, now what?? Why is one server giving me 350k consistent gets/per second 
and the other is ~800k? Is it hardware? /proc/cpuinfo shows the same cpu for 
each box

Have a look at what the CPU is exactly doing on both servers with help of CPU 
performance counters (CPC) and perf. Tanel has written some nice blog posts 
about how to use perf for this purpose:

http://blog.tanelpoder.com/2015/09/21/ram-is-the-new-disk-and-how-to-measure-its-performance-part-2-tools/

http://blog.tanelpoder.com/2015/11/30/ram-is-the-new-disk-and-how-to-measure-its-performance-part-3-cpu-instructions-cycles/

You need to have a reproducible test case that does exactly the same work on 
both systems (e.g. like some self written PL/SQL that loops over and burn CPU).

Best Regards
Stefan Koehler

Independent Oracle performance consultant and researcher
Website: http://www.soocs.de
Twitter: @OracleSK

Henry Poras <henry.poras@xxxxxxxxx> hat am 9. August 2017 um 23:46 
geschrieben:

I  have two identical servers (or so I am told), but application work is 
running 2-3 times slower on one than the other. Using Tanel's snapper, I see 
that all active sessions are all on CPU. Viewing top shows me the same thing, 
each session pegs a cpu. We also found that it wasn't particular SQL that 
slowed down across severs, but it looked like everything was slow. A select 
count(*) from dba_objects showed this behavior as did Jonathan Lewis's 
kill_cpu script. This gave me something to test with. Running a 10046, I saw 
the same amount of resource utilization (parse count, fetch count, cr count, 
...), no contention (wait events), but one server finished 2.5 times faster 
than the other. Looking at session stats through snapper, I see that the 
number of session logical reads per sec (~all of which are consistent reads) 
is ~ 2.5 times higher on one server than the other. That  explains why it 
takes one longer to finish. 

So, now what?? Why is one server giving me 350k consistent gets/per second 
and the other is ~800k? Is it hardware? /proc/cpuinfo shows the same cpu for 
each box. Is it hidden in the Oracle code path?  I realize that not all LIO 
are created equal, but how do I check this? I am running on SE12.1.0.1

Any and all thoughts welcome.

Henry
--
//www.freelists.org/webpage/oracle-l


Other related posts: