linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [resent PATCH] Re: very slow parallel read performance
@ 2001-08-28  1:08 Dieter Nützel
  2001-08-28  0:05 ` Marcelo Tosatti
                   ` (2 more replies)
  0 siblings, 3 replies; 124+ messages in thread
From: Dieter Nützel @ 2001-08-28  1:08 UTC (permalink / raw)
  To: Linux Kernel List; +Cc: Daniel Phillips, ReiserFS List

[-]
> In the real-world case we observed the readahead was actually being
> throttled by the ftp clients.  IO request throttling on the file read
> side would not have prevented cache from overfilling.  Once the cache
> filled up, readahead pages started being dropped and reread, cutting
> the server throughput by a factor of 2 or so.  On the other hand,
> performance with no readahead was even worse.
[-]

Are you like some numbers?

I've generated some max-readahead numbers (dbench-1.1 32 clients) with 
2.4.8-ac11,  2.4.8-ac12 (+ memory.c fix) and 2.4.8-ac12 (+ memory.c fix + low 
latency)

system:
Athlon I 550
MSI MS-6167 Rev 1.0B, AMD Irongate C4 (without bypass)
640 MB PC100-2-2-2 SDRAM
AHA-2940UW
IBM U160 DDYS 18 GB, 10.000 rpm (in UW mode)
all filesystems ReiserFS 3.6.25

* readahead do not show dramatic differences
* killall -STOP kupdated DO

Yes, I know it is dangerous to stop kupdated but my disk show heavy thrashing 
(seeks like mad) since 2.4.7ac4. killall -STOP kupdated make it smooth and 
fast, again.

Could it be that kupdated and kreiserfsd do concurrent (double) work?
The numbers for context switches are more than double with kupdated than 
without it. Without kupdated the system feels very smooth and snappy.
Low latency patch push this even further.

Regards,
	Dieter


2.4.8-ac11

max-readahead 511
Throughput 22.4059 MB/sec (NB=28.0073 MB/sec  224.059 MBit/sec)
24.780u 78.010s 3:09.54 54.2%   0+0k 0+0io 911pf+0w

max-readahead 31 (default)
Throughput 19.7815 MB/sec (NB=24.7269 MB/sec  197.815 MBit/sec)
24.690u 73.630s 3:34.55 45.8%   0+0k 0+0io 911pf+0w

max-readahead 15
Throughput 20.5266 MB/sec (NB=25.6583 MB/sec  205.266 MBit/sec)
25.430u 77.090s 3:26.79 49.5%   0+0k 0+0io 911pf+0w

max-readahead 7
Throughput 19.7186 MB/sec (NB=24.6483 MB/sec  197.186 MBit/sec)
24.950u 77.820s 3:35.23 47.7%   0+0k 0+0io 911pf+0w

max-readahead 3
Throughput 21.1795 MB/sec (NB=26.4743 MB/sec  211.795 MBit/sec)
26.020u 79.290s 3:20.45 52.5%   0+0k 0+0io 911pf+0w

max-readahead 0
Throughput 19.3769 MB/sec (NB=24.2211 MB/sec  193.769 MBit/sec)
25.070u 77.550s 3:39.00 46.8%   0+0k 0+0io 911pf+0w

killall -STOP kupdated
retry with the 2 best cases

max-readahead 3
Throughput 34.6985 MB/sec (NB=43.3731 MB/sec  346.985 MBit/sec)
24.230u 81.930s 2:02.75 86.4%   0+0k 0+0io 911pf+0w

max-readahead 511 (it is repeatable, see below)
Throughput 32.3584 MB/sec (NB=40.448 MB/sec  323.584 MBit/sec)
24.190u 86.130s 2:11.55 83.8%   0+0k 0+0io 911pf+0w

Throughput 33.28 MB/sec (NB=41.6 MB/sec  332.8 MBit/sec)
25.220u 84.260s 2:07.93 85.5%   0+0k 0+0io 911pf+0w

