Оперативная память и php 5

neoks
На сайте с 17.03.2010
Offline
152
1721

Здравствуйте, такая проблема, выполнил я к примеру скрипт на php, он забил оперативную память на 400 метров и дальше когда скрипт закончил выполняться, оперативная остается занятой минимум 30 минут, в какою сторону смотреть что бы она очищалась как то быстрей ?

Debian 6 + nginx + PHP 5.4 + php-fpm, без панелей и т.д

LM
На сайте с 18.10.2009
Offline
117
#1

Что за скрипт такой, которому нужно целых 400 мб памяти?

neoks:
оперативная остается занятой минимум 30 минут, в какою сторону смотреть что бы она очищалась как то быстрей ?

Вообще, это нормально. Но если уж так хочется - pm.max_requests.

Число запросов дочернего процесса, после которого процесс будет перезапущен. Это полезно для избежания утечек памяти при использовании сторонних библиотек.
M
На сайте с 19.01.2011
Offline
65
#2

запускайте PHP через CGI/fastCGI не будет таких чудес

________________________ я больше не хостер ....
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#3

А что тут чудного, linux резервирует память, а потом высвобождает её по ненадобности (если мне память не отшибло) либо по требованию\запросу ресурсов.

Или у вас ситуация когда при повторном запуске скрипта вываливает ошибку "недостаточно памяти" ?

Я вот запускаю CentOS допустим голый установленный, уже куда-то 500 метров памяти уежжает сразу .... так ничего кроме sshd не запущено... не вижу в этом аномалии.

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
voooz
На сайте с 12.01.2008
Offline
159
#4
mvolgin:
запускайте PHP через CGI/fastCGI не будет таких чудес

Производительность немного меньше будет (но это в моем случае).

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#5

ТС, какое ваше дело до работы системы? :)

Когда надо тогда и освободит, это не повлияет на работу скриптов.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Den73
На сайте с 26.06.2010
Offline
523
#6

тс как замеряли?

M
На сайте с 19.01.2011
Offline
65
#7
voooz:
Производительность немного меньше будет (но это в моем случае).

В современных условиях потери несущественные а учитывая то что не будет потерь в памяти то вообще может и наоборот.

neoks
На сайте с 17.03.2010
Offline
152
#8

Та системная память меня не интересует, так она забита не больше 1Gb, когда работают все сайты то не больше 5GB, но вот именно один скрипт за пару минут убивает все 30GB и дальше светиться 50* что-то там от nginx у всех.

LinuxMan

спасибо попробую

ТЕМУ МОЖНО ОФ

AI
На сайте с 26.10.2012
Offline
53
#9

<?php

function convert($size) {

$unit=array('b','kb','mb','gb','tb','pb');

return @round($size/pow(1024,($i=floor(log($size,1024)))),0).' '.$unit[$i];

}

echo " ".convert(memory_get_usage()). " - количество памяти, которое было выделено PHP скрипту на данный момент <br> ";

echo "".convert(memory_get_peak_usage()). " - пиковое значение объема памяти, выделенной PHP<br><br> ";

function array_size($arr) {

ob_start();

print_r($arr);

$mem = ob_get_contents();

ob_end_clean();

$mem = preg_replace("/\n +/", "", $mem);

$mem = strlen($mem);

return $mem;

}

$memEstimate = array_size($GLOBALS);

echo " ".$memEstimate." содержимое буфера вывода (использования основной памяти) <br>";

?>

и посмотрите в xdebug, на что память уходит

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий