IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (https://www.imho.ws/forumdisplay.php?f=76)
-   -   linux php скрипт проблемы с памятью (https://www.imho.ws/showthread.php?t=129463)

GrOgy 12.02.2008 21:58

linux php скрипт проблемы с памятью
 
Написали скрипт на пхп.. вся его суть в тот что он берет даные из мускуля и раскидывает их по файлам. Но проблема в том что он начинает хавать память. притом сами файлы небольшие. по коду все дескрипторы закрываем
после каждой операции записи. И что самое главное память держится на высоком уровне даже после отработки скрипта.. И когда скрипт запускаем он начинает хавать, но потом останавливается на определенном уровне и дальше не идет

в начале работы.
total used free shared buffers cached

-/+ buffers/cache: 349176 1214376

-------------------------------------------------------------------
в конце работы скрипта
total used free shared buffers cached

-/+ buffers/cache: 949176 614376

Hubbitus 13.02.2008 01:55

Какую память кто хавает? Статистику чего Вы привели?
Если ПХП работает с кучей файлов, то это нормально что происходит кеширование на доступную память. После она нормально высвобождается, когда скрипт отработал, и другому приложению она нужна? Или получаете ошибки аллокации?

GrOgy 13.02.2008 03:08

я привел результат команды free
насколько я знаю вторая строчка этой команды показывает сколько памяти расходуется приложениями и сколько свободно.
-/+ buffers/cache: 349176 1214376
да пхп работает с кучей файлов и этот процесс отнимает много памяти которая нужна еще для работы других приложений .
Как раз память почему то долго не высвобождается тоесть первая цифра в строчке -/+ buffers/cache: 349176 1214376
остается долго на одном уровне даже после окончания работы скрипта

Hubbitus 13.02.2008 15:34

Цитата:

Сообщение от GrOgy (Сообщение 1521500)
насколько я знаю вторая строчка этой команды показывает сколько памяти расходуется приложениями и сколько свободно.

Возможно. Только это ведь не именно одним ПХП. Если уж говорить о подобном, то смотрите top/ps для конкретного процесса (процессом), а еще лучше восмпользуйтесь профилировщиками для этого, чтобы не на кофейной гуще обсуждать проблему, которой скорее всего и нету.

В большинстве систем память и не должны быть свободной, занятые буфера под кеш именно и заняты для обеспечения производиительности. То есть, такие кеши будут освобождаться по требованию приложений, если не хватает свободной памяти для выделения на запрос. Так что думается мне что все в порядке.

GrOgy 13.02.2008 16:18

дело в том что мы этот процесс запускаем через веб и частенько процесс заканчивается белым экраном , вывод всех ошибок включен.. Вобщем последняя мысль которая пришла это то что апач обрывает соединение.
а по команде top в самом верху мускуль который в памяти занимает 40мб, пока работает этот скрипт

Hubbitus 13.02.2008 17:48

Так может быть просто в максимальное время работы скрипта не укладываетесь банально??

http://ru2.php.net/manual/ru/ref.inf...execution-time

GrOgy 13.02.2008 20:08

да нет в скрипте убраны ограничения в ноль выставлено
set_time_limit(0);

Hubbitus 14.02.2008 01:46

Цитата:

Сообщение от GrOgy (Сообщение 1521781)
да нет в скрипте убраны ограничения в ноль выставлено
set_time_limit(0);

Ну посмотрите еще тогда max_input_time и таймауты веб-сервера. Кстати нету ли фронтэндов к нему еще? Тогда их таймауты. И еще, не включен ли в пхп safe_mode.

Если бы скрипту не хватило памяти, он бы об этом сказал ошибкой, а не помер бы молча.

GrOgy 15.02.2008 06:51

Вобщем парится не стали сделали запуск из консоли и все идет как по маслу =)
Теперь вот это пугает хотя память и проц не загружены.
load average: 17.22, 18.44, 17.14 (фрагмент команды top)
Больно много как то в очереди стоит

Hubbitus 15.02.2008 13:13

Цитата:

Сообщение от GrOgy (Сообщение 1522272)
Вобщем парится не стали сделали запуск из консоли и все идет как по маслу =)

Ага, у меня друг подобную задачу решал, только там XML парсился и в БД клался. Так на хостинге скрипт умирал, не успевая завершиться какраз по таймауту, я ему сказал давай мол сделаю бесплатно многопоточным, распаралелим, бесплатно сделаю (ну интересно мне тогда этим было заняться). Он сказал да не, мы просто выделенный сервер под это купим - все равно заказчик платит.

Цитата:

Сообщение от GrOgy (Сообщение 1522272)
load average: 17.22, 18.44, 17.14 (фрагмент команды top)
Больно много как то в очереди стоит

Ну многовато да. Видимо сервер загружен по самое не балуй.


Часовой пояс GMT +4, время: 20:14.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.