After (heavy) work:
Throughput 25.3106 MB/sec (NB=31.6383 MB/sec  253.106 MBit/sec)
25.370u 84.420s 2:47.91 65.3%   0+0k 0+0io 911pf+0w

After reboot:
Throughput 31.2373 MB/sec (NB=39.0466 MB/sec  312.373 MBit/sec)
25.500u 83.810s 2:16.26 80.2%   0+0k 0+0io 911pf+0w

After reboot:
Throughput 30.0666 MB/sec (NB=37.5833 MB/sec  300.666 MBit/sec)
25.020u 83.770s 2:21.50 76.8%   0+0k 0+0io 911pf+0w



2.4.8-ac12

max-readahead 31 (default)
Throughput 19.4526 MB/sec (NB=24.3157 MB/sec  194.526 MBit/sec)
24.840u 79.490s 3:38.16 47.8%   0+0k 0+0io 911pf+0w

max-readahead 511
Throughput 21.5307 MB/sec (NB=26.9134 MB/sec  215.307 MBit/sec)
25.000u 77.520s 3:17.20 51.9%   0+0k 0+0io 911pf+0w

killall -STOP kupdated

max-readahead 31 (default)
Throughput 28.5728 MB/sec (NB=35.7159 MB/sec  285.728 MBit/sec)
24.750u 88.250s 2:28.85 75.9%   0+0k 0+0io 911pf+0w

max-readahead 511
Throughput 29.5127 MB/sec (NB=36.8908 MB/sec  295.127 MBit/sec)
25.610u 86.730s 2:24.14 77.9%   0+0k 0+0io 911pf+0w



2.4.8-ac12 + The Right memory.c fix

max-readahead 31 (default)
Throughput 22.0905 MB/sec (NB=27.6131 MB/sec  220.905 MBit/sec)
25.340u 77.700s 3:12.24 53.5%   0+0k 0+0io 911pf+0w

killall -STOP kupdated

max-readahead 31 (default)
Throughput 29.2189 MB/sec (NB=36.5236 MB/sec  292.189 MBit/sec)
25.750u 82.090s 2:25.57 74.0%   0+0k 0+0io 911pf+0w



2.4.8-ac12 + The Right memory.c fix + low latency patch

max-readahead 31 (default)
Throughput 20.3505 MB/sec (NB=25.4381 MB/sec  203.505 MBit/sec)
25.430u 75.250s 3:28.58 48.2%   0+0k 0+0io 911pf+0w

killall -STOP kupdated

max-readahead 31 (default)
Throughput 29.25 MB/sec (NB=36.5625 MB/sec  292.5 MBit/sec)
24.600u 86.370s 2:25.42 76.3%   0+0k 0+0io 911pf+0w

max-readahead 511
Throughput 30.0372 MB/sec (NB=37.5465 MB/sec  300.372 MBit/sec)
25.590u 75.910s 2:21.64 71.6%   0+0k 0+0io 911pf+0w

^ permalink raw reply	[flat|nested] 124+ messages in thread
* Re: [resent PATCH] Re: very slow parallel read performance
@ 2001-08-28 15:28 Dieter Nützel
  0 siblings, 0 replies; 124+ messages in thread
From: Dieter Nützel @ 2001-08-28 15:28 UTC (permalink / raw)
  To: Linux Kernel List
  Cc: Marcelo Tosatti, Daniel Phillips, Mike Galbraith, Robert Love,
	ReiserFS List

Am Dienstag, 28. August 2001 03:08 schrieb Dieter Nützel:
> Are you like some numbers?
>
> I've generated some max-readahead numbers (dbench-1.1 32 clients) with
> 2.4.8-ac11,  2.4.8-ac12 (+ memory.c fix) and 2.4.8-ac12 (+ memory.c fix +
> low latency)
>
> system:
> Athlon I 550
> MSI MS-6167 Rev 1.0B, AMD Irongate C4 (without bypass)
> 640 MB PC100-2-2-2 SDRAM
> AHA-2940UW
> IBM U160 DDYS 18 GB, 10.000 rpm (in UW mode)
> all filesystems ReiserFS 3.6.25
>
> * readahead do not show dramatic differences
> * killall -STOP kupdated DO

