Apache i MySQL pozabijali się

monitor konsola serwerTego 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ń.