Re: Strange slowdowns in PHP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mmmm... can you elaborate on that please?  I kind of have the idea of
what you mean but I don't know how to do it.

What is exactly garbage collection in the context of a PHP session? I
guess it is when PHP scans every session file to see if there are stale
data or something like that and you can tune the probability of this
process being triggered in the php.ini file.

How would you measure that? is there a way to do that?

Thanks for you insight.


-William

El lun, 27-02-2006 a las 16:34 -0500, Robert Cummings escribió:
> What about session garbage collection? Can you log when that happens and
> see if it correlates with your problem?
> 
> Cheers,
> Rob.
> 
> On Mon, 2006-02-27 at 16:15, William Lovaton wrote:
> > Hi there,
> > 
> > I just setted up some changes to the Apache configuration and made some
> > programming in PHP to log a request (and information about that request)
> > when it is taking a lot of time to finish (let's say > 20 secs).  In the
> > logs, there have been lots of useful information and I already improved
> > the performance on several pages, specially related to database queries.
> > But from time to time there are pages in the log that shouldn't be slow
> > but still they take 20 or 30 secs to complete.
> > 
> > The strategy I used is the following:
> > 1. Configure Apache to register the request time in the request headers
> > 	RequestHeader set requestTime %t
> > 
> > 2. Create a function an register it with register_shutdown_function() so
> > it is executed after PHP ends the execution of every script.
> > 
> > 3. This function will take the requestTime and calculate the difference
> > with the current time (time stamp).
> > 
> > 4. If the difference (execution time) is less than 20 seconds it exits
> > normally, else, it logs the information about this request in a file.
> > 
> > 5. The registered information includes: $_REQUEST data and $_SESSION
> > data at the time of execution.  And finally a profile of some critical
> > functions.  This functions are often the ones that goes to the database
> > and they are likely to be slow.
> > 
> > The page I am talking about doesn't execute any database query.  It just
> > generates an image from the data that is stored in the session.  I
> > however, profile some function that are not database queries but they
> > are the only "critical" path in the script.
> > 
> > Looking at the log I get the following information:
> > - Execution time: 29.3 secs
> > - Request started at: 11:08:06 AM
> > - Request ended at: 11:08:35 AM
> > - The functions that got executed were (time, class::method, duration):
> > 	- 11:08:06, GraficoMaterno::alturaUterina, 0.009499
> > 	- 11:08:06, GraficoAlturaUterina::session_start, 0.001259
> > 	- 11:08:06, GraficoAlturaUterina::session_write_close, 0.001613
> > 	- 11:08:06, GraficoAlturaUterina::sendImage, 0.029186
> > 
> > The last record in the profile (GraficoAlturaUterina::sendImage)
> > corresponds to the last couple of lines of code in the script which are:
> > 	imagepng($image);
> > 	imagedestroy($image);
> > 
> > As you can see they took only 0.029186 seconds which is very fast.  the
> > other thing that you can see in the profile is that the last line of
> > code got executed exactly in the very same second in which the request
> > started.  This means that the script is very fast and that something is
> > taking a lot of time after the last line of execution.
> > 
> > Note that I open and close the user session to update some data in a
> > safe manner that might be being accessed at the same time by other
> > apache processes.  And as you can see it is very fast too... that was
> > the only suspect I had.  :(
> > 
> > Finally, I don't think this is a problem of the function that logs the
> > execution time and that is executed automatically at shutdown.  I was
> > seeing the sporadic slowdown even before implementing this
> > instrumentation and the function implementation is so simple that it is
> > very unlikely that the delay is in there.
> > 
> > For further information I am using PHP 4.3.11 and Apache 2, all of them
> > are official packages from a Fedora Core 3 system with the latest
> > updates.  Is there a known bug in PHP that might be causing this
> > sporadic slowdowns?  In general our web app is very fast but this are
> > the corner cases.
> > 
> > Any ideas about this?
> > 
> > Thanks in advance,
> > 
> > 
> > -William
> -- 
> .------------------------------------------------------------.
> | InterJinn Application Framework - http://www.interjinn.com |
> :------------------------------------------------------------:
> | An application and templating framework for PHP. Boasting  |
> | a powerful, scalable system for accessing system services  |
> | such as forms, properties, sessions, and caches. InterJinn |
> | also provides an extremely flexible architecture for       |
> | creating re-usable components quickly and easily.          |
> `------------------------------------------------------------'
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux