same application code - different behavior with kernels 2.4 vs. 2.6
Aviv Greenberg
avivgnet at gmail.com
Fri Apr 30 23:33:41 IDT 2010
Alex Hi,
Looks like in 2.4 your apps spent most of the time waiting for data
(select) - and in 2.6 they spend more time doing I/O (writev). I
assume this is network I/O - but it might be disk. If it's network,
check for things that might worsen network I/O: MTU / Csum offloads /
Net card driver + settings / epoll etc etc - you know the drill :)
--Aviv
On Tue, Apr 27, 2010 at 06:17, Alexander Indenbaum
<alexander.indenbaum at gmail.com> wrote:
> Hey,
>
> I'm playing with a Linux embedded box. Some time ago, we (finally)
> switched from kernel 2.4.36 to 2.6.18.8. Naturally libc was also
> upgraded. What have not changed was the sources of the applications:
> Firefox 2.0 running on top of custom X server. GTK/pango/cairo/etc are
> also identical in both systems. So far so good, yet we have found out
> that the kernel/libc upgrade basically broke the customer's code:
> CSS/Javascript timers driven application, running inside the browser,
> which started to run much slower, from user experience point of view.
> Unfortunately, the customer's user experience is extremely important
> ;)
>
> Black box analysis showed differences in system behavior, see bellow.
> Any idea about what else should be checked are greatly appreciated.
> And yeah, the final goal is a happy customer. Please share you
> thoughts - bounce some ideas.
>
> Thanks in advance,
> ~baum
>
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
> TOP
> 2.4 The system CPU is 5% idle, utilization is between browser and X
> server in 60%-40% ratio.
> 2.6 The system CPU is 80% idle, utilization is between browser and X
> server in 60%-40% ratio.
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------
> STRACE (strace -c -p PID / during 100 secs). NOTE: In case of Firefox,
> it is not a really apple to apple comparison, since only "active
> thread" pid was straced.
> 2.4 kernel - "FAST user experience"
> X server
> % time seconds usecs/call calls errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> 90.70 15.259293 1045 14600 204 select
> 4.55 0.765248 19 39678 11956 read
> 3.59 0.604554 33 18350 2 writev
> 0.52 0.087052 62 1415 munmap
> 0.46 0.077625 3 29071 gettimeofday
> 0.10 0.017304 3 4951 1821 sigreturn
> 0.07 0.011463 8 1415 old_mmap
> 0.01 0.002002 3 764 setitimer
> ------ ----------- ----------- --------- --------- ----------------
> 100.00 16.824541 110244 13983 total
>
> Firefox browser
> ------ ----------- ----------- --------- --------- ----------------
> 47.54 3.022460 1947 1552 select
> 19.00 1.207781 272 4446 poll
> 12.43 0.789926 41 19280 write
> 8.32 0.529035 29 18218 37 readv
> 7.37 0.468285 179 2618 2 writev
> 1.51 0.095897 5 19428 1253 read
> 1.20 0.076559 50 1544 old_mmap
> 0.75 0.047951 7 6426 brk
> 0.64 0.040452 9 4471 ioctl
> 0.58 0.036982 24 1545 munmap
> 0.57 0.035924 2 15927 gettimeofday
> 0.09 0.005809 5 1156 kill
> ------ ----------- ----------- --------- --------- ----------------
> 100.00 6.357061 96611 1292 total
>
> 2.6 kernel - "SLOW user experience"
> X server
> % time seconds usecs/call calls errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> 55.00 0.003374 1 5287 writev
> 35.18 0.002158 0 8580 2217 select
> 9.81 0.000602 0 14486 6008 read
> 0.00 0.000000 0 17114 gettimeofday
> 0.00 0.000000 0 41 munmap
> 0.00 0.000000 0 4454 setitimer
> 0.00 0.000000 0 2543 2479 sigreturn
> 0.00 0.000000 0 41 mmap2
> ------ ----------- ----------- --------- --------- ----------------
> 100.00 0.006134 52546 10704 total
>
> Firefox browser
> % time seconds usecs/call calls errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> 81.95 0.021973 3 7421 writev
> 13.55 0.003634 0 13674 5906 read
> 3.68 0.000986 0 13012 select
> 0.51 0.000138 1 170 stat64
> 0.31 0.000082 1 118 futex
> 0.00 0.000000 0 90 write
> 0.00 0.000000 0 1789 gettimeofday
> 0.00 0.000000 0 249 poll
> ------ ----------- ----------- --------- --------- ----------------
> 100.00 0.026813 36523 5906 total
>
> _______________________________________________
> Linux-il mailing list
> Linux-il at cs.huji.ac.il
> http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
>
More information about the Linux-il
mailing list