Messages in this thread | | | Date | Sat, 19 Sep 1998 17:41:35 -0400 (EDT) | From | "Steven N. Hirsch" <> | Subject | Re: knfsd performance vs. unfsd performance |
| |
On Sat, 19 Sep 1998, Greg Whalin wrote:
> OK, I have been running some benchmarks on a new linux NFS server (Dual > PPro 200, linux-2.1.122). I am having it be a NFS server for a network > of diverse platforms. I ran the benchmark program named bonnie on a SunOS > client and here are the results: > > Linux NFS server using knfsd-980915: > > File './bonnie.21608', size: 104857600 > Writing with putc()...done > Rewriting...done > Writing intelligently...done > Reading with getc()...done > Reading intelligently...done > Seeker 1...Seeker 3...Seeker 2...start 'em...done...done...done... > -------Sequential Output-------- ---Sequential Input-- --Random-- > -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- > Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU > 100 64 4.5 62 0.6 40 0.9 379 30.2 965 7.8 48.4 6.6
Greg,
That is extremely poor performance, I'll grant. However, you haven't explained much about the test conditions. I'm familiar with Bonnie, but not with your network. Can I assume that the network interfaces are 10Base ethernet? Are you using a switched hub? What else is going on at the time? Etc, etc.
Also, I bet you haven't specified the 'async' flag in /etc/exports, and/or are using smallish transfer sizes?
My /etc/exports looks like:
/ *.fast.net(no_root_squash,rw,insecure,async) \ *.steve.net(no_root_squash,rw,insecure,async) /dosD *.fast.net(no_root_squash,rw,insecure,async) \ *.steve.net(no_root_squash,rw,insecure,async)
The 'async' token tells the kernel nfsd to defer writes. While not in strict accordance with NFS semantics, it makes a huge difference in performance.
On the client side, be sure to use the rsize=8192,wsize=8192 flags.
My server is also a Dual PPro (180, overclocked to 233), 64-Megs memory, Adaptec 2940A, Micropolis narrow-SCSI drive, NetGear Tulip 100-BaseTX talking through a plain (non-switched) SVEC hub. Runs 2.1.122.
Talking to it from a Cyrix P150+ box (also 64MB memory and Tulip 100BaseTX) running 2.1.122, I get:
-------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 100 3822 64.0 3736 10.5 1449 11.1 2140 34.5 2361 13.6 86.1 4.1
Turning around, and using the P150 box as the server:
-------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 100 3115 73.3 3537 6.9 1760 8.5 2414 55.2 4620 15.1 139.2 3.6
The network was loading only with the X-protocol traffic between client, server, and a third 486 box acting as an X Server.
Even with 10Base, I would see ~1.1KB/sec. between machines running Tulip boards (DEC DE-450's).
Steve
- 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/
| |