Bug #81536 [Opn]: Resident Memory not returned after use
| From: | cmb@php.net | Date: | Mon, 18 Oct 2021 08:18:59 +0000 |
| Subject: | Bug #81536 [Opn]: Resident Memory not returned after use | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-237253@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=81536&edit=1
ID: 81536
Updated by: cmb@php.net
Reported by: dev at alepe dot com
Summary: Resident Memory not returned after use
Status: Open
Type: Bug
Package: Performance problem
Operating System: Linux
PHP Version: 7.3.31
Block user comment: N
Private report: N
New Comment:
This looks like a duplicate of bug #80108.
Also note that PHP 7.3 is no longer actively supported[1].
[1] <https://www.php.net/supported-versions.php>
Previous Comments:
------------------------------------------------------------------------
[2021-10-18 07:03:45] dev at alepe dot com
Description:
------------
PHP7-PHP8 is not releasing "Resident Memory" back to the OS after use (specially Wordpress
sites). PHP5 works as expected, example:
PHP5 : 10MB ---> 95MB ---> 10MB
PHP7+ : 10MB ---> 95MB ---> 95MB
Versions Used:
* PHP7 versions 7.2, 7.3, 7.4 and 8.0 (running as FastCGI in lighttpd)
* Linux OS: Alpine 3.10, Alpine 3.14 and Ubuntu 20.04
* Wordpress: 5.7, 5.8
I have tested it without Wordpress (using the provided test script) but the result is not conclusive
(across versions), however when using Wordpress, it always happen.
We noticed after several sites (about 500 sites) were updated from PHP 5 to PHP 7 (running in LXD
containers), as the memory consumption increased about 3 to 4 times, making the server performance
to go down drastically (server started to swap more often). Even when the sites are not accessed for
a long time, the memory is not released.
Settings: Almost all sites are running the default settings (opcache is OFF)
Memory checking tools:
htop, top and lxc info
Modules used:
ctype
curl
date
dom
filter
gd
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
readline
Reflection
session
SPL
standard
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
Test script:
---------------
<?php
// NOTE: this code SOMETIMES produces the problem described above,
// and sometimes it won't.
$m = "";
for($i = 0; $i < 110000; $i++) {
$m .= "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii";
}
sleep(3);
echo "DONE";
?>
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=81536&edit=1