Re: NFS and kernel cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2006-12-21 at 08:14 -0600, Chris Adams wrote:
> Once upon a time, Les <hlhowell@xxxxxxxxxxx> said:
> > Ethernet only works well when the network is utilized about 50%.
> 
> I'm familiar with how Ethernet works, and this is not Ethernet that is a
> problem.  Properly configured switched Ethernet can work without errors
> at much more than 50% (I do that every day).  Gigabit Ethernet should
> run much faster than 200Mbps.  When I ran a similar test with a Fast
> Ethernet interface, I saw similar "stuttering" behavior, but it still
> averaged around 70-80Mbps.
> 
> There is no router in my problem setup; this is two systems connected to
> a switch (not a hub).  Neither is running anything else (one is booted
> in rescue mode).  Both systems show full duplex 1000Mbps link with flow
> control enabled (both have tg3 chips).  I was going to try jumbo frames
> to see what difference that made, but one system doesn't support jumbo
> frames.
> 
> The fact that Linux stops sending on the network sometimes and stops
> reading the hard drive other times points directly to how the kernel is
> caching writes to NFS (but I can't tell if it is the filesystem layer or
> the network stack).

If you run ether net above 50% you get lots of collisions.  This is due
to the nature of ethernet.  You can use synchronous transport or polling
techniques to avoid that, but that is not part of the ethernet
specification.  As to the caching and disk I/O processing, that is
dependent upon many things.  If you have Sata, and it is connected to a
memory mapped I/O, through the "memory bus", then you may see about 50%
of your processors bus speed.  For example if the buss is running 400M,
you will receive usable 200Mbytes at full through put.  MAXIMUM when the
path and data are fully cached.  If on the other hand, you get a cache
miss, which will occur somewhat frequently with large files, that speed
will drop as the data to/from the disk is read from the drive cache into
the system cache and ultimately into the processor cache.  This is for
processor controlled I/O, which I think must be the case for the data to
get from the disk to the ethernet port.  This is then further
constricted by the processor execution time, the cache interplay and
delay, and the access to the ethernet port, generally through PCI
interface, which is about 80Mbits maximum, of 640Mbits, which is then
further inhibited by the ethernet protocol, and/or the buffering and
other processes designed into the ethernet controller and I/O drivers.
All of this is then processed either by the ethernet controller (with a
smart controller) or by the system if using a dumb controller.  There is
no magic path from the disk to the ethernet port.  YMMV.

	If you want to find out information below this level, you have access
to the source code, and can examine and/or rewrite it yourself.
However, don't overlook the overhead in the system.  It is considerable,
and it is not possible to simply program around it (although carefully
written assembly routines, coupled with some real time programming
tricks might minimize it.)

Regards,
Les H

-- 
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora Magazine]     [Fedora News]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [SSH]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux