Apache: poruka "resource temporarily unavailable"
Javilo se nekoliko kolega sa sličnim problemima u radu web poslužitelja Apache. Naime, apache se nakon pokretanja ruši, ne radi stabilno i općenito ne radi pouzdano, pa ni monit ne može trajno pomoći (a ni nije mu namjena da stalno podiže neispravne servise). U logovima nalazimo prilično čudne zapise:
[Fri Jan 18 13:29:36 2013] [alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 33
[Fri Jan 18 13:29:36 2013] [alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 33
[Fri Jan 18 13:29:36 2013] [alert] Child 26157 returned a Fatal error... Apache is exiting!
[Fri Jan 18 13:29:36 2013] [emerg] (22)Invalid argument: couldn't grab the accept mutex
Ovo je prvi put da smo se susreli s ovim tipom greske, ali Google je pronasao dva rješenja. Prvi je recept promjena mutexa, koji se može pronaći na adresi http://tinyurl.com/byc4tga. Dovoljno je u datoteku /etc/apache2/apache.conf upisati sljedeće i restartati apache:
AcceptMutex fcntl
Čini se da se greška zna dogoditi kada apache naiđe na neki limit u resursima (broj dopuštenih otvorenih datoteka ili memorijski limit). Ukoliko gornji recept ne pomogne, možete probati promijeniti limite pomoću naredbe ulimit, koju ćete upisati negdje na početak datoteke /etc/init.d/apache2:
#!/bin/sh
ulimit -u 150
ulimit -n 65535
set -e
Sličan savjet smo našli na službenim stranicama projekta Apache: http://httpd.apache.org/docs/2.4/vhosts/fd-limits.html.
Alternativno, postoji bolje mjesto za postavljanje vrijednosti maksimalnog broja otvorenih datoteka, a to je u /etc/apache2/envvars:
APACHE_ULIMIT_MAX_FILES="ulimit -n 65535"
Nadamo se da će vam neki od gornjih savjeta pomoći.
- Inačica za ispis
- Logirajte se za dodavanje komentara
- PDF version
Komentari
izvod iz loga
Iz kojeg je točno loga ovaj dio u članku?.Meni povremeno isto monit alert javi ispad apache servera i njegov ponovni pokret.
Pomislio sam da ima veze sa ovim opisom u članku.