You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modules-dev@httpd.apache.org by Fiona Sisk <fi...@gosnetworks.com> on 2011/10/17 18:49:46 UTC

PHP script is running very slowly when using Apache PHP module

Hi,

I have a problem with the Apache PHP module and am hoping for some pointers
on how to investigate it.

I have written a PHP extension that is called by a PHP script.
I use PHP as a module of  Apache ( 1.3.37 or 2.2.19, I've tried both).
*
LoadModule php5_module        libexec/apache/libphp5.so*

I'm getting very slow response times from my PHP script. (approx 1 minute)

However it is only when I run it as an Apache module that the problem
manifests itself.
If I run the PHP script /PHP extension on the command-line i.e. not as a
module of Apache  the time it takes is negligible.


The  PHP (5.3.4) extension crunches a lot of data from a DB and eventually
produces one very large PHP array.
which is returned to the client as JSON in the HTTP $_POST response  ( Also
gzip compression of the HTTP contents is used.)
(In JSON format, the size of the array is 3.7M)

I didn't have any problems with the application until recently when the size
of the data I'm requesting has increased dramatically.

 So it seems that I need to do some 'module' tuning of Apache but I don't
know how. I have already changed these parameters in
the php.ini to make the extension work.  I include some relevant looking
httpd.conf parameters also below. I haven't touched any of these.

max_execution_time = 60 ( 'cos the PHP script execution was timing out
before the extension finished!)
memory_limit = 256M


Any suggestions.? Please bear in mind that I'm not trying to write a Apache
module, just figure out what my performance
problems are when using a very common one.

Thanks in advance.
Fiona

ScoreBoardFile /var/run/httpd.scoreboard ( doesn't exist on my Linux
machine)
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0
LoadModule vhost_alias_module libexec/apache/mod_vhost_alias.so
LoadModule env_module         libexec/apache/mod_env.so
LoadModule define_module      libexec/apache/mod_define.so
LoadModule config_log_module  libexec/apache/mod_log_config.so
LoadModule mime_magic_module  libexec/apache/mod_mime_magic.so
LoadModule mime_module        libexec/apache/mod_mime.so
LoadModule negotiation_module libexec/apache/mod_negotiation.so
LoadModule status_module      libexec/apache/mod_status.so
LoadModule info_module        libexec/apache/mod_info.so
LoadModule includes_module    libexec/apache/mod_include.so
LoadModule autoindex_module   libexec/apache/mod_autoindex.so
LoadModule dir_module         libexec/apache/mod_dir.so
LoadModule cgi_module         libexec/apache/mod_cgi.so
LoadModule asis_module        libexec/apache/mod_asis.so
LoadModule imap_module        libexec/apache/mod_imap.so
LoadModule action_module      libexec/apache/mod_actions.so
LoadModule speling_module     libexec/apache/mod_speling.so
LoadModule userdir_module     libexec/apache/mod_userdir.so
LoadModule alias_module       libexec/apache/mod_alias.so
LoadModule rewrite_module     libexec/apache/mod_rewrite.so
LoadModule access_module      libexec/apache/mod_access.so
LoadModule auth_module        libexec/apache/mod_auth.so
LoadModule anon_auth_module   libexec/apache/mod_auth_anon.so
LoadModule dbm_auth_module    libexec/apache/mod_auth_dbm.so
LoadModule digest_module      libexec/apache/mod_digest.so
LoadModule proxy_module       libexec/apache/libproxy.so
LoadModule cern_meta_module   libexec/apache/mod_cern_meta.so
LoadModule expires_module     libexec/apache/mod_expires.so
LoadModule headers_module     libexec/apache/mod_headers.so
LoadModule usertrack_module   libexec/apache/mod_usertrack.so
LoadModule log_forensic_module libexec/apache/mod_log_forensic.so
LoadModule unique_id_module   libexec/apache/mod_unique_id.so
LoadModule setenvif_module    libexec/apache/mod_setenvif.so
LoadModule php5_module        libexec/apache/libphp5.so

GOS Networks Limited, National Software Centre, Mahon, Cork, Ireland.

Registered company number: 445828

 
The information in this email is confidential and may be legally privileged.
It is intended solely for the addressee. Access to this email by anyone else
is unauthorised. If you are not the intended recipient, any disclosure,
copying, distribution or any action taken or omitted to be taken in reliance
on it, is prohibited and may be unlawful. When addressed to our clients any
opinions or advice contained in this email are subject to the terms and
conditions expressed in the governing GOS Networks agreement.


Re: PHP script is running very slowly when using Apache PHP module

Posted by MATSUMOTO Ryosuke <ma...@gmail.com>.
Hi Fiona,

example

strace -f /etc/init.d/httpd restart

2011/10/20 Vincenzo D'Amore <v....@gmail.com>:
> Hello Fiona,
>
> have you tried to strace apache process ?
>
> Take a look at this:
>
> http://httpd.apache.org/dev/debugging.html
>
>
> On Mon, Oct 17, 2011 at 6:49 PM, Fiona Sisk <fi...@gosnetworks.com>wrote:
>
>> Hi,
>>
>> I have a problem with the Apache PHP module and am hoping for some pointers
>> on how to investigate it.
>>
>> I have written a PHP extension that is called by a PHP script.
>> I use PHP as a module of  Apache ( 1.3.37 or 2.2.19, I've tried both).
>> *
>> LoadModule php5_module        libexec/apache/libphp5.so*
>>
>> I'm getting very slow response times from my PHP script. (approx 1 minute)
>>
>> However it is only when I run it as an Apache module that the problem
>> manifests itself.
>> If I run the PHP script /PHP extension on the command-line i.e. not as a
>> module of Apache  the time it takes is negligible.
>>
>>
>> The  PHP (5.3.4) extension crunches a lot of data from a DB and eventually
>> produces one very large PHP array.
>> which is returned to the client as JSON in the HTTP $_POST response  ( Also
>> gzip compression of the HTTP contents is used.)
>> (In JSON format, the size of the array is 3.7M)
>>
>> I didn't have any problems with the application until recently when the
>> size
>> of the data I'm requesting has increased dramatically.
>>
>>  So it seems that I need to do some 'module' tuning of Apache but I don't
>> know how. I have already changed these parameters in
>> the php.ini to make the extension work.  I include some relevant looking
>> httpd.conf parameters also below. I haven't touched any of these.
>>
>> max_execution_time = 60 ( 'cos the PHP script execution was timing out
>> before the extension finished!)
>> memory_limit = 256M
>>
>>
>> Any suggestions.? Please bear in mind that I'm not trying to write a Apache
>> module, just figure out what my performance
>> problems are when using a very common one.
>>
>> Thanks in advance.
>> Fiona
>>
>> ScoreBoardFile /var/run/httpd.scoreboard ( doesn't exist on my Linux
>> machine)
>> Timeout 300
>> KeepAlive On
>> MaxKeepAliveRequests 100
>> KeepAliveTimeout 15
>> MinSpareServers 5
>> MaxSpareServers 10
>> StartServers 5
>> MaxClients 150
>> MaxRequestsPerChild 0
>> LoadModule vhost_alias_module libexec/apache/mod_vhost_alias.so
>> LoadModule env_module         libexec/apache/mod_env.so
>> LoadModule define_module      libexec/apache/mod_define.so
>> LoadModule config_log_module  libexec/apache/mod_log_config.so
>> LoadModule mime_magic_module  libexec/apache/mod_mime_magic.so
>> LoadModule mime_module        libexec/apache/mod_mime.so
>> LoadModule negotiation_module libexec/apache/mod_negotiation.so
>> LoadModule status_module      libexec/apache/mod_status.so
>> LoadModule info_module        libexec/apache/mod_info.so
>> LoadModule includes_module    libexec/apache/mod_include.so
>> LoadModule autoindex_module   libexec/apache/mod_autoindex.so
>> LoadModule dir_module         libexec/apache/mod_dir.so
>> LoadModule cgi_module         libexec/apache/mod_cgi.so
>> LoadModule asis_module        libexec/apache/mod_asis.so
>> LoadModule imap_module        libexec/apache/mod_imap.so
>> LoadModule action_module      libexec/apache/mod_actions.so
>> LoadModule speling_module     libexec/apache/mod_speling.so
>> LoadModule userdir_module     libexec/apache/mod_userdir.so
>> LoadModule alias_module       libexec/apache/mod_alias.so
>> LoadModule rewrite_module     libexec/apache/mod_rewrite.so
>> LoadModule access_module      libexec/apache/mod_access.so
>> LoadModule auth_module        libexec/apache/mod_auth.so
>> LoadModule anon_auth_module   libexec/apache/mod_auth_anon.so
>> LoadModule dbm_auth_module    libexec/apache/mod_auth_dbm.so
>> LoadModule digest_module      libexec/apache/mod_digest.so
>> LoadModule proxy_module       libexec/apache/libproxy.so
>> LoadModule cern_meta_module   libexec/apache/mod_cern_meta.so
>> LoadModule expires_module     libexec/apache/mod_expires.so
>> LoadModule headers_module     libexec/apache/mod_headers.so
>> LoadModule usertrack_module   libexec/apache/mod_usertrack.so
>> LoadModule log_forensic_module libexec/apache/mod_log_forensic.so
>> LoadModule unique_id_module   libexec/apache/mod_unique_id.so
>> LoadModule setenvif_module    libexec/apache/mod_setenvif.so
>> LoadModule php5_module        libexec/apache/libphp5.so
>>
>> GOS Networks Limited, National Software Centre, Mahon, Cork, Ireland.
>>
>> Registered company number: 445828
>>
>>
>> The information in this email is confidential and may be legally
>> privileged.
>> It is intended solely for the addressee. Access to this email by anyone
>> else
>> is unauthorised. If you are not the intended recipient, any disclosure,
>> copying, distribution or any action taken or omitted to be taken in
>> reliance
>> on it, is prohibited and may be unlawful. When addressed to our clients any
>> opinions or advice contained in this email are subject to the terms and
>> conditions expressed in the governing GOS Networks agreement.
>>
>>
>
>
> --
> Vincenzo D'Amore
> email: v.damore@gmail.com
> msn: freedev@hotmail.com
> skype: free.dev
> mobile: +39 349 8513251
>



-- 
MATSUMOTO Ryosuke < matsu1229 at gmail.com >
http://blog.matsumoto-r.jp/

Re: PHP script is running very slowly when using Apache PHP module

Posted by Vincenzo D'Amore <v....@gmail.com>.
Hello Fiona,

have you tried to strace apache process ?

Take a look at this:

http://httpd.apache.org/dev/debugging.html


On Mon, Oct 17, 2011 at 6:49 PM, Fiona Sisk <fi...@gosnetworks.com>wrote:

> Hi,
>
> I have a problem with the Apache PHP module and am hoping for some pointers
> on how to investigate it.
>
> I have written a PHP extension that is called by a PHP script.
> I use PHP as a module of  Apache ( 1.3.37 or 2.2.19, I've tried both).
> *
> LoadModule php5_module        libexec/apache/libphp5.so*
>
> I'm getting very slow response times from my PHP script. (approx 1 minute)
>
> However it is only when I run it as an Apache module that the problem
> manifests itself.
> If I run the PHP script /PHP extension on the command-line i.e. not as a
> module of Apache  the time it takes is negligible.
>
>
> The  PHP (5.3.4) extension crunches a lot of data from a DB and eventually
> produces one very large PHP array.
> which is returned to the client as JSON in the HTTP $_POST response  ( Also
> gzip compression of the HTTP contents is used.)
> (In JSON format, the size of the array is 3.7M)
>
> I didn't have any problems with the application until recently when the
> size
> of the data I'm requesting has increased dramatically.
>
>  So it seems that I need to do some 'module' tuning of Apache but I don't
> know how. I have already changed these parameters in
> the php.ini to make the extension work.  I include some relevant looking
> httpd.conf parameters also below. I haven't touched any of these.
>
> max_execution_time = 60 ( 'cos the PHP script execution was timing out
> before the extension finished!)
> memory_limit = 256M
>
>
> Any suggestions.? Please bear in mind that I'm not trying to write a Apache
> module, just figure out what my performance
> problems are when using a very common one.
>
> Thanks in advance.
> Fiona
>
> ScoreBoardFile /var/run/httpd.scoreboard ( doesn't exist on my Linux
> machine)
> Timeout 300
> KeepAlive On
> MaxKeepAliveRequests 100
> KeepAliveTimeout 15
> MinSpareServers 5
> MaxSpareServers 10
> StartServers 5
> MaxClients 150
> MaxRequestsPerChild 0
> LoadModule vhost_alias_module libexec/apache/mod_vhost_alias.so
> LoadModule env_module         libexec/apache/mod_env.so
> LoadModule define_module      libexec/apache/mod_define.so
> LoadModule config_log_module  libexec/apache/mod_log_config.so
> LoadModule mime_magic_module  libexec/apache/mod_mime_magic.so
> LoadModule mime_module        libexec/apache/mod_mime.so
> LoadModule negotiation_module libexec/apache/mod_negotiation.so
> LoadModule status_module      libexec/apache/mod_status.so
> LoadModule info_module        libexec/apache/mod_info.so
> LoadModule includes_module    libexec/apache/mod_include.so
> LoadModule autoindex_module   libexec/apache/mod_autoindex.so
> LoadModule dir_module         libexec/apache/mod_dir.so
> LoadModule cgi_module         libexec/apache/mod_cgi.so
> LoadModule asis_module        libexec/apache/mod_asis.so
> LoadModule imap_module        libexec/apache/mod_imap.so
> LoadModule action_module      libexec/apache/mod_actions.so
> LoadModule speling_module     libexec/apache/mod_speling.so
> LoadModule userdir_module     libexec/apache/mod_userdir.so
> LoadModule alias_module       libexec/apache/mod_alias.so
> LoadModule rewrite_module     libexec/apache/mod_rewrite.so
> LoadModule access_module      libexec/apache/mod_access.so
> LoadModule auth_module        libexec/apache/mod_auth.so
> LoadModule anon_auth_module   libexec/apache/mod_auth_anon.so
> LoadModule dbm_auth_module    libexec/apache/mod_auth_dbm.so
> LoadModule digest_module      libexec/apache/mod_digest.so
> LoadModule proxy_module       libexec/apache/libproxy.so
> LoadModule cern_meta_module   libexec/apache/mod_cern_meta.so
> LoadModule expires_module     libexec/apache/mod_expires.so
> LoadModule headers_module     libexec/apache/mod_headers.so
> LoadModule usertrack_module   libexec/apache/mod_usertrack.so
> LoadModule log_forensic_module libexec/apache/mod_log_forensic.so
> LoadModule unique_id_module   libexec/apache/mod_unique_id.so
> LoadModule setenvif_module    libexec/apache/mod_setenvif.so
> LoadModule php5_module        libexec/apache/libphp5.so
>
> GOS Networks Limited, National Software Centre, Mahon, Cork, Ireland.
>
> Registered company number: 445828
>
>
> The information in this email is confidential and may be legally
> privileged.
> It is intended solely for the addressee. Access to this email by anyone
> else
> is unauthorised. If you are not the intended recipient, any disclosure,
> copying, distribution or any action taken or omitted to be taken in
> reliance
> on it, is prohibited and may be unlawful. When addressed to our clients any
> opinions or advice contained in this email are subject to the terms and
> conditions expressed in the governing GOS Networks agreement.
>
>


-- 
Vincenzo D'Amore
email: v.damore@gmail.com
msn: freedev@hotmail.com
skype: free.dev
mobile: +39 349 8513251