> 2.4.8-ac12 + The Right memory.c fix + low latency patch
>
> max-readahead 31 (default)
> Throughput 20.3505 MB/sec (NB=25.4381 MB/sec  203.505 MBit/sec)
> 25.430u 75.250s 3:28.58 48.2%   0+0k 0+0io 911pf+0w
>
> killall -STOP kupdated
>
> max-readahead 31 (default)
> Throughput 29.25 MB/sec (NB=36.5625 MB/sec  292.5 MBit/sec)
> 24.600u 86.370s 2:25.42 76.3%   0+0k 0+0io 911pf+0w
>
> max-readahead 511
> Throughput 30.0372 MB/sec (NB=37.5465 MB/sec  300.372 MBit/sec)
> 25.590u 75.910s 2:21.64 71.6%   0+0k 0+0io 911pf+0w

Argh, every one have from time to time some minutes...
I've patched with the low latency patch (patch-rml-2.4.8-ac12-preempt- 
kernel-1) , compiled and run it (see above) but didn't enabled it....

So here are the right numbers, now.
They are not much different but it is good to see that low latency do not 
harm disk troughput for this test.

* I never saw such low numbers for context switches (GREAT).
* load hardly only reach half the numbers (~16, for 32 processes)
   compared to the normal kernel
* system is very smooth and snappy

Drawbacks:
There are several (most/all) modules missing preempt_schedule symbol.
See the end of this mail.

Regards,
	Dieter

PS Should I redo my test with 2.4.9/2.410-pre1 + max-readahead patch or is 
it useless like Daniel mentioned?

2.4.8-ac12 + The Right memory.c fix + low latency patch
The Real Test (CONFIG_PREEMPT=y)
 
max-readahead 31 (default)
Throughput 19.9584 MB/sec (NB=24.948 MB/sec  199.584 MBit/sec)
26.480u 79.570s 3:32.66 49.8%   0+0k 0+0io 911pf+0w
 
killall -STOP kupdated
 
max-readahead 31 (default)
Throughput 29.6149 MB/sec (NB=37.0186 MB/sec  296.149 MBit/sec)
26.590u 78.830s 2:23.65 73.3%   0+0k 0+0io 911pf+0w
 
max-readahead 511
Throughput 30.3902 MB/sec (NB=37.9878 MB/sec  303.902 MBit/sec)
26.510u 78.430s 2:20.00 74.9%   0+0k 0+0io 911pf+0w

depmod -aev
[-]
xftw starting at /lib/modules/2.4 lstat on /lib/modules/2.4 failed
xftw starting at /lib/modules/kernel lstat on /lib/modules/kernel failed
xftw starting at /lib/modules/fs lstat on /lib/modules/fs failed
xftw starting at /lib/modules/net lstat on /lib/modules/net failed
xftw starting at /lib/modules/scsi lstat on /lib/modules/scsi failed
xftw starting at /lib/modules/block lstat on /lib/modules/block failed
xftw starting at /lib/modules/cdrom lstat on /lib/modules/cdrom failed
xftw starting at /lib/modules/ipv4 lstat on /lib/modules/ipv4 failed
xftw starting at /lib/modules/ipv6 lstat on /lib/modules/ipv6 failed
xftw starting at /lib/modules/sound lstat on /lib/modules/sound failed
xftw starting at /lib/modules/fc4 lstat on /lib/modules/fc4 failed
xftw starting at /lib/modules/video lstat on /lib/modules/video failed
xftw starting at /lib/modules/misc lstat on /lib/modules/misc failed
xftw starting at /lib/modules/pcmcia lstat on /lib/modules/pcmcia failed
xftw starting at /lib/modules/atm lstat on /lib/modules/atm failed
xftw starting at /lib/modules/usb lstat on /lib/modules/usb failed
xftw starting at /lib/modules/ide lstat on /lib/modules/ide failed
xftw starting at /lib/modules/ieee1394 lstat on /lib/modules/ieee1394 failed
xftw starting at /lib/modules/mtd lstat on /lib/modules/mtd failed
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/block/floppy.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/block/floppy.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/block/loop.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/block/loop.o
/lib/modules/2.4.8-ac12/kernel/drivers/cdrom/cdrom.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/char/drm/tdfx.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/char/drm/tdfx.o
/lib/modules/2.4.8-ac12/kernel/drivers/char/joystick/analog.o
/lib/modules/2.4.8-ac12/kernel/drivers/char/joystick/emu10k1-gp.o
/lib/modules/2.4.8-ac12/kernel/drivers/char/joystick/gameport.o
/lib/modules/2.4.8-ac12/kernel/drivers/char/joystick/sidewinder.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/char/lp.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/char/lp.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/char/ppdev.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/char/ppdev.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/char/serial.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/char/serial.o
/lib/modules/2.4.8-ac12/kernel/drivers/i2c/i2c-core.o
/lib/modules/2.4.8-ac12/kernel/drivers/i2c/i2c-dev.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/ide/ide-disk.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/ide/ide-disk.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/ide/ide-mod.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/ide/ide-mod.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/ide/ide-probe-mod.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/ide/ide-probe-mod.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/input/evdev.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/input/evdev.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/input/input.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/input/input.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/input/joydev.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/input/joydev.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/input/mousedev.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/input/mousedev.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/net/3c509.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/net/3c509.o
/lib/modules/2.4.8-ac12/kernel/drivers/net/bsd_comp.o
/lib/modules/2.4.8-ac12/kernel/drivers/net/dummy.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/net/eepro100.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/net/eepro100.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/net/ppp_async.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/net/ppp_async.o
/lib/modules/2.4.8-ac12/kernel/drivers/net/ppp_deflate.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/net/ppp_generic.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/net/ppp_generic.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/net/pppoe.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/net/pppoe.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/net/pppox.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/net/pppox.o
/lib/modules/2.4.8-ac12/kernel/drivers/net/slhc.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/parport/parport.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/parport/parport.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/parport/parport_pc.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/parport/parport_pc.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/pnp/isa-pnp.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/pnp/isa-pnp.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/scsi/sg.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/scsi/sg.o
/lib/modules/2.4.8-ac12/kernel/drivers/scsi/sr_mod.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/scsi/st.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/scsi/st.o
/lib/modules/2.4.8-ac12/kernel/drivers/sound/ac97_codec.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/sound/emu10k1/emu10k1.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/sound/emu10k1/emu10k1.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/sound/soundcore.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/sound/soundcore.o
/lib/modules/2.4.8-ac12/kernel/drivers/usb/dc2xx.o
/lib/modules/2.4.8-ac12/kernel/drivers/usb/hid.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/usb/scanner.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/usb/scanner.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/usb/usb-ohci.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/usb/usb-ohci.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/drivers/usb/usbcore.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/drivers/usb/usbcore.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/autofs/autofs.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/autofs/autofs.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/autofs4/autofs4.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/autofs4/autofs4.o
/lib/modules/2.4.8-ac12/kernel/fs/binfmt_aout.o
depmod: *** Unresolved symbols in /lib/modules/2.4.8-ac12/kernel/fs/fat/fat.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/fat/fat.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/isofs/isofs.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/isofs/isofs.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/lockd/lockd.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/lockd/lockd.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/minix/minix.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/minix/minix.o
/lib/modules/2.4.8-ac12/kernel/fs/msdos/msdos.o
depmod: *** Unresolved symbols in /lib/modules/2.4.8-ac12/kernel/fs/nfs/nfs.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/nfs/nfs.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/nfsd/nfsd.o depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/nfsd/nfsd.o
/lib/modules/2.4.8-ac12/kernel/fs/nls/nls_cp437.o
/lib/modules/2.4.8-ac12/kernel/fs/nls/nls_cp850.o
/lib/modules/2.4.8-ac12/kernel/fs/nls/nls_iso8859-1.o
/lib/modules/2.4.8-ac12/kernel/fs/nls/nls_iso8859-15.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/romfs/romfs.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/romfs/romfs.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/smbfs/smbfs.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/smbfs/smbfs.o
depmod: *** Unresolved symbols in /lib/modules/2.4.8-ac12/kernel/fs/udf/udf.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/udf/udf.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/fs/vfat/vfat.o depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/fs/vfat/vfat.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_conntrack.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_conntrack.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_conntrack_ftp.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_nat_ftp.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_nat_ftp.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_tables.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ip_tables.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipchains.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipchains.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_LOG.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_LOG.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_MASQUERADE.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_MASQUERADE.o
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_REDIRECT.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_limit.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_limit.o
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_state.o
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/ipt_tos.o
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/iptable_filter.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/iptable_nat.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv4/netfilter/iptable_nat.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv6/ipv6.odepmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv6/ipv6.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv6/netfilter/ip6_tables.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv6/netfilter/ip6_tables.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/ipv6/netfilter/ip6t_limit.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/ipv6/netfilter/ip6t_limit.o
/lib/modules/2.4.8-ac12/kernel/net/ipv6/netfilter/ip6table_filter.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/khttpd/khttpd.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/khttpd/khttpd.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/packet/af_packet.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/packet/af_packet.o
depmod: *** Unresolved symbols in 
/lib/modules/2.4.8-ac12/kernel/net/sunrpc/sunrpc.o
depmod:         preempt_schedule
/lib/modules/2.4.8-ac12/kernel/net/sunrpc/sunrpc.o
/lib/modules/2.4.8-ac12/misc/mssclampfw.o

