Re: Including files on NFS mount slow with APC enabled

From: Date: Mon, 16 Aug 2010 17:21:15 +0000
Subject: Re: Including files on NFS mount slow with APC enabled
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-307489@lists.php.net to get a copy of this message
Hi, APC checks by default if every included file was modified doing a stat call. You can disable it, setting apc.stat to 0 (http://www.php.net/manual/en/apc.configuration.php#ini.apc.stat). Try if that improves the performance. Of course, you should manually delete the APC opcode cache every time you modify a PHP file, since APC won't detect that it was modified. Regards, Jonathan On Mon, Aug 16, 2010 at 10:21 AM, Mark Hunting <mark@netexpo.nl> wrote: > I am struggling with the performance of some websites that use a lot of > includes (using include_once). The files are on a NFS mount (NFSv4), and > I use APC to speed things up. APC has enough memory, and I see all > included files are in the APC cache. apc.include_once_override is > enabled. This is on a Ubuntu Linux 10.04 server. > > What surprises me is that using strace I see apache open()ing all > included files. I would think this is not necessary as APC has these > files in its cache. Opening a file takes 1-3 ms, the websites include > 100-200 files, so this costs about half a second for each request. I > tried a lot to prevent this but my options are exhausted. Is it normal > that all these files are open()ed each time, and if so how can I speed > up these includes? > > Part of the trace is below, look especially at the first line where 2ms > are lost while this file is in the APC cache: > > open("/[removed]/library/Zend/Application.php", O_RDONLY) = 1440 <0.002035> > fstat(1440, {st_mode=S_IFREG|0755, st_size=11365, ...}) = 0 <0.000137> > fstat(1440, {st_mode=S_IFREG|0755, st_size=11365, ...}) = 0 <0.000124> > fstat(1440, {st_mode=S_IFREG|0755, st_size=11365, ...}) = 0 <0.000133> > mmap(NULL, 11365, PROT_READ, MAP_SHARED, 1440, 0) = 0x7faf3f068000 > <0.000395> > stat("/[removed]/library/Zend/Application.php", {st_mode=S_IFREG|0755, > st_size=11365, ...}) = 0 <0.000219> > munmap(0x7faf3f068000, 11365)           = 0 <0.000151> > close(1440)                             = 0 <0.000845> > > Thanks, > Mark > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.general (#307489) next »