[OpenAFS] Windows cache problem revisited...

Murawski, Rob rsm4@cssd.pitt.edu
Thu, 4 Dec 2003 13:54:33 -0500


Windows does not use an in-memory cache; it uses a memory-mapped file
for the cache.  This gives significant performance benefits over
accessing the cache as a file.  For example, the VMM will handle paging
the file through memory (like virtual memory).  The OS handles reading
and writing the file while the application (AFS) can write to it as if
it were memory.  Likewise, the VMM appears to (although I can not find a
definitive reference) to leave areas of the cache file in memory, if
memory is available.

For a detailed description of a memory-mapped file in Windows, please
see
http://msdn.microsoft.com/library/default.asp?url=3D/library/en-us/dngenl=
i
b/html/msdn_manamemo.asp

I don't think the performance issues you are seeing are directly
implemented by the memory-mapped file algorithm, but instead may have
something to do with the cache implementation and/or other factors on
the machine.  Has reducing the cache size alleviated this problem?

By the way, one of the features of using memory-mapped files is that it
makes handling large files (such as a cache file) more efficient as the
entire file does not need to be read into memory.  A typical use of this
would be a text editor to access an entire file without needing to read
it entirely into memory.

Just my $.02 and I am curious if reducing the cache size fixed the
performance issue.

-Rob Murawski


-----Original Message-----
From: openafs-info-admin@openafs.org
[mailto:openafs-info-admin@openafs.org] On Behalf Of Rodney M Dyer
Sent: Thursday, December 04, 2003 12:21 PM
To: openafs-info@openafs.org
Subject: [OpenAFS] Windows cache problem revisited...

All,

I've been thinking a bit more about the problem I'm having with OpenAFS
on Windows 2k/XP.  When transfering large files to and from AFS the
Windows OS performance can slow down considerably, all most to the point
of non-usability.  To alleviate this problem I've been told not to use a
large AFS cache because the client service opens a real memory buffer
that is the same size as the cache file.  On closer examination I find
this to be ridiculous and intolerable.  The point of the AFS cache is to
eliminate multiple network reads for files that haven't changed on the
network by grabbing them off the local disk cache.  We should be able
to, and most people do, use very large caches.  I'm familiar with people
using gig sized caches these days.  Granted, depending on what your are
doing, there will be a point of diminishing returns with larger and
larger cache sizes.  But that is for me to decide!

I want to know why the AFS client service uses a real memory buffer in
the first place?  I want to know why you can't turn this 'feature' off?
Who decided that the in-memory buffer would be a good idea?  Can we get
this changed?

Thanks ahead for any feedback (sorry for the rant),

Rodney

Rodney M. Dyer
Windows Systems Programmer
Mosaic Computing Group
William States Lee College of Engineering University of North Carolina
at Charlotte
Email: rmdyer@uncc.edu
Web: http://www.coe.uncc.edu/~rmdyer
Phone (704)687-3518
Help Desk Line (704)687-3150
FAX (704)687-2352
Office  267 Smith Building

_______________________________________________
OpenAFS-info mailing list
OpenAFS-info@openafs.org
https://lists.openafs.org/mailman/listinfo/openafs-info