^ permalink raw reply	[flat|nested] 124+ messages in thread
* Re: [resent PATCH] Re: very slow parallel read performance
@ 2001-08-27  2:03 Rick Hohensee
  2001-08-27  2:52 ` Keith Owens
  2001-08-28 17:52 ` Kai Henningsen
  0 siblings, 2 replies; 124+ messages in thread
From: Rick Hohensee @ 2001-08-27  2:03 UTC (permalink / raw)
  To: yodaiken; +Cc: linux-kernel

Yodaiken
I'll have to wait to display more ignorance (on this subject)
until next week. Off to
LinuxWorld SF - rushing in where Alan Cox is afraid to go!

And OT: the Embedded Linux Consortium is considering standards
for Embedded Linux, as is the Emblix Consortium (Japan), the Open Group,
and, for all I know, the UN, the NRA, and the Committee for the
Preservation Welsh Poetry. I'd be
interested in any suggestions, comments, proposals, or witty remarks
I could convey to  the first three of  these august organizations.

moi
I believe the Committee for the Preservation of Welsh Poetry are pretty
settled on the -ac tree. Aren't they doing an audio CD of Alan reciting
the TCP/IP stack sources?

You might mention that embedded Linux is in many ways a reenactment of the
history of Forth, which has many of the same advantages as Linux, foremost
in embedded being  low (nil) unit-cost. Then there's robustness,
mutability, completeness...

Rick Hohensee
                www.
                           cLIeNUX
                                          .com
                                                        humbubba@smart.net

