Re: PHP memory usage

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



The simple answer is the PHP's built-in memory checking cannot control what a plugin .so does. Use a cursor.

Chris

Robert Treat wrote:

Interesting... I was just about to post a question regarding the differences between the functions mysql_query and mysql_unbuffered_query in regards to pg_query, but I guess this is the issue right here, and from what I can tell there is no php based way to work around it.
Robert Treat

On Wednesday 02 June 2004 16:41, A Palmblad wrote:

I watch Postgres while its doing the query - and the postmaster is not the
culprit for memory usage.  It looks to me like PHP's postgres driver is
loading the entire result into memory when I do a query.  That is, the
postgres process stays within the memory its config tells it to use, while
a PHP script will eat as much as it can to load the result set.  Although I
would think best practices would dictate the use of a cursor or some limit
statements, I was also trying to get at whether or not a PHP extension
<i>should</i> be able to use as much RAM as it wants.

-Adam
----- Original Message -----
From: "Robby Russell" <rrussell@xxxxxxxxxxxxxxxxx>
To: "A Palmblad" <adampalmblad@xxxxxxxx>
Cc: <pgsql-php@xxxxxxxxxxxxxx>
Sent: Wednesday, June 02, 2004 1:17 PM
Subject: Re: [PHP] PHP memory usage


A Palmblad typed this on 05/31/2004 02:22 PM:

We've been running into some issues with PHP and Postgres, and memory

usage.


On a dual athlon 64, w/ 4 gigs of RAM, PHP 4.3.6, and Postgres 7.4.2

I've


seen our server start to crawl after some queries returning very large
result sets.  Although large result sets aren't exactly what we want to

be


dealing with, I really want to avoid a situation where a user could

disrupt


our server with certain options to some searches.

I did a quick commandline test, and it looks like PHP starts to eat

memory


during its call to pg_query.  By eat memory, I mean use memory well in
excess of php.ini's memory_limit of 8 megs.  (I stop it around 90% of
available memory usage)  Is this acceptable behaviour, or should I

report it


to PHP as a bug?  If not, are my only solutions to wrap my selects in
cursors and/or to use limit?

-Adam Palmblad

I am going to take a quick guess and suggest that test those queries in
psql itself. You might be running into some issues with your queries.


Test your queries with psql, EXPLAIN.
\h EXPLAIN

-Robby

--
Robby Russell,  |  Sr. Administrator / Lead Programmer
Command Prompt, Inc.   |  http://www.commandprompt.com
rrussell@xxxxxxxxxxxxxxxxx | Telephone: (503) 667.4564

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings




[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux