Gonzalo Paniagua Javier wrote:
That's likely to happen if you use the managed file system watcher, not
with FAM, for large directories (many files)

FAM was failing on FAMOpen. I read somewhere that portmap has to be running for FAM to work, which it wasn't. But even after starting portmap and xinetd it still falls back on the managed watcher.


I made two changes to the managed watcher, and for now Mono is humbly
using 0.0-0.1% cpu while it's idle. Firstly, I set the update delay to be 50 times the time it took to scan for changes (with a lower and upper
bound). This helped, but even while the site was only chaching about 6
files, every few seconds Mono would spike a few percent in cpu usage.


Then I thought that the scan for changes might be faster if Mono did not
have to iterate through the contents of directories. It has to do this
if there's a wildcard in the mask, but if the mask is just a filename,
as is (always?) the case for caching, checking whether that file exists
directly might be faster. So, I have it always check with File.Exists
for the file, and only if that fails does it use Directory.GetFileSystemEntries. If there are wildcards, File.Exists should, I think, always return false, so that's fine, but I haven't tested it.


My unscientific benchmarks show that using
Directory.GetFileSystemEntries takes ~0.003 seconds per call, for
directories with only a small number of files and with a file mask with
no wildcards. Calling File.Exists only takes ~0.0001 seconds. I'm
skeptical that this is what is actually helping -- they're such small numbers.


2) How does mod_mono work in relation to Apache's prefork module?

That used to happen if you get a few requests when mod_mono has not started mod-mono-server for the first time. After the burst only one of those mono instances is really used. I'll file a bug report about this and fix it.

Also I'm getting a few defunct mono's laying around (which disappear on an httpd restart).


Thanks for your explanations, Gonzalo!

--
- Joshua Tauberer

http://taubz.for.net

** Nothing Unreal Exists **



_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to