PHP with open_basedir performance problem

Antony Mawer fbsd-performance at mawer.org
Mon Jan 28 05:37:46 PST 2008


On 28/01/2008 6:52 PM, Alexey Popov wrote:
> The problem is that concurrent lstat()'s are very slow on FreeBSD now.
> 
> Possibly you can decrease the number of lstat() calls by tuning realpath 
> cache size in PHP. Just add "realpath_cache_size=512k" to php.ini. 
> However I'm not sure this cache is used in open_basedir.
> 
> See the following thread for details:
> http://lists.freebsd.org/pipermail/freebsd-stable/2007-November/038371.html

... so how does one go about profiling lstat() to find out where the 
source of the slowness originates from? Is pmc profiling the way to do this?

The last thread on this topic (referenced above) seemed to point the 
finger at the default value of vfs.ufs.dirhash_maxmem being too small... 
which would suggest this is an inherit limitation in UFS(2?) and/or its 
default tuning.

If you try increasing the amount of memory allocated for dirhash, does 
this improve performance at all? eg:

     # sysctl vfs.ufs.dirhash_maxmem=10240000
     vfs.ufs.dirhash_maxmem: 2097152 -> 10240000

... and then re-run the benchmarks to see if this makes any noticeable 
difference. The fact that it was indicated that Mac OS X also suffers 
the same problems suggests this may be a VFS issue rather than UFS 
specific...?

--Antony


More information about the freebsd-performance mailing list