Nedostatečná paměť Buffer Pool Extension prodloužila dotazy o hodiny
Jeden z našich klientů se v nedávné době střetl s problémem, který spočíval v dramatickém zpomalení dotazů načítajících údaje z jeho databáze. Komplikace se dostavily bezprostředně po migraci databázového systému, kterou společnost provedla. Výsledkem bylo prodloužení běžně minuty trvajících dotazů na hodiny. Případu se proto ujal náš databázový specialista David Hlaváček, který podstatu problému identifikoval a klientovi ho pomohl vyřešit.
Problémy spustila migrace na vyšší edici Microsoft SQL Serveru
Klient nás informoval o výkonnostních problémech dotazů spuštěných na databázovém systému jeho serveru. Stalo se tak když plánoval přechod na novější SQL server (SQL označuje typ databázového systému) s výkonnějšími procesory, provedl migraci databáze a veškeré konfigurace.
Po migraci však nastaly problémy. Uživatelé začali hlásit, že se potýkají se značným zdržením dotazů, z nichž některé nebyly dokončeny ani po několika hodinách. Proto jsme okamžitě provedli kontrolu celé řady výkonnostních čítačů, z nichž však žádný nepřevyšoval doporučené hodnoty. Bylo tedy jasné, že je třeba hledat zdroj problému jinde.
Chybu v Buffer Pool Extension odhalila až důkladná analýza
Při analýze zdrojů, na které dotazy serveru čekají při zpracování, jsme narazili na problém sečtením dat z Buffer Pool Extension (BPE). BPE je paměťovým rozšířením serveru, které umožňuje vyšší rychlost přenosu dat. Velikost paměti BPE, a tedy i rychlost datového přenosu, je ale omezena konkrétní edicí SQL serveru. Ačkoli verze SQL serveru, kterou klient používal před migrací, velikost paměti BPE neomezovala, paměť u nové verze už zastropována byla. Problém tedy spočíval v nevhodné konfiguraci BPE, která byla příčinou snížené rychlosti přenosu u jednotlivých datových souborů.
Změna konfigurace a vyšší licence umožnily opět hladký chod systému
Poté, co byla odstraněna chybná konfigurace BPE došlo k částečnému zlepšení výkonu některých dotazů. A to hlavně proto, že část nejpoužívanějších dat držel server v RAM a dotazy na tuto datovou množinu byly tím pádem rychlejší. Nicméně vzhledem k tomu, že celková datová velikost databáze představuje přibližně 1 TB, nebyl přesun části zátěže na RAM dostatečným řešením. Aby byly problémy definitivně vyřešeny v co nejkratším čase, rozhodli jsme se proto pro okamžitý upgrade serverové edice. Ten sice představuje značný finanční náklad, v kombinaci s 300 GB RAM však problém zcela vyřešil.