Apache i MySQL pozabijali się
Tego jeszcze nie było! Nagle w okolicach południa 4 września 2008 serwer odmówił posłuszeństwa i nie wyświetlał żadnej ze stron. No prawie żadnej – stronki oparte o czysty HTML nawet chodziły. Chodziły też strony z SQL, które nie korzystały z PowerDNS (który wykorzystuje bazy danych). Więc sami widzicie, że nie było zależności które strony działały, które nie…. . I w zależności co się pogrzebało w configach to jedne chodziły, inne nie, i na odwrót. Męczyłem sie z tym ponad 2 dni, aż w końcu dzisiaj mi się udało.
Nie było by problemu, gdyby takie fiksowanie serwera wzięło się z jakiejś przyczyny typu grzebanie w configach, aktualizacja paczek w systemie (mam Debian Testing :/), czy coś podobnego. Problemy tak nagle zaczęły występować, że nie przypominam sobie, abym coś majstrował w systemie.
Co dokładnie było problemem?
Źle ustawione wartości odpowiedzialne za maksymalną ilość uruchomionych procesów Apache i MySQL.
Teraz config Apache odpowiedzialny za to wygląda następująco:
/etc/apache2/apache2.conf
<IfModule mpm_prefork_module>
StartServers 20
MinSpareServers 15
MaxSpareServers 30
MaxClients 80
MaxRequestsPerChild 1000
</IfModule><IfModule mpm_worker_module>
StartServers 10
MaxClients 80
MinSpareThreads 20
MaxSpareThreads 50
ThreadsPerChild 20
MaxRequestsPerChild 1000
</IfModule>
A wcześniej były wartości 150!
Natomiast MySQL:
/etc/mysql/my.cnf
[mysqld]
set-variable = max_connections=120
max_user_connections=24
Wcześniej także były wartości 2x większe.
Miejmy nadzieję, że teraz dzięki tym zmianom wszystko się ustabilizuje. Puki co od godzin 9 rano (teraz jest 14:44) wszystko pracuje dobrze i wykresy powróciły do swoich pierwotnych położeń.