AGENT SMITH & AZURE (MATRIX)

Początek roku 2023 zaczął się od jednej z największych awarii Sertum, z jakimi mieliśmy do czynienia w ostatnich latach. Awaria objawiała się praktycznie 100% obciążeniem procesorów na serwerach Azure, na których działa Sertum i to niezależnie od ilości instancji oraz mocy serwerów. Powodowało to, że część wywołań aplikacji kończyła się błędem (timeoutem – zapytanie użytkownika nie zostało wykonane w założonym czasie).

Jak widać na powyższym wykresie, problemy zaczęły się już w poniedziałek rano, kiedy większość aptek została uruchomiona (czyli jeszcze przed aktualizacją systemu, która miała miejsce w nocy z poniedziałku na wtorek). To czego nie widać na tym wykresie to zmiany mocy obliczeniowej oraz liczby maszyn, na których działa Sertum. W poniedziałek Sertum pracowało jeszcze na 2 instancjach. We wtorek kiedy Sertum działało z dużymi utrudnieniami, zwiększyliśmy ich liczbę do 16 (rozłożone na 3 kopie), przechodząc na najmocniejsze maszyny dostępne w Azure.

Zwiększenie mocy i liczby maszyn, nie poprawiało działania Sertum. Padło podejrzenie na wersję, która została wydana w poniedziałek w nocy, więc podjęliśmy decyzję o jej wycofaniu. Wycofanie wersji także nie poprawiło sytuacji.

Sprawa wyglądała bardzo dziwnie. Nie wiadomo z jakich przyczyn, nasze serwery pracowały wolno za to serwery SQL’a się nudziły. Przez ponad 25 godzin (poniedziałek – wtorek) siedzieliśmy przy komputerach i szukaliśmy przyczyny. Wyłączaliśmy poszczególne serwisy, rekonfigurowaliśmy usługi i zmienialiśmy moc serwerów, a hotline odbierał telefony od użytkowników (z aptek oraz hurtowni). Im więcej nad tym siedzieliśmy tym coraz bardziej utwierdzaliśmy się w przekonaniu, że to nie jest problem po naszej stronie. W takich sytuacjach zazwyczaj pomagała zmiana rozmiaru maszyny (wtedy Azure przerzuca nasz serwer do innego kontenera, który ma więcej wolnej mocy obliczeniowej) – niestety nie tym razem 😭. Dziwne także było to, iż Azure nie raportował problemów po swojej stronie.

We wtorek około południa postanowiliśmy się skontaktować z Microsoft Polska, w celu ustalenia czy coś się dzieje w Azure i czy mają więcej zgłoszeń od innych klientów. Microsoft zasugerował założenie incydentu i odezwanie się bezpośrednio do inżynierów Azure.

Od godziny 14:00 mieliśmy już kontakt z inżynierem Azure z Dublina, z którym pracowaliśmy do godziny 18:00 nad rozwiązaniem problemu. Robiliśmy zrzuty pamięci instancji serwera, analizowaliśmy logi i wyniki były sprzeczne. Wszystko wskazywało na to, że na serwerze generuje się ogromna liczba wątków, które nie mogą się zamknąć, ponieważ nie odpowiada SQL (który się nudzi i nic nie robi). W pewnym momencie inżynier Azure stwierdził, że mamy bardzo dużo wyjątków w usłudze Aplication Insights (https://azure.microsoft.com/en-us/products/monitor). Jest to usługa firmy Microsoft wbudowana w Azure posiadająca agenta, który odpowiada za zbieranie danych, potrzebnych do analizy i monitorowania sposobu działania aplikacji (takie bardzo, bardzo zaawansowane logi). Jak to Pan z Azure stwierdził: “Gdzieś to kiedyś, u jakiegoś klienta już widziałem. Wyłączmy agenta, być może jest uszkodzony” 🤨No i to okazało się właściwą decyzją. Wyłączenie agenta usługi Aplication Insight rozwiązało problem od ręki.

Okazuje się, że bardzo rzadko, ale jednak czasami ten agent się buntuje i zaczyna żyć własnym życiem (coś jak Agent Smith z filmu Matrix 😀), generując przy tym dużo komunikatów i pożerając zasoby maszyny oraz sieci na której działa. Prawdopodobnie to miało także wpływ na nasze pozostałe kopie serwerów (w sumie we wtorek to mieliśmy już uruchomione 3 kopie serwerów o łącznej liczbie możliwych instancji: 16).

Ogólnie inżynier Azure podsumował to w ten sposób:

Ogólnie to co się wydarzyło, to strasznie rzadki przypadek. Zbiegł się on z naszym wydaniem wersji, chociaż z analizy logów wynika, że Agent zaczął przejmować kontrolę już w poniedziałek rano. Tylko dzięki zwiększaniu liczby instancji, sytuacja nie była od razu odczuwalna.

Teraz musimy wraz z Microsoft ustalić, co dokładnie się stało i określić co trzeba zrobić, aby taka sytuacja jak ta nie miała miejsca w przyszłości – być może trzeba obudzić wybrańca 😀

W tym miejscu chciałbym podziękować naszym wszystkim klientom za wyrozumiałość. Pracowaliśmy ile się dało, aby ten problem rozwiązać jak najszybciej. No i udało się. 

Jak zwykle nie poddajemy się i walczymy do końca.

Seweryn.

Jedna odpowiedź to “AGENT SMITH & AZURE (MATRIX)”

  1. Marcin Wójcik Says:

    Kolejne doświadczenie… zwłaszcza lekcja cierpliwości za nami 😛


Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s

%d blogerów lubi to: