Alexey Popov wrote:
Hi

Kris Kennaway wrote:
Now FreeBSD 7-STABLE ULE 8-core server without optimized PHP realpath_cache_size (producing 2000+ lstats per request) can handle up to ~24 rps as opposed to max. 17 rps without your patch. %sys never grows over %user with your patch. On the server with optimized realpath_cache_size there's no visible influence of your patch.
You said "20" before for this configuration, so I'm a bit suspicious about how seriously to treat your measurements :)
Sorry, my mistake. s/ULE/4BSD.
OK, please compare ULE to ULE with and without my patch (and remembering to enable the sysctl), and obtain lock profiling traces in both cases under identical workloads & durations. That is what I need to proceed with this issue.
I didn't measured the exact values of requests per second on ULE with patch and without patch, but at first glance the benefits of the patch are similiar to 4BSD. If you need this values, I'll obtain them.

Here you can find lock profiling results for 7-BETA3 GENERIC kernel with SCHED_ULE running optimized PHP and unoptimized, with your patch and without it: http://83.167.98.162/gprof/lockmgr/

This data was collected by th following script:
(sysctl debug.lock.prof.reset=1
sysctl debug.lock.prof.enable=1
sleep 60
sysctl debug.lock.prof.enable=0
sysctl debug.lock.prof.stats
top -d 2 -b | tail -25)

AFAIU there's still high contention on "lockbuilder mtxpool" with patch applied. But hopefully "lockmgr:ufs" contention which i believe produced 80%sysCPU load is gone with your patch.

Looks to me like lockmgr-related contention was reduced by 1 to 2 orders of magnitude, which is the expected result. This surely must have a measurable impact on your workload. Further lockmgr improvement will have to wait until the lockmgr replacement work proceeds.

One more patch which may or may not help is:

  http://www.freebsd.org/~jhb/patches/namei_rwlock.patch

(may also require porting since it was against an older version of 7.0-CURRENT). When I have tested this in the past it was a performance loss for reasons that I think I understand (basically, it is locally a performance improvement for the name cache but also requires a fixed lockmgr to avoid an overall performance loss), but I don't remember if I tested it in conjunction with the lockmgr patch.

There are patches you need to enable it on woodcrest. They are in my p4 branch (kris-contention) but I don't have time right now to extract them.
I think it would be very useful because I can't see any other ways to profile FreeBSD on the modern many-cores machines.

You can extract the changeset from my branch via http://perforce.freebsd.org. Unfortunately I don't have time to do it myself.

Kris

_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to