Hi.
Kris Kennaway wrote:
In the meantime there is unfortunately not a lot that can be done,
AFAICT. There is one hack that I will send you later but it is not
likely to help much. I will also think about how to track down the
cause of the contention further (the profiling trace only shows that
it comes mostly from vget/vput but doesn't show where these are called
from).
Actually this patch might help. It doesn't replace lockmgr but it does
fix a silly thundering herd behaviour. It probably needs some
adjustment to get it to apply cleanly (it is about 7 months old), and I
apparently stopped using it because I ran into deadlocks. It might be
stable enough to at least see how much it helps.
Sorry, I didn't try you patch yet but I have other news.
As mentioned in the description of your patch there is probably a
scalability problem with stat() syscall on FreeBSD.
The PHP code of our site consists of large amount of modules. I think
this is true for many other large PHP sites.
I reached out that PHP calls lstat() for every path element of each file
it opens including modules. Truss output shows that PHP makes more than
2000 lstat's for one /index.php request. After investigation I found out
that lstats() are called from realpath() libc function. It turned out
that PHP has "realpath cache", but it's size by default is 16K which is
not enough for my files. I set realpath_cache_size to 256K and now there
is no that much lstat calls.
Performance of 8-core machine growed in ~ 50% for me on 7-STABLE. Now it
can handle 30 and more requests per seconds. I have the similiar results
with 6-STABLE. Now I have not that big %sys values as it was before (see
attached top output).
Nevertheless, Linux with its >50 rps is still far away from FreeBSD.
Linux makes that 2000+ lstat's without problem. There's still stat(),
open(), gettimeofday(), close() syscalls for each include file in PHP
that i can not switch off.
And also it is unclear for me what to do with MySQL which happened to
have the same problems for me.
With best regards,
Alexey Popov
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"