Mam mały wirtualny prywatny serwer z CentOS i www / mail / db, który ostatnio miał kilka incydentów, w których serwer WWW i ssh przestały odpowiadać.
Patrząc na dzienniki, zobaczyłem, że Oom-Killer zabił te procesy, prawdopodobnie z powodu braku pamięci i zamiany.
Czy ktoś może dać mi wskazówki, jak zdiagnozować, co mogło być przyczyną ostatniego incydentu? Czy to prawdopodobnie pierwszy proces został zabity? Gdzie jeszcze powinienem szukać?
Ostatnio miałem z tym trudności, ponieważ procesy, na które działa agresor, niekoniecznie muszą przebiegać źle. Próbując to zdiagnozować, dowiedziałem się o jednym z moich ulubionych narzędzi, na szczycie.
To narzędzie jest jak top na sterydach. W ustalonym przedziale czasu profiluje informacje o systemie. Następnie możesz go odtworzyć, aby zobaczyć, co się dzieje. Podkreśla procesy, które wynoszą 80% + na niebiesko i 90% + na czerwono. Najbardziej użytecznym widokiem jest tabela wykorzystania pamięci, która ilość pamięci została przydzielona w ostatnim okresie. To właśnie najbardziej mi pomogło.
Fantastyczne narzędzie - nie mogę powiedzieć wystarczająco dużo o tym.
na szczycie monitora wydajności
źródło
Ten artykuł na temat oswajania kilomówów wydaje się szczególnie przydatny. Wydaje się, że możesz ustawić priorytety, aby zapobiec zabijaniu oomów przez niektóre procesy (sshd byłoby dobrym początkiem dla VPS!)
źródło
OOM zabija tylko proces, który w tym czasie ma najwięcej pamięci. Niekoniecznie proces, który przekroczył limit lub wzbogacił wywołanie te OOm.
Również Linux jest luźny z alokacją pamięci. AKA, jeśli twój proces potrzebuje 5 GB, ale używa tylko 3, Linux pozwoli innemu procesowi użyć 2, którego nie używa. wydajność> niezawodność. wtedy, gdy p1 potrzebuje pełnego 5, nie może go zdobyć
Nie jest to exeprt. po prostu sobie z tym radzę i co znalazłem
źródło