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

From: Stefan Koehler <contact_at_soocs.de>
Date: Thu, 10 Aug 2017 16:47:23 +0200 (CEST)
Message-ID: <1739251299.35064.1502376444103_at_ox.hosteurope.de>


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: _at_OracleSK

> Henry Poras <henry.poras_at_gmail.com> 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

--
http://www.freelists.org/webpage/oracle-l
Received on Thu Aug 10 2017 - 16:47:23 CEST

Original text of this message