Nagłe zamknięcie serwera bazy danych jest bardzo poważną awarią. Trzeba tego uniknąć w systemie produkcyjnym, ponieważ może nie zacząć od nowa.
Serwer bazy danych jest zasobem udostępnionym i prawie nigdy nie powinien kończyć się w nieplanowany sposób podczas produkcji. Jedyną rzeczą, która powinna spowodować nieplanowane zakończenie, jest katastrofalny sprzęt lub awaria zasilania. Większość prawidłowo skonfigurowanych produkcyjnych serwerów baz danych ma nieplanowane zakończenie raz na dziesięć lat lub rzadziej. Poważnie.
Co robić?
Napraw konfigurację apache. Ogranicz liczbę wątków roboczych i procesów, z których może korzystać, aby nie działały dziko. Dowiedz się, jak to zrobić. To ważne. Zobacz tutaj: http://httpd.apache.org/docs/current/mod/mpm_common.html#maxrequestworkers
Napraw błędy w aplikacji internetowej, które powodują, że Twój apache zaczyna dzika.
Jeśli możesz, przenieś swój serwer mysqld na inny serwer z Apache, więc te dwa nie walczą o te same zasoby sprzętowe.
Skonfiguruj swój mysqld, aby ograniczyć liczbę połączeń, które będzie akceptował z wątków pracownika apache lub innych klientów. Twoja aplikacja internetowa prawdopodobnie obsługuje sytuację, w której wątek roboczy musi czekać na połączenie. Spójrz tutaj. http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_connections
Czy jesteś na instancji EC2 micro? Musisz zrobić poważne dostrojenie. Zobacz tutaj: http://ubuntuforums.org/showthread.php?t=1979049
Dziękuję Ollie! Tak, masz rację, próbuję wycisnąć mikro instancję EC2. Potem będę kontynuował dostrajanie apache i mysql i zacznę analizować skalę i skalować w dół. Ale czy istnieje sposób, aby wykryć, że mysql spadł i uruchom go automatycznie? Na wszelki wypadek, jeśli nie monitoruję serwera, a ja go jeszcze nie zoptymalizowałem. – Alex