Re: [PHP4BETA] mem leak?

From: Date: Mon, 13 Mar 2000 18:47:54 +0000
Subject: Re: [PHP4BETA] mem leak?
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-16759@lists.php.net to get a copy of this message
mod_rewrite and mod_expire are crucial for our application so i could not drop them for testing on the production machine. but as they are standard apache modules used on many sites, i find them very unlikely to cause the memory problem. i compiled apache without libzmod and got the same problem. so it's apache or it's standard modules or php, or? any ideas? regards, gaylord aulke agi, stuttgart, germany http://www.agi.de Andi Gutmans wrote: > I'm not sure how to tackle this problem. (BTW, please Cc: php-dev when you > send me mail because there might be people who have bumped into such > behavior). > Do you have a test server where youcan disable libzmod, mod_rewrite, and > mod_expires just to cut it down to Apache core vs. PHP? > > Andi > > On Mon, 13 Mar 2000, Gaylord Aulke wrote: > > > in my opinion the only "strange" thing about the server configuration is > > a module called "ZMOD" that's used to enable the apache to write > > IVW-certified log files (http://www.ivw.de). this module is installed > > on germany's biggest websites an so should be widely tested. > > > > i think the speed of memory-dropping is relative to the number of > > accesses. > > > > i attached PHP and APACHE config.information to this mail. > > you can also call http://knowone.de/test.php to get all > > information > > that's provided by phpinfo(). > > > > gaylord > > > > apache-config: > > ./configure \ > > "--with-layout=Apache" \ > > "--prefix=/usr/local/apache" \ > > "--activate-module=src/modules/zmod/libzmod.a" \ > > "--activate-module=src/modules/php4/libphp4.a" \ > > "--enable-module=rewrite" \ > > "--enable-module=expires" \ > > "$@" > > > > php-config: > > Configure command: './configure' '--enable-track-vars' > > '--disable-debug' '--with-mysql' > > '--with-adabas=/opt/adabas' > > '--with-apache=/usr/local/src/apache_1.3.11' > > php.ini path: /usr/local/lib > > ZEND_DEBUG=0 > > SAPI=Apache > > ZTS is undefined > > > > > > > > Andi Gutmans wrote: > > > > > I'm cc'ing this to the php-dev list. > > > What is your ./configure line for PHP? > > > What about Apache? Do you use any modules such as mod_auth_mysql with your > > > Apache server? It sounds too strange for it to be PHP but it might be. > > > We have had no such leaks on our web server. > > > > > > Andi > > > > > > On Mon, 13 Mar 2000, Gaylord Aulke wrote: > > > > > > > i changed the settings you described and compiled php: > > > > ( > > > > php:make clean > > > > php:make > > > > php:make install > > > > apache:make > > > > apache:make install > > > > ) > > > > and restarted apache. unfortunately the behaviour did not change. > > > > i included the top-output after 25 minutes at the end of this mail. > > > > > > > > (when starting apache, httpd had 0.3% of the machine's memory) > > > > (the SIZE entry shows that each newly started httpd process allocates > > > > more memory). > > > > > > > > regards, > > > > gaylord aulke > > > > > > > > > > > > 4:25pm up 8 days, 12:00, 6 users, load average: 1.15, 1.12, 1.01 > > > > 205 processes: 203 sleeping, 2 running, 0 zombie, 0 stopped > > > > CPU states: 88.3% user, 11.6% system, 0.0% nice, 0.0% idle > > > > Mem: 776892K av, 718084K used, 58808K free, 599264K shrd, 209908K buff > > > > Swap: 1028120K av, 12076K used, 1016044K free 110800K cached > > > > > > > > PID USER PRI NI DSIZE SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND > > > > 23549 adabas 17 -3 4082M 106M 102M 48088 R < 0 55.0 13.4 779:16 > > > > db:knowone > > > > 23538 root 0 0 4020M 52968 51M 52872 S 0 0.0 6.8 0:00 > > > > db:knowone > > > > 23545 adabas -3 -3 4023M 47040 45M 43900 S < 0 0.0 6.0 1:31 > > > > db:knowone > > > > 23558 adabas 0 0 4020M 40404 39M 40304 S 0 0.0 5.1 0:17 > > > > db:knowone > > > > 23559 adabas 0 0 4020M 40404 39M 40304 S 0 0.0 5.1 8:47 > > > > db:knowone > > > > 23560 adabas 0 0 4020M 40404 39M 40304 S 0 0.0 5.1 0:17 > > > > db:knowone > > > > 23561 adabas 0 0 4020M 40404 39M 40304 S 0 0.0 5.1 8:33 > > > > db:knowone > > > > 23548 adabas -3 -3 4021M 7400 7344 7044 S < 0 0.0 0.9 0:00 > > > > db:knowone > > > > 9776 wwwrun 0 0 3975M 6728 6728 2696 S 0 1.5 0.8 0:05 httpd > > > > 9787 wwwrun 0 0 3975M 6472 6472 2732 S 0 1.1 0.8 0:05 httpd > > > > 9779 wwwrun 0 0 3975M 6432 6432 2724 S 0 0.0 0.8 0:06 httpd > > > > 9747 wwwrun 2 0 3977M 6376 6376 2720 S 0 0.7 0.8 0:05 httpd > > > > 9791 wwwrun 0 0 3975M 6304 6304 2708 S 0 0.5 0.8 0:05 httpd > > > > 9749 wwwrun 0 0 3974M 6224 6224 2656 S 0 0.9 0.8 0:05 httpd > > > > 9806 wwwrun 0 0 3974M 6224 6224 2704 S 0 0.1 0.8 0:05 httpd > > > > 9746 wwwrun 0 0 3974M 6208 6208 2648 S 0 0.0 0.7 0:04 httpd > > > > 9766 wwwrun 0 0 3974M 6176 6176 2724 S 0 0.0 0.7 0:05 httpd > > > > 9751 wwwrun 0 0 3974M 6156 6156 2704 S 0 0.7 0.7 0:04 httpd > > > > 9763 wwwrun 0 0 3974M 6128 6128 2664 S 0 0.0 0.7 0:04 httpd > > > > 9774 wwwrun 0 0 3974M 6120 6120 2704 S 0 0.0 0.7 0:04 httpd > > > > 9764 wwwrun 0 0 3974M 6072 6072 2708 S 0 0.0 0.7 0:05 httpd > > > > 9752 wwwrun 0 0 3974M 6040 6040 2716 S 0 0.3 0.7 0:05 httpd > > > > 9772 wwwrun 0 0 3974M 6036 6036 2668 S 0 0.7 0.7 0:05 httpd > > > > 9793 wwwrun 1 0 3974M 6028 6028 2664 S 0 1.8 0.7 0:04 httpd > > > > 9786 wwwrun 0 0 3974M 5996 5996 2664 S 0 0.0 0.7 0:04 httpd > > > > 9784 wwwrun 0 0 3974M 5980 5980 2664 S 0 0.0 0.7 0:04 httpd > > > > 9759 wwwrun 0 0 3976M 5948 5948 2660 S 0 2.0 0.7 0:04 httpd > > > > 9755 wwwrun 0 0 3974M 5940 5940 2668 S 0 0.0 0.7 0:04 httpd > > > > 9750 wwwrun 0 0 3974M 5928 5928 2656 S 0 0.0 0.7 0:05 httpd > > > > 9783 wwwrun 0 0 3974M 5928 5928 2724 S 0 0.0 0.7 0:04 httpd > > > > 9794 wwwrun 0 0 3974M 5920 5920 2660 S 0 0.5 0.7 0:04 httpd > > > > 9785 wwwrun 0 0 3974M 5904 5904 2668 S 0 0.0 0.7 0:04 httpd > > > > 9802 wwwrun 0 0 3974M 5900 5900 2720 S 0 0.0 0.7 0:04 httpd > > > > 9796 wwwrun 0 0 3974M 5896 5896 2656 S 0 0.0 0.7 0:05 httpd > > > > 9748 wwwrun 0 0 3974M 5884 5884 2652 S 0 0.0 0.7 0:04 httpd > > > > 9789 wwwrun 0 0 3974M 5880 5880 2668 S 0 0.0 0.7 0:05 httpd > > > > 9788 wwwrun 1 0 3974M 5876 5876 2652 S 0 0.9 0.7 0:05 httpd > > > > 9767 wwwrun 0 0 3974M 5864 5864 2728 S 0 0.0 0.7 0:05 httpd > > > > > > > > > > > > Andi Gutmans wrote: > > > > > > > > > Please edit zend_fast_cache.h in the Zend/ directory and a line after > > > > > #define _ZEND_FAST_CACHE_H > > > > > add > > > > > #define ZEND_ENABLE_FAST_CACHE 0 > > > > > Also edit zend_alloc.h and change > > > > > MAX_CACHED_MEMORY to 1 > > > > > and > > > > > MAX_CACHED_ENTRIES to 1 > > > > > > > > > > See if this changes anything. > > > > > > > > > > Andi > > > > > > > > > > On Mon, 13 Mar 2000, Gaylord Aulke wrote: > > > > > > > > > > > hi, > > > > > > > > > > > > we tested a little bit more today and found the following strange > > > > > > phenomenon: > > > > > > we start apache and every httpd uses 0.6% of the available memory > > > > > > (according > > > > > > to "top"). > > > > > > > > > > > > while running, this percentage increases step by step. after 6 hours, > > > > > > every httpd > > > > > > uses 1.2% of the available memory. httpd's are started and > > > > > > stopped correctly. > > > > > > we have a minimum of 20 servers, 20 min.spare and 40 max. spare. the > > > > > > number > > > > > > of httpds changes frequently. the size of newly started httpds > > > > > > increases as > > > > > > said above (1.4% now). > > > > > > > > > > > > in my opinion the amount of shared memory the apache processes use > > > > > > increases. > > > > > > does this make sense? can it be PHP? > > > > > > > > > > > > regards, > > > > > > gaylord aulke > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Andi Gutmans wrote: > > > > > > > > > > > > > Sound strange. There are some inter-request cache's but I > > > > > > > don't think they > > > > > > > are 500KB of size. Although if the size doesn't grow this > > > > > > > might be it. Did > > > > > > > you compile with --disable-debug? > > > > > > > > > > > > > > Andi > > > > > > > > > > > > > > At 11:35 PM 3/12/00 +0100, Gaylord Aulke wrote: > > > > > > > >we are currently analyzing the system to track down the cause > > > > > > > >of the > > > > > > > >memory leak. could also be syslogd or some other component. > > > > > > > > > > > > > > > >the system has an average of 96 HTTPDs open but sometimes > > > > > > > >this number > > > > > > > >increases to 230 for a few seconds. > > > > > > > > > > > > > > > >the machine has 768MB RAM. after apache is running for a few > > > > > > > >minutes, it > > > > > > > >starts > > > > > > > >allocating more and more memory. 500-1000 KB in 5 seconds are > > > > > > > >allocated > > > > > > > >and not freed until apache is shut down. > > > > > > > > > > > > > > > >we switched back to PHP3 for now but start our 3rd > > > > > > > >PHP4-Approach > > > > > > > >tomorrow. > > > > > > > >maybe we have more info then... > > > > > > > > > > > > > > > >gaylord aulke > > > > > > > >agi, stuttgart, germany > > > > > > > > > > > > > > > >PS: (the site's name is > > > > > > > >http://www.knowone.de) > > > > > > > > > > > > > > > >Andi Gutmans wrote: > > > > > > > > > > > > > > > > > > Well I'm not saying it isn't PHP but the fact > > > > > > > > > that it's Beta doesn't mean > > > > > > > > > much. We're actually quite close to a release > > > > > > > > > candidate within a few weeks. > > > > > > > > > PHP frees every requests memory automatically (even if > > > > > > > > > the internal engine > > > > > > > > > leaks) at the end of each request. Of course there > > > > > > > > > could be a leak > > > > > > > > > somewhere as there are some places which don't use > > > > > > > > > the special memory > > > > > > > > > manager but it would probably be a pretty isolated > > > > > > > > > case. > > > > > > > > > The only way we can debug your problem is if we have > > > > > > > > > enough information as > > > > > > > > > to when it happens. I'm aware it is hard for you > > > > > > > > > to track this problem > > > > > > > > down. > > > > > > > > > By the way, do the httpd's keep on growing and > > > > > > > > > growing? Or do they > > > > > > > > > stabilize at a certain size? > > > > > > > > > > > > > > > > > > Andi > > > > > > > > > > > > > > > > > > At 02:20 AM 3/11/00 +0100, Gaylord Aulke wrote: > > > > > > > > > >hmmm. i try to find out which script causes the mem > > > > > > > > > >leak. it seems to > > > > > > > > > >happen only with concurrent request. we had no > > > > > > > > > >probs with our > > > > > > > > > >inhouse test system. i am not even sure if it is > > > > > > > > > >php that causes > > > > > > > > > >the memory loss but it's the only > > > > > > > > > >beta-software on the system... > > > > > > > > > > > > > > > > > > > >persistent connections did not work with my system > > > > > > > > > >configuration, > > > > > > > > > >so i use regular connects. > > > > > > > > > > > > > > > > > > > >gaylord aulke > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >Andi Gutmans wrote: > > > > > > > > > > > > > > > > > > > > > > As the script memory is completely freed > > > > > > > > > > > after each request this > > > > > > > > might have > > > > > > > > > > > something to do with the ODBC/Adabas support > > > > > > > > > > > you're using. > > > > > > > > > > > Are you using persistent connections? > > > > > > > > > > > Is there any chance you can find the script > > > > > > > > > > > which is causing this > > > > > > > > trouble > > > > > > > > > > > and cut it down as much as possible? > > > > > > > > > > > > > > > > > > > > > > Andi > > > > > > > > > > > > > > > > > > > > > > At 11:35 PM 3/10/00 +0100, Gaylord Aulke > > > > > > > > > > > wrote: > > > > > > > > > > > >here my report: > > > > > > > > > > > >we compiled and built the current cvs and > > > > > > > > > > > >after that, the error did > > > > > > > > > > not occur > > > > > > > > > > > >anymore. > > > > > > > > > > > >the memory leak that brings my server > > > > > > > > > > > >down has increased by at least a > > > > > > > > > > > >factor of > > > > > > > > > > > >two after installing the new build. > > > > > > > > > > > > > > > > > > > > > > > >we switched back to php3.0.15 for now. > > > > > > > > > > > > > > > > > > > > > > > >gaylord aulke > > > > > > > > > > > > > > > > > > > > > > > >Gaylord Aulke wrote: > > > > > > > > > > > > > > > > > > > > > > > > > Okay, we are working on it. > > > > > > > > > > > > > in the meantime we changed the > > > > > > > > > > > > > script so that it frees all > > > > > > > > > > odbc-results and > > > > > > > > > > > > > closes the connection but the error > > > > > > > > > > > > > still occurs. > > > > > > > > > > > > > > > > > > > > > > > > > > but the memory leak is much bigger > > > > > > > > > > > > > than reported by this error > > > > > > > > message. > > > > > > > > > > > > > i think we currently have 100-200 > > > > > > > > > > > > > php-requests/minute and lose > > > > > > > > > > 500KB every > > > > > > > > > > > > > 5-6 seconds. > > > > > > > > > > > > > > > > > > > > > > > > > > if you need more info to locate the > > > > > > > > > > > > > problem, please send me an > > > > > > > > email. i > > > > > > > > > > > > > can do some checks now on the > > > > > > > > > > > > > running system with 280 users on it. > > > > > > > > > > > > > > > > > > > > > > > > > > regards, > > > > > > > > > > > > > gaylord aulke > > > > > > > > > > > > > > > > > > > > > > > > > > Andi Gutmans wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > Can you please try and update > > > > > > > > > > > > > > your Zend CVS tree and see if I > > > > > > > > > > managed to > > > > > > > > > > > > > > fix the problem. I think I > > > > > > > > > > > > > > have found a leak but I'm not sure > > > > > > > > this is > > > > > > > > > > > > what > > > > > > > > > > > > > > effected you. > > > > > > > > > > > > > > > > > > > > > > > > > > > > Andi > > > > > > > > > > > > > > > > > > > > > > > > > > > > At 10:21 PM 3/10/00 +0100, > > > > > > > > > > > > > > Gaylord Aulke wrote: > > > > > > > > > > > > > > >hi, > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >we have exactly the same > > > > > > > > > > > > > > >problem. our apache keeps leaking > > > > > > > > > > > > > > >memory. 500 MB in 2 Hours! > > > > > > > > > > > > > > >And then the system swaps > > > > > > > > > > > > > > >and dies. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >PHP4, CVS-Version > > > > > > > > > > > > > > >03/10/2000 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >message from error-log: > > > > > > > > > > > > > > >zend_operators.c(741) : > > > > > > > > > > > > > > >Freeing 0x08399DFC (3 bytes), > > > > > > > > > > > > > > > > > > > > > > > > > > > > >>script=/home/www/knowone4/daheim/anzeige_aufgeben.php > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >this message arrises every > > > > > > > > > > > > > > >20 seconds. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >we are using ODBC/ADABAS > > > > > > > > > > > > > > >and sessions. the same scripts > > > > > > > > > > > > > > >work fine with the same > > > > > > > > > > > > > > >apache and php3. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >anyone got an idea? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >btw: we are not freeing > > > > > > > > > > > > > > >our odbc-results and connections. can > > > > > > > > > > > > > > >this be the problem? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >regards, > > > > > > > > > > > > > > >gaylord aulke > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >Teodor Cimpoesu wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ./zend_execute.c(1695) : Freeing 0x0818C8AC (12 bytes), > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > script=/opt/apache.fuel/htdocs/phorum/index.php > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ./zend_execute.c(1695) : Freeing 0x0814C20C (12 bytes), > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > script=/opt/apache.fuel/htdocs/phorum/index.php > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ./zend_execute.c(1695) : Freeing 0x08154DD4 (12 bytes), > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > script=/opt/apache.fuel/htdocs/phorum/index.php > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ./zend_execute.c(1695) : Freeing 0x0815E05C (12 bytes), > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > script=/opt/apache.fuel/htdocs/phorum/index.php > > > > > > > > > > > > > > > > (CVS snapshot of few > > > > > > > > > > > > > > > > minutes ago) > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > The page producing > > > > > > > > > > > > > > > > this is the index.php from phorum3.0.8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > CIMPOESU Teodor, Web > > > > > > > > > > > > > > > > Programmer > > > > > > > > > > > > > > > > @ DIGICOM S.A. > > > > > > > > > > > > > > > > Bucharest, Romania > > > > > > > > > > > > > > > > @ Internet, site > > > > > > > > > > > > > > > > development > > > > > > > > > > > > > > > > @ see > > > > > > > > > > > > > > > > http://internet.digiro.net/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > PHP 4.0 Beta Mailing > > > > > > > > > > > > > > > > List <http://www.php.net/version4/> > > > > > > > > > > > > > > > > To unsubscribe, > > > > > > > > > > > > > > > > e-mail: php4beta-unsubscribe@lists.php.net > > > > > > > > > > > > > > > > For additional > > > > > > > > > > > > > > > > commands, e-mail: php4beta-help@lists.php.net > > > > > > > > > > > > > > > > To contact the list > > > > > > > > > > > > > > > > administrators, e-mail: > > > > > > > > > > > > php4beta-admin@lists.php.net > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >-- > > > > > > > > > > > > > > >PHP 4.0 Beta Mailing List > > > > > > > > > > > > > > ><http://www.php.net/version4/> > > > > > > > > > > > > > > >To unsubscribe, e-mail: > > > > > > > > > > > > > > >php4beta-unsubscribe@lists.php.net > > > > > > > > > > > > > > >For additional commands, > > > > > > > > > > > > > > >e-mail: php4beta-help@lists.php.net > > > > > > > > > > > > > > >To contact the list > > > > > > > > > > > > > > >administrators, e-mail: > > > > > > > > > > php4beta-admin@lists.php.net > > > > > > > > > > > > > > > > > > > > > > > > > > > > --- > > > > > > > > > > > > > > Andi Gutmans > > > > > > > > > > > > > > <andi@zend.com> > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://www.zend.com/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > PHP 4.0 Beta Mailing List > > > > > > > > > > > > > > <http://www.php.net/version4/> > > > > > > > > > > > > > > To unsubscribe, e-mail: > > > > > > > > > > > > > > php4beta-unsubscribe@lists.php.net > > > > > > > > > > > > > > For additional commands, > > > > > > > > > > > > > > e-mail: php4beta-help@lists.php.net > > > > > > > > > > > > > > To contact the list > > > > > > > > > > > > > > administrators, e-mail: > > > > > > > > > > php4beta-admin@lists.php.net > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > PHP 4.0 Beta Mailing List > > > > > > > > > > > > > <http://www.php.net/version4/> > > > > > > > > > > > > > To unsubscribe, e-mail: > > > > > > > > > > > > > php4beta-unsubscribe@lists.php.net > > > > > > > > > > > > > For additional commands, e-mail: > > > > > > > > > > > > > php4beta-help@lists.php.net > > > > > > > > > > > > > To contact the list administrators, > > > > > > > > > > > > > e-mail: > > > > > > > > > > php4beta-admin@lists.php.net > > > > > > > > > > > > > > > > > > > > > > --- > > > > > > > > > > > Andi Gutmans <andi@zend.com> > > > > > > > > > > > > > > > > > > > > > > http://www.zend.com/ > > > > > > > > > > > > > > > > > > --- > > > > > > > > > Andi Gutmans <andi@zend.com> > > > > > > > > > http://www.zend.com/ > > > > > > > > > > > > > > --- > > > > > > > Andi Gutmans <andi@zend.com> > > > > > > > http://www.zend.com/ > > > > > > > > > > > >

« previous php.dev (#16759) next »