Re: Increasing row retrieving speed via net8
Date: Fri, 13 Apr 2012 18:02:21 +0200
Making long story short .
After quick talk with OS Admin I got root access :) and first try was (well second because first I was typing rm -rf / too scary him :) :
strace -p _pid_of_pmdtm_binary -f -c
-f is a must because pmdtm makes like 19 threads and they do actual work I saw something like this
time spent 80% -> futex!!
10% poll 5 % read 5% other stuff .
so only 5% of work time socket was read and most of the time threads was
fighting each other in
somekind of concurency issue :) or feature .
So that explains why messing with sdu , socket buffers, tcp stack buffers and so on gave only minor changes in rows fetched per sec from that tool .
Comparing that to sqlplus , strace gives something like that:
time spent syscall
1 % write
Funny thing is You have to find 'sweet spot' when setting above net
stack / net8 related parameters,
its not about simply increasing them :). You can observe how things are going with strace on sqlplus and checking read syscall arguments , and
how they are changing when You messing for example with sdu size . Tcpdump is quite useful and snapper of coz as we are DBAs . Just remember with 1500 MTU You cant do much , I think jumbo frames and/or GBit interface is the way to go
if cant afford You can do parallelizm via opening many connections and aggregate them in 'smart' way .
Thanks for all comments, now its time for Informatica vendor response :).