Hlavní navigace

Jak nám v Alze aktualizace Windows způsobila výkonové problémy databáze

David Hlaváček

Praktická ukázka, jak může jedna aktualizace způsobit výkonové problémy databázového serveru.

Doba čtení: 3 minuty

V tomto krátkém článku bych se s vámi rád podělil o výkonnostní problém, kterému naše servery v Alza.cz nedávno čelily. Naštěstí se nám podařilo identifikovat příčinu a záškodníka eliminovat.

Rád bych předem upozornil, že nechci nikoho napadat ani ukazovat prstem na „ty zlé“. Mou hlavní motivací je podělit se o informace, které vás mohou pobavit, inspirovat, poučit, nebo dokonce pomoci. Za obrovský úspěch bych považoval, kdyby následující informace pomohly alespoň jednomu z vás. Vyhnout se nebo vyřešit výkonnostní problém, kterému možná také čelíte.

Od pondělí 6. 8. 2018 se čtyři naše databázové servery (s Microsoft SQL 2017) potýkaly s významným zhoršením výkonu při procesování uživatelských operací nebo při synchronizaci databází vysoké dostupnosti Availability Group. Konkrétně jde o dva servery obsluhující databázový provoz webu a dva servery, na kterých jsou provozovány databáze interních informačních systému. Oba páry jsou na sobě nezávislé, přesto u nich počátkem tohoto týdne došlo k výskytu výkonnostních problémů, které přetrvávaly několik dní.

Pro příklad uvádím dva obrázky grafů níže, ze kterých jsem z bezpečnostních důvodů odstranil legendu. První obrázek zachycuje graf výkonu odezvy Alza webu a jednotlivých složek, které se na celkové rychlosti webu podílejí. Pokud chceme analyzovat rychlost odpovědi databázového systému na dotaz webu, sledujme modrou spojnici, která se běžně pohybuje kolem 300 až 500 milisekund. Asi se shodneme na tom, že první obrázek je nuda, nic zvláštního.

Běžný stav
Autor: David Hlaváček, Alza.cz

Běžný stav

Druhý obrázek je úplně jiná situace. Takto vypadal pohled na odezvu webu zhruba od pondělka. Pokud celková odezva webu přesáhne hranici X sekund, zákazník odchází ke konkurenci. Končí veškerá legrace, problém musí být vyřešen co nejdříve a bohužel, zlaté IT pravidlo restartu počítače v tomto případě nepomůže.

Stav po aktualizaci
Autor: David Hlaváček, Alza.cz

Stav po aktualizaci

Snažili jsme se korelovat počátek výskytu problémů s dalšími událostmi. V pondělí nedošlo k žádnému významnému release aplikace, nenastaly žádné změny v architektuře. Monitorování nám ukázalo, že některé operace databázového systému trvají na produkčním hardwaru zhruba jednu sekundu, zatímco na mnoho let starém vývojovém serveru nula milisekund.

Propad odezvy webu byl způsoben především timeout chybami s následujícím zněním: „Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. This failure occurred while attempting to connect to the routing destination.

Souběžně jsme prověřovali síťové prvky a konektivitu, prohledávali systémové a aplikační logy, analyzovali exekuční plány procedur ve snaze zjistit důvod zpomalení dotazů. Bohužel, bez úspěchu.

Abych vás déle nenapínal. Jak to tak bývá, nejjednodušší vysvětlení je obvykle to správné. A co Windows aktualizace? Den instalace korespondoval s počátkem problémů. Možná nás to v první chvíli nenapadlo proto, že nikdo z řešitelského teamu instalaci aktualizací operačního systému neprováděl, možná proto, že jsme tak „prostý“ důvod prostě jen nečekali. Ať je to jak chce, jsme poučeni a problém byl vyřešen.

Aktualizace KB4338822
Autor: David Hlaváček, Alza.cz

Aktualizace KB4338822

Konkrétně se jednalo o aktualizaci operačního systému označenou jako KB4338822.

Vím, že na našich databázových serverech s Availability Group vysokou dostupností tato aktualizace způsobuje výkonnostní problémy a nestability. V žádném případě nemohu a nechci tvrdit, že ke stejné situaci dojde na všech systémech. Již v minulosti jsme v Alze narazili na bug, který se projevoval specificky pouze na systémech s vyšším počtem CPU a systémy pod 20 core nebyly postiženy.

Dost dobře tedy může jít o podobný problém, kdy hraje roli hardware, software nebo právě přítomnost technologie vysoké dostupnosti Availability Group. Pokud tedy budete příslušnou aktualizaci instalovat, doporučuji provést testování na příslušném prostředí, nebo alespoň důsledné monitorování produkčního systému po nasazení.

Text původně vyšel na LinkedIn profilu autora.

Našli jste v článku chybu?