LINUX.ORG.RU
ФорумAdmin

Как заставить Apache убивать процесс после завершения?

 ,


0

1

Всем привет. :)
У меня есть сайт, на который можно загружать свои видео. Мой сервер в данном случае работает как перевалочный пункт и после того, как на него человек выгрузил видео, он начинает передавать его на видео хостинг. И именно в этот момент передачи он начинает забивать ОЗУ и SWAP на такое кол-во места, сколько занимало данное видео. Собственно это не проблема, пусть занимает, НО, после окончания работы скрипта память не высвобождается моментельно! Она начинает освобождаться ооочень медленно, а это очень мешает, т.к. на подходе может быть уже другое довольно весомое видео.
Параметры VPS: 1024mb RAM, 2048mb SWAP.
Мои настройки httpd:

  • Timeout 60
  • KeepAlive On
  • MaxKeepAliveRequests 100
  • KeepAliveTimeout 5
  • <IfModule prefork.c>
  • StartServers 1
  • MinSpareServers 1
  • MaxSpareServers 10
  • ServerLimit 20
  • MaxClients 20
  • MaxRequestsPerChild 150
  • </IfModule>

Было бы идеально, если процесс httpd завершался сразу бы после окончания, а не висел сколько ему вздумается. Может кто знает как это реализовать?

Ответ на: комментарий от anonymous

inotify или даже тупой скрипт по крону, шарящий диру с аплоадами.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Ага, я это тоже читал много где, а на практике хрен эти процессы закрываются. Только спустя время.

Universal
() автор топика
Ответ на: комментарий от deep-purple

Это вообще надо изначально, вне зависимости от задачи.

anonymous
()
Ответ на: комментарий от Universal

1) Иди в гугл и выбирай себе решение по запросу «chunked upload» — это решается на клиенте средствами js + переделкой пыхоскрипта под приём чанками.

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

3) Всёравно перекатывайся на нжинкс + пхп фпм.

deep-purple ★★★★★
()
Последнее исправление: deep-purple (всего исправлений: 1)

MaxSpareServers сделай 1 или вообще 0 лол
Keepalive отключи
MaxRequestsPerChild 1

Короче будет 1 или 0 процессов, которые после работы будут сразу прибиты.

Или переходи на fpm, с тем же апачем или nginx.

Bers666 ★★★★★
()

Как заставить

Тебе лишь бы заставить.

Macrocosm
()

Ты чё, внутрь php что-ли шлёшь видос? Нахера? Ты аплоадь в папку на nginx, и уже очередями тасков выгружай видос любым бекендом. А так, посылая видос внутрь php виртуальной машины, конечно, она будет выделять в памяти всё место под этот видос, это ж криворукость.

menangen ★★★★★
()
Ответ на: комментарий от Bers666

Ему fpm не поможет, там php головного мозга - надо всю архитектуру менять и читать опыт, прежде чем решать такие задачи в лоб.

menangen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.