PDA

Bekijk Volledige Versie : DirectAdmin automatische HTTPD restart



MKB Webhoster
16/09/14, 21:17
Hey

Weet iemand of er een mogelijkheid is, om bij DirectAdmin een automatische HTTPD restart te doen naarmate een bepaalde aantal GB's aan data behaalt word?

We hebben namelijk een applicatie die vaak heel zware load te verduren krijgt, en af en toe blijft hier een proces in haken, waardoor na verloop van tijd de HTTPD wel enkele GB's groot word en uiteindelijk natuurlijk blijft vasthangen.

Aangezien dit meestal middernacht gebeurd, en ik niet keer op keer het bed uit wil, wou ik graag weten of hier een manier voor is om dit automatisch te laten gebeuren.

Mark17
16/09/14, 23:58
Het is mogelijk om een script te maken die het doet voor je. Dit script kun je vervolgens via een cron aanroepen. Je geeft aan dat het vaak rond middernacht is, dan kun je ook overwegen een simpele cron te maken die de herstart op dat moment automatisch doet ongeacht of het nodig is (veel simpeler).

The-BosS
17/09/14, 00:20
Misschien een script om de x tijd een check laten uitvoeren (via bvb cron) of de httpd niet boven je limiet komt, iets als:



#!/bin/bash

# Maximaal toegestaan geheugen verbruik in MB
MAXMEM=2048

PER=$(ps aux | grep httpd | grep -v grep | awk '{sum+=$4} END {print sum}')
MEM=$(cat /proc/meminfo | grep MemTotal | awk {'print int($2/1024)'})
USE=$(echo "$MEM $PER" | awk {'print int($1/100*$2)'})

if [ "$USE" >= "$MAXMEM" ]; then
service httpd restart
fi


Heb dit script hier even vlug uit het hoofd gedaan dus tweaks kunnen nodig zijn ;).

cfmweb
17/09/14, 10:10
Het blijft natuurlijk een lapmiddel. Het zou een beter idee zijn om de oorzaak van het probleem te achterhalen en dat op te lossen.

MKB Webhoster
19/09/14, 19:29
Misschien een script om de x tijd een check laten uitvoeren (via bvb cron) of de httpd niet boven je limiet komt, iets als:



#!/bin/bash

# Maximaal toegestaan geheugen verbruik in MB
MAXMEM=2048

PER=$(ps aux | grep httpd | grep -v grep | awk '{sum+=$4} END {print sum}')
MEM=$(cat /proc/meminfo | grep MemTotal | awk {'print int($2/1024)'})
USE=$(echo "$MEM $PER" | awk {'print int($1/100*$2)'})

if [ "$USE" >= "$MAXMEM" ]; then
service httpd restart
fi


Heb dit script hier even vlug uit het hoofd gedaan dus tweaks kunnen nodig zijn ;).


Bedankt, we gaan dit eens proberen. Knap dat je dit zo even neer knalt :D

Voxio
16/10/14, 15:14
Je zou ook eens kunnen kijken naar System Integerty Monitor (https://www.rfxn.com/projects/system-integrity-monitor/), deze checkt met een vaste interval of Apache nog wel in staat is om pagina's te serveren ... zo niet dan herstart hij deze.
Hetzelfde geldt voor andere services, het is inderdaad geen juiste oplossing voor je probleem maar je slaapt er in ieder geval beter bij :)