2.2.15 slow NFS

From: Jens Benecke (jens@pinguin.conetix.de)
Date: Tue Jun 06 2000 - 17:06:58 EST


Hi,

please CC: me as I don't read linux-kernel regularly.

I'm running Mandrake Linux 7.0 (2.2.14-15mdk) on a NFS client, and Debian
2.2 (but with a Mandrake 2.2.15-6mdk kernel) on a NFS server. NFS speed from
server to client is satisfactory (about 4MB/sec over 100MBit Ethernet). The
other direction is really, really slow. (100k/sec)

The Mandrake kernel is patched with the following NFS related things.
        linux-2.2.14-nfsattack2.patch.bz2
        linux-2.2.14-sparc-nfs.patch.bz2
        nfs-inode-2.2.10.bz2

and compiled with -O3 and -D__KERNEL__ -Wall -Wstrict-prototypes -O2
-fomit-frame-pointer -fno-strict-aliasing -pipe -O3 -fomit-frame-pointer
-fno-exceptions -fno-rtti -pipe -s -mpentium -mcpu=pentium -march=pentium
-ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2
-malign-functions=2 -mpreferred-stack-boundary=2 -m486 -malign-loops=2
-malign-jumps=2 -malign-functions=2 -DCPU=586

(standard Mandrake procedure, I suppose)

I switched nfs*_debug=9 in /proc on the server and got things like

        Jun 6 21:59:37 pinguin kernel: nfsd_dispatch: proc 8
        Jun 6 21:59:58 pinguin last message repeated 6298 times
        Jun 6 21:59:58 pinguin kernel: nfsd_dispatch: proc 4
        Jun 6 21:59:58 pinguin kernel: nfsd_dispatch: proc 4
        Jun 6 21:59:58 pinguin kernel: nfsd_dispatch: proc 1
        Jun 6 21:59:58 pinguin kernel: nfsd_dispatch: proc 6
        Jun 6 21:59:58 pinguin kernel: nfsd_dispatch: proc 8
        Jun 6 21:59:58 pinguin kernel: nfsd_dispatch: proc 6
        Jun 6 21:59:59 pinguin last message repeated 494 times

I switched nfs*_debug=9 on the client and got this:

ds9 kernel: NFS: dentry_delete(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 0)
ds9 kernel: NFS: lookup(Probe-5.6.RAW/probe-5.6.komplett.1.wav)
ds9 kernel: 312c58)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 249856+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e120)
ds9 kernel: NFS: 2704 schedule_write_request (async)
ds9 kernel: nfs: write(Probe-5.6.RAW/probe-5.6.komplett.1.wav(82462), 8192@253952)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@253952, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c0312c08)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 253952+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e240)
ds9 kernel: NFS: 2705 schedule_write_request (async)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@258048, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030e590)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 258048+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e360)
ds9 kernel: NFS: 2706 schedule_write_request (async)
ds9 kernel: nfs: write(Probe-5.6.RAW/probe-5.6.komplett.1.wav(82462), 8192@262144)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@262144, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030e4a0)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 262144+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e480)
ds9 kernel: NFS: 2707 schedule_write_request (async)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@266240, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030e220)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 266240+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e5a0)
ds9 kernel: NFS: 2708 schedule_write_request (async)
ds9 kernel: nfs: write(Probe-5.6.RAW/probe-5.6.komplett.1.wav(82462), 8192@270336)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@270336, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030e1a8)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 270336+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e6c0)
ds9 kernel: NFS: 2709 schedule_write_request (async)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@274432, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030dc30)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 274432+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e7e0)
ds9 kernel: NFS: 2710 schedule_write_request (async)
ds9 kernel: nfs: write(Probe-5.6.RAW/probe-5.6.komplett.1.wav(82462), 8192@278528)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@278528, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030db68)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 278528+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429e900)
ds9 kernel: NFS: 2711 schedule_write_request (async)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@282624, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030da50)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 282624+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429ea20)
ds9 kernel: NFS: 2712 schedule_write_request (async)
ds9 kernel: nfs: write(Probe-5.6.RAW/probe-5.6.komplett.1.wav(82462), 8192@286720)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@286720, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030d8e8)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 286720+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429eb40)
ds9 kernel: NFS: 2713 schedule_write_request (async)
ds9 kernel: NFS: nfs_updatepage(Probe-5.6.RAW/probe-5.6.komplett.1.wav 4096@290816, sync=0)
ds9 kernel: NFS: find_write_request(6/82462, c030d820)
ds9 kernel: NFS: create_write_request(Probe-5.6.RAW/probe-5.6.komplett.1.wav, 290816+4096)
ds9 kernel: NFS: append_write_request(c4bb61ec, c429ec60)
ds9 kernel: NFS: 2714 schedule_write_request (async)
ds9 kernel: nfs: write(Probe-5.6.RAW/probe-5.6.komplett.1.wav(82462), 8192@294912)

and so on ... (ask if you need more).

I hope someone can interpret this.

Thanks a LOT in advance. :)

-- 
Microsoft is a cross between The Borg and the Ferengi.  Unfortunately they
use Borg to do their marketing and Ferengi to do their programming. 
                                        -- Simon Slavin, in the Monastery.


- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jun 07 2000 - 21:00:26 EST