^ permalink raw reply	[flat|nested] 124+ messages in thread
* very slow parallel read performance
@ 2001-08-23 21:35 Lehmann 
  2001-08-24  7:35 ` [resent PATCH] " Roger Larsson
  0 siblings, 1 reply; 124+ messages in thread
From: Lehmann  @ 2001-08-23 21:35 UTC (permalink / raw)
  To: linux-kernel; +Cc: oesi

I tested the following under linux-2.4.8-ac8, linux-2.4.8pre4 and
2.4.5pre4, all had similar behaviour.

I have written a webserver that serves many large files, and thus, the
disks are the bottleneck. To get around the problem of blocking reads
(this killed thttpd's performance totally, for example) I can start one or
more reader threads. And strace of them under load looks like this:

     0.000400 read(6, "\300g#\v", 4)    = 4 <0.000091>
     0.000315 lseek(1129, 70376488, SEEK_SET) = 70376488 <0.000088>
     0.000287 read(1129, "\212\266\233^\250\23\256D\21E\'#c\242\351pp`:Q[\22/:\27"..., 65536) = 65536 <0.047408>
     0.051059 write(9, "\300g#\v", 4)   = 4 <0.000052>
     0.000222 read(6, "@\3755\r", 4)    = 4 <0.000036>
     0.000187 lseek(946, 26180056, SEEK_SET) = 26180056 <0.000035>
     0.000162 read(946, "\0\20\24\0\330\6\30\264\345\263\247\213\264\0\274\4\340"..., 65536) = 65536 <0.029500>
     0.029976 write(9, "@\3755\r", 4)   = 4 <0.000098>
     0.000331 read(6, "\300\373j\r", 4) = 4 <0.000088>
     0.000309 lseek(944, 33816188, SEEK_SET) = 33816188 <0.000090>
     0.000287 read(944, "\210]\360C\340\200\315\363@\205\203\250\316\256\"\34,E"..., 65536) = 65536 <0.043455>
     0.043885 write(9, "\300\373j\r", 4) = 4 <0.000042>
     0.000200 read(6, "\0\227M\r", 4)   = 4 <0.000035>
     0.000191 lseek(315, 1310720, SEEK_SET) = 1310720 <0.000034>
     0.000162 read(315, "\7\17\376\250\37\312m\210\24\215s\257v\246\354\272\253"..., 65536) = 65536 <0.025821>
     0.026236 write(9, "\0\227M\r", 4)  = 4 <0.000040>

filehandles 6 and 9 are request / result filehandles, i.e. the thread(s)
read the request on filehandle 6, execute it (e.g. lseek/read) and then
write the result back to fh 9.

as you can see, the read-request/lseek/write-result syscalls are very
fast, while the read-from-file-call totally dominates the runtime, which
is sensible, since the disks can only seek so-and-so-many times per
second. under this config the server steadily delivers about 23mbits/s.

Now I thought I'd start more threads to give the kernel elevator more
chances to optimize reads, however, it gets much slower. when I start 128
threads, the strace of one thread now looks like this:

     0.002181 read(6, "\300\311\205\f", 4) = 4 <0.000091>
     0.000351 lseek(857, 12798664, SEEK_SET) = 12798664 <0.000087>
     0.000292 read(857, "^0\260\274\363\3078\314\373\343\254h\360\276\347\332\305"..., 65536) = 65536 <28.176472>
    28.177062 write(9, "\300\311\205\f", 4) = 4 <0.000039>
     0.000200 read(6, "@\2\265\10", 4)  = 4 <0.000033>
     0.000480 lseek(471, 6553600, SEEK_SET) = 6553600 <0.000033>
     0.000182 read(471, "\244\t*\\\225`+\270@\210\206\367\10\261\4m\32\206\377x"..., 65536) = 65536 <36.023682>
    36.025902 write(9, "@\2\265\10", 4) = 4 <0.000107>
     0.000422 read(6, "\0A\235\r", 4)   = 4 <0.000107>
     0.000335 lseek(1239, 7143424, SEEK_SET) = 7143424 <0.000088>
     0.000309 read(1239, "\'\213\315\372\331+x\271\234Bx\255\274\"G\202\264L+>\266"..., 65536) = 65536 <0.154575>
     0.155760 write(9, "\0A\235\r", 4)  = 4 <0.000093>
     0.000337 read(6, "@G\235\r", 4)    = 4 <0.000387>
     0.000676 lseek(998, 4989944, SEEK_SET) = 4989944 <0.000093>
     0.000357 read(998, "\214P\325|k\226\260\31\351\260\10\10:\23d`\271Tu\32\252"..., 65536) = 65536 <36.512863>
    36.513243 write(9, "@G\235\r", 4)   = 4 <0.002407>

as you can see, read request now can take about ten times longer than they
should (30 / 128 = 0.2). as a result, webserver thruput decreases to a
mere 4mbits/s.

I would have expected a slight slowdown at most (more processing, maybe
cache effects), but not that much. any ideas why this is so and what could
be done against it?

-- 
      -----==-                                             |
      ----==-- _                                           |
      ---==---(_)__  __ ____  __       Marc Lehmann      +--
      --==---/ / _ \/ // /\ \/ /       pcg@goof.com      |e|
      -=====/_/_//_/\_,_/ /_/\_\       XX11-RIPE         --+
    The choice of a GNU generation                       |
                                                         |

^ permalink raw reply	[flat|nested] 124+ messages in thread

end of thread, other threads:[~2001-08-28 22:07 UTC | newest]

Thread overview: 124+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-28  1:08 [resent PATCH] Re: very slow parallel read performance Dieter Nützel
2001-08-28  0:05 ` Marcelo Tosatti
2001-08-28  1:54   ` Daniel Phillips
2001-08-28  5:01 ` Mike Galbraith
2001-08-28  8:46   ` [reiserfs-list] " Hans Reiser
2001-08-28 19:17     ` Mike Galbraith
2001-08-28 18:18 ` Andrew Morton
2001-08-28 18:45   ` Hans Reiser
  -- strict thread matches above, loose matches on Subject: below --
2001-08-28 15:28 Dieter Nützel
2001-08-27  2:03 Rick Hohensee
2001-08-27  2:52 ` Keith Owens
2001-08-28 17:52 ` Kai Henningsen
2001-08-28 21:54   ` Matthew M
2001-08-23 21:35 Lehmann 
2001-08-24  7:35 ` [resent PATCH] " Roger Larsson
2001-08-24 17:43   ` Rik van Riel
2001-08-24 18:28     ` Roger Larsson
2001-08-24 19:02       ` Rik van Riel
2001-08-24 20:37         ` Gérard Roudier
2001-08-24 23:12           ` Rik van Riel
2001-08-25  8:02             ` Gérard Roudier
2001-08-25  9:26               ` Roger Larsson
2001-08-25 11:49                 ` Gérard Roudier
2001-08-25 17:56                   ` Roger Larsson
2001-08-25 19:13                     ` Gérard Roudier
2001-08-25 13:17               ` Rik van Riel
2001-08-24 22:29         ` Daniel Phillips
2001-08-24 23:10           ` Rik van Riel
2001-08-25  0:42             ` Daniel Phillips
2001-08-27  7:08           ` Helge Hafting
2001-08-27 14:31             ` Daniel Phillips
2001-08-27 14:42               ` Alex Bligh - linux-kernel
2001-08-27 15:14                 ` Rik van Riel
2001-08-27 16:04                   ` Daniel Phillips
     [not found]                   ` <Pine.LNX.4.33L.0108271213370.5646-100000@imladris.rielhome.cone ctiva>
2001-08-27 19:34                     ` Alex Bligh - linux-kernel
2001-08-27 20:03                       ` Oliver Neukum
2001-08-27 20:19                         ` Alex Bligh - linux-kernel
2001-08-27 21:38                           ` Oliver.Neukum
2001-08-27 22:26                             ` Alex Bligh - linux-kernel
2001-08-27 21:29                       ` Daniel Phillips
2001-08-27 16:02                 ` Daniel Phillips
2001-08-27 19:36                   ` Alex Bligh - linux-kernel
2001-08-27 20:24                     ` Daniel Phillips
2001-08-27 16:55               ` David Lang
2001-08-27 18:54                 ` Daniel Phillips
2001-08-27 18:37               ` Oliver Neukum
2001-08-27 19:04                 ` Daniel Phillips
2001-08-27 19:43                   ` Oliver Neukum
2001-08-27 20:37                     ` Daniel Phillips
2001-08-27 22:10                       ` Oliver.Neukum
2001-08-27 21:44                     ` Linus Torvalds
2001-08-27 22:30                       ` Daniel Phillips
2001-08-27 23:00                       ` Marcelo Tosatti
2001-08-28  3:10                         ` Linus Torvalds
2001-08-27 19:55                 ` Richard Gooch
2001-08-27 20:09                   ` Oliver Neukum
2001-08-27 21:06                   ` Daniel Phillips
2001-08-24 20:18     ` Daniel Phillips
2001-08-24 20:19       ` Rik van Riel
2001-08-24 21:11         ` Daniel Phillips
2001-08-24 23:03           ` Rik van Riel
2001-08-25  0:41             ` Daniel Phillips
2001-08-25  1:34               ` Rik van Riel
2001-08-25 15:49                 ` Daniel Phillips
2001-08-25 15:50                   ` Rik van Riel
2001-08-25 16:28                     ` Lehmann 
2001-08-25 16:34                       ` Rik van Riel
2001-08-25 16:41                         ` Lehmann 
2001-08-26 16:55                       ` Daniel Phillips
2001-08-26 18:39                         ` Rik van Riel
2001-08-26 19:46                           ` Daniel Phillips
2001-08-26 19:52                             ` Rik van Riel
2001-08-26 20:08                               ` Daniel Phillips
2001-08-26 22:33                                 ` Russell King
2001-08-26 23:24                                   ` Daniel Phillips
2001-08-26 23:24                                     ` Russell King
2001-08-27  0:07                                     ` Rik van Riel
2001-08-27  0:02                                 ` Rik van Riel
2001-08-27  0:42                                   ` Daniel Phillips
2001-08-25 16:43                     ` Daniel Phillips
2001-08-25 19:15                       ` Alan Cox
2001-08-25 19:35                         ` Lehmann 
2001-08-25 20:52                           ` Rik van Riel
2001-08-26  1:38                             ` Daniel Phillips
2001-08-26  2:49                               ` Lehmann 
2001-08-26 17:29                                 ` Daniel Phillips
2001-08-26 17:37                                   ` Craig I. Hagan
2001-08-26 18:56                                   ` Rik van Riel
2001-08-26 19:18                                   ` Lehmann 
2001-08-26 21:07                                     ` Daniel Phillips
2001-08-26 22:12                                       ` Rik van Riel
2001-08-26 23:24                                       ` Lehmann 
2001-08-26 20:26                                   ` Gérard Roudier
2001-08-26 21:20                                     ` Daniel Phillips
2001-08-26  3:32                               ` Rik van Riel
2001-08-26 13:22                                 ` Lehmann 
2001-08-26 13:48                                   ` Rik van Riel
2001-08-26 14:55                                     ` Lehmann 
2001-08-26 15:06                                       ` Rik van Riel
2001-08-26 15:25                                         ` Lehmann 
2001-08-25 21:33                           ` Alan Cox
2001-08-25 23:34                             ` Lehmann 
2001-08-26  2:02                               ` Rik van Riel
2001-08-26  2:57                                 ` Lehmann 
2001-08-26  0:46                           ` John Stoffel
2001-08-26  1:07                             ` Alan Cox
2001-08-26  3:30                               ` Rik van Riel
2001-08-26  3:40                             ` Rik van Riel
2001-08-26  5:28                               ` Daniel Phillips
2001-08-24 23:23         ` Lehmann 
     [not found]           ` <200108242344.f7ONi0h21270@mailg.telia.com>
2001-08-25  0:28             ` Lehmann 
2001-08-25  3:09           ` Rik van Riel
2001-08-25  9:13             ` Gérard Roudier
2001-08-26 16:54           ` Daniel Phillips
2001-08-26 18:59             ` Victor Yodaiken
2001-08-26 19:38               ` Rik van Riel
2001-08-26 20:05                 ` Victor Yodaiken
2001-08-26 20:34                   ` Rik van Riel
2001-08-26 20:45                     ` Victor Yodaiken
2001-08-26 21:00                       ` Alan Cox
2001-08-26 20:42               ` Daniel Phillips
2001-08-26 19:31             ` Lehmann 
2001-08-24 19:42   ` Lehmann 
2001-08-24 21:42     ` Gérard Roudier
2001-08-25  0:05   ` Craig I. Hagan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).