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

SU
На сайте с 15.05.2018
Offline
17
518

Всем привет.

У меня есть сайт, на который можно загружать свои видео. Мой сервер в данном случае работает как перевалочный пункт и после того, как на него человек выгрузил видео, он начинает передавать его на видео хостинг. И именно в этот момент передачи он начинает забивать ОЗУ и 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 завершался сразу бы после окончания, а не висел сколько ему вздумается. Может кто знает как это реализовать?

proweb.com.ua
На сайте с 05.03.2007
Offline
156
#1
SJ-Uni:
НО, после окончания работы скрипта память не высвобождается моментельно!

https://www.linuxatemyram.com/

FAQ group Твой форум (https://faq.wtf)
lonelywoolf
На сайте с 23.12.2013
Offline
151
#2
SJ-Uni:
забивать ОЗУ и SWAP на такое кол-во места, сколько занимало данное видео.

Проблема вот здесь. Не должно быть такого. Переписывайте приложение.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
M
На сайте с 17.09.2016
Offline
94
#3

Перенесите логику выгрузки в отдельный демон (в идеале даже, чтобы демон блоками считывал данные и заливал на "видео хостинг")

Этим не должен заниматься apache

L
На сайте с 25.08.2008
Offline
97
#4

попробовать выключить полностью кипэлайв:

(закоментить) - по идее сразу после отработки запроса процесс должен завершаться и для нового создаваться по новой.

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 5

Англоязычные и мультиязычные проекты, eMail marketing и списки - весь мир - Интернет маркетинг, е-коммерс и SEO => 18+ лет опыта https://theOmega.asia (https://web.theOmega.asia) / alex@theomega,asia
redeyer
На сайте с 27.01.2010
Offline
103
#5
SJ-Uni:
Всем привет.

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

Насколько я понял что вам нужно - это параметр MaxRequestsPerChild 150 как раз за это отвечает. Процесс перезапускается после обработки 150 запросов. Если вы установите его значение в 1 - то соотвественно получите что каждый процесс будет умирать после обработки одного запроса и возрождаться новым и ждущим запроса. Но так обычно не делается, согласен с человеком выше написавшим - копайте само приложение, чтобы оно не вешало треды апача.

Услуги сисадмина. Настройка и оптимизация VPS https://searchengines.guru/ru/forum/928318 . Поднятие своих прокси, восстановление сайтов из вебархива. Мой канал о хостингах https://t.me/hostingexpert

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