Проблемный сервер (nginx/1.26.2 с php-fpm8.2, 8.2.26 (cli), Zend Engine v4.2.26):
Код: Выделить всё
$file="/var/www/html/test2.jpg";
$src_img=imagecreatefromjpeg($file); // completely ignores this commands memory usage of 300M+
print 'Memory usage: '. round(memory_get_peak_usage(true)/(1024*1024)) . 'M
'; //returns 2M
Рабочий сервер (apache, PHP 8.3.14, Zend Engine v4.3.14):
Код: Выделить всё
$file="/var/www/html/test2.jpg";
$src_img=imagecreatefromjpeg($file); // works correctly 300M+
print 'Memory usage: '. round(memory_get_peak_usage(true)/(1024*1024)) . 'M
'; //returns 300M+
Текст:
У меня PHP php-fpm8.2 с nginx работает (Debian 12, VPS). Но на этом VPS Memory_get_peak_usage не учитывает imagecreatefromjpeg(); использование памяти, то есть около 300M+, поэтому php.ini Memory_limit также игнорируется и составляет 10M (поскольку php сообщает только 2M), если не хватает памяти (поскольку реальное использование составляет 300M+), служба PHP прекращается (если доступная память 300 или меньше система прекратит службу php).
Этот скрипт работает на каком-то другом общем сервере Apache и правильно отображает использование памяти около 300 МБ, но на этом ВПС показывает только 2М. Команда Linux top также показывает использование памяти около 300 МБ.
Почему Memory_get_peak_usage ведет себя неправильно на VPS.
Если у кого-то есть опыт, поделитесь. Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/793 ... mory-usage
Мобильная версия