Tato stránka byla strojově přeložena. Přečtěte si anglický originál. English

FBScanner je nahrazen nástrojem HQbird. Viz Monitoring v HQbird.

FBScanner (Firebird Scanner) je nástroj pro řešení všech typů problémů s výkonem Firebird.

Dokumentace FBScanner

Moduly FBScanner

FBScanner je jedním z nejefektivnějších nástrojů IBSurgeon: sleduje SQL provoz mezi serverem a klienty. Funkce FBScanner:

  1. LogAnalyzer - nástroj pro podrobnou analýzu SQL dotazů, plánů, transakcí a připojení, podporuje všechny verze Firebird a InterBase.
  2. FBScanner Viewer - prohlížeč v reálném čase, zobrazuje připojení, dotazy a transakce, které procházejí přes FBScanner Service, podporuje všechny verze Firebird a InterBase.
  3. Podpora všech verzí Firebird (1.0 - 2.5) a InterBase (4.0-XE3). FBScanner je jediný nástroj pro analýzu SQL dotazů v produkčních databázích Firebird a InterBase ve verzích před Firebird 2.1, zejména pokud byla aplikace vyvinuta třetí stranou a není k dispozici žádný zdrojový kód.

Seznam nejzajímavějších schopností FBScanner:

  • Logování SQL dotazů, připojení a transakcí se všemi parametry pro podrobnou analýzu (pro jedno nebo několik pracovišť), za účelem nalezení výkonnostních úzkých míst ve Firebird (VŠECHNY verze) a InterBase (VŠECHNY verze).
  • Monitorování připojení v reálném čase. FBScanner Viewer zobrazuje všechna připojení k vybranému databázovému serveru: IP/DNS název připojeného klienta, databázi a čas připojení.
  • Monitorování SQL dotazů v reálném čase. Pro každé připojení FBScanner zobrazuje všechny aktuálně spuštěné SQL dotazy spolu s jejich transakčními parametry.
  • Detekce nejstaršího připojení a nejstarší aktivní transakce, abyste mohli analyzovat, co může mít neoptimální chování transakcí, nebo nesprávný návrh transakcí, nebo zobrazit uživatele, kteří mohou používat aplikaci způsobem, který může ovlivňovat výkon.
  • Odpojení klientů (chyby 10054). Zkontrolujte, že odpojení probíhá správně, a můžete také použít tento software k odpojení uživatelů za účelem údržby nebo upgrade databáze.
  • FBScanner umožňuje směrování konkrétních aplikací nebo konkrétních uživatelů, abyste se mohli zaměřit na konkrétní aplikace nebo uživatele.

Jak může FBScanner pomoci identifikovat a vyřešit problém s výkonem Firebird nebo InterBase? Pojďme rychle projít nejzajímavější funkce FBScanner a začneme modulem LogAnalyzer.

KROK 1: LogAnalyzer “Server Load”

FBScanner Log Analyzer

Stáhněte si demo verzi FBScanner a nainstalujte ji. Spusťte “FBScanner Service Settings” z nabídky Start, poté klikněte na “Advanced options”, záložka “SQL Log”.

Vytvořte log databázi (měla by být na jiné instanci Firebird na tomto nebo jiném počítači - podrobnosti viz “FBScanner User Guide”, strany 14-16). Poté bude veškerý SQL provoz, který prochází přes FBScanner, uložen do log databáze.

Spusťte “FBScanner Log Analyzer” a připojte se k log databázi. Na první záložce “Server load” můžete vidět přehled SQL připojení a příkazů. Je snadné vidět špičky zatížení a určit okamžiky, kdy byl výkon špatný.

Můžete přibližovat a posouvat tento graf výkonu, zapínat a vypínat parametry pro zobrazení - abyste zachytili okamžik, kdy problém začíná. Poté klikněte pravým tlačítkem na bod, kde chcete přejít do detailů, a zvolte “Go to the SQL list on HH:mm”.

KROK 2: SQL Log v LogAnalyzer

FBScanner Log Analyzer

Pokud jste vybrali záložku “All Statements”, zobrazí se následný seznam všech SQL dotazů. Vezměte prosím na vědomí, že zde jsou SQL dotazy ze všech připojení, která jsou logována FBScanner (je možné nastavit FBScanner tak, aby monitoroval pouze jedno připojení nebo skupinu počítačů, nebo pouze vybranou aplikaci - vše, co potřebujete, je použít odpovídající připojovací řetězec a/nebo porty - přečtěte si o tom v “FBScanner User Guide”).

Můžete zúžit své hledání - nastavte počáteční a koncový čas a poté dotazy na EXECUTION_TIME, abyste viděli nejdelší dotazy.

Pro každý dotaz můžete vidět text SQL dotazu, jeho parametry, čas začátku/konce, počet načtených záznamů a také víte, kdo a kdy jej provedl: IP adresa, uživatelské jméno atd.

Můžete také přinutit FBScanner k logování SQL plánů, k tomu je třeba nastavit příslušnou značku v “FBScanner Service Settings”.

Když identifikujete dotaz, který má problémy, můžete vidět jeho připojení a transakci: klikněte pravým tlačítkem a zvolte “View connection and transactions for statement ID=…”. Přesune vás to na záložku “All connections and Logs”.

KROK 3: Připojení a transakce

FBScanner Log Analyzer

Záložka “All connections and Logs” obsahuje seznam všech připojení a souvisejících transakcí a příkazů jako master-detail.

Když kliknete na SQL dotaz v mřížce níže, všechny příkazy v rámci stejné transakce budou označeny tučně. To vám dá pochopení skutečného toku transakcí. Také jsou zde parametry transakce (prázdné parametry transakce znamenají, že tato transakce má výchozí parametry “wait, write, snapshot”).

Také FBScanner LogAnalyzer umožňuje spustit vybraný dotaz proti jiné verzi databáze a porovnat jeho výkon. Může také provádět hromadné spouštění SQL, což může být užitečné při migraci mezi verzemi Firebird.

Důležité! Demo verze FBScanner ukládá některé texty dotazů jako “Demo” a funguje pouze 7 dní. Plná verze nemá tato omezení.

KROK 4: FBScanner Viewer

FBScanner Log Analyzer

FBScanner Viewer je součástí FBScanner, která je zodpovědná za sledování připojení, dotazů a transakcí v reálném čase. FBScanner Viewer se připojuje přímo k FBScanner Service a získává informace o SQL provozu.

FBScanner Viewer lze spustit na libovolném počítači v lokální síti: připojuje se přes port 30100 ve výchozím nastavení a získává online data z FBScanner Service.

Ve výchozím nastavení FBScanner Viewer obnovuje svůj stav každých 0,5 sekundy a je také možné vidět 20 nejnovějších dotazů připojení.

Pro pomalá (internetová) připojení lze FBScanner Viewer nastavit tak, aby obnovoval data každých 5 sekund, například.

Také FBScanner Viewer lze použít pro správu připojení: může odpojit uživatele (vybrané, všechny, podle masky) se simulací chyby odpojení 10054 a podporuje funkce bílého a černého seznamu.

Tipy pro úspěšnou optimalizaci

Důležité! Doporučuje se zahájit vyšetřování problémů s výkonem pomocí MON$Logger: pořiďte několik snímků z databáze během doby vysokého zatížení (když uživatelé pociťují největší zpomalení) a pokuste se zjistit, které obchodní procesy spotřebovávají nejvíce IO (pozor na dotazy s vysokými hodnotami READ_SEQ_READS a RECORD_IDX_READS).

Poté nainstalujte FBScanner Service na tyto pracovní stanice (nebo použijte vyhrazený server) a logujte všechny dotazy z podezřelých pracovních stanic: prozkoumejte jejich časy EXECUTE a PREPARE, zkontrolujte SQL plány atd. Najděte a opravte problém, poté zkontrolujte, že nová verze běží rychleji než předchozí!

Použijte FBScanner Viewer pro zobrazení dotazů spuštěných na serveru v reálném čase (tato funkce je také velmi užitečná pro ladění složitých SQL).

Popis FBScanner

FBScanner je výkonný nástroj pro administrátory a vývojáře Firebird a InterBase, navržený pro zachycení a analýzu TCP/IP provozu mezi serverem a klientskými aplikacemi.

FBScanner extrahuje v reálném čase mnoho podrobností o připojeních, dotazech (příkazech), transakcích, označuje a sleduje všechny tyto objekty provozu pomocí jedinečného mechanismu značek. FBScanner také může logovat veškerou aktivitu do externí databáze Firebird a provádět řadu jedinečných administrativních úkolů.

FBScanner (Firebird Scanner) je nástroj, který může monitorovat a zobrazovat veškerý provoz mezi servery Firebird a InterBase a jejich klientskými aplikacemi.

FBScanner Service funguje jako brána (proxy) na počítači s Firebird/InterBase (pouze Windows) nebo může být nainstalován na vzdáleném počítači a pracovat s Firebird na všech podporovaných operačních systémech (Windows, Linux, Mac OS X, HP-UX atd.).

FBScanner lze použít k profilování databázových aplikací, monitorování uživatelské aktivity, správě databázových připojení (včetně odpojení klientů na architektuře Classic i SuperServer). Je také ideální pro řešení chyb INET (INET/inet_error: send errno = 10054), stejně jako pro audit stávajících aplikací a ladění výkonu.

FBScanner podporuje Firebird (1.0, 2.0, 2.1, 2.5) a InterBase (4.0, 5.x, 6.x, 7.0, 7.1, 7.5, 2007, 2009, XE, XE3).

FBScanner je transparentní z hlediska databázové aplikace a nevyžaduje žádné změny v aplikaci nebo zdrojovém kódu databáze, logice nebo konfiguraci.

FBScanner V3.x funguje pouze na Windows a vyžaduje nainstalované .NET 2.0 (nebo vyšší) Framework.

Prezentace o FBScanner

FBScanner: nástroj IBSurgeon pro řešení všech typů problémů s výkonem Firebird. Migrace Firebird: z Firebird 1.5 na Firebird 2.5
Zobrazit více prezentací od Nataly Polyanskaya

Jak FBScanner funguje

FBScanner Service

Důležité! V této části nepopisujeme práci MON$Logger a TraceAPI Plugin, je věnována pouze FBScanner Service, FBScanner Viewer a LogAnalyzer.

FBScanner Service musí být obvykle nainstalován na stejném počítači, kde běží server Firebird nebo InterBase (jako volbu jej můžete nainstalovat na jiný počítač a poté přesměrovat provoz na skutečný server Firebird nebo InterBase). Během instalace vás konfigurační nástroj FBScanner požádá o výběr: nainstalovat FBScanner na výchozí port InterBase nebo Firebird (3050) a změnit konfiguraci služby Firebird na 3052 (lze upravit), nebo nainstalovat FBScanner tak, aby naslouchal na jiném TCP portu.

Důležité! FBScanner Service funguje pouze s TCP připojeními, takže klienti používající místní (XNET) a NetBEUI (WNET) připojovací řetězce obejdou FBScanner. Pro monitorování takových klientských aplikací byste měli použít MON$Logger a TraceAPI Plugin.

Pokud zvolíte první možnost instalace, všechny požadavky aplikací projdou přes FBScanner Service.

##### Instalace na straně serveru ##### Vzdálená instalace

Dopad na výkon

Obvyklý scénář procesu optimalizace výkonu zahrnuje instalaci FBScanner na 1-2 typické pracovní stanice, aby se zachytil typický SQL provoz. Není důvod zachycovat a logovat veškerý SQL provoz ze všech pracovních stanic - je příliš mnoho informací k analýze a příliš mnoho opakujících se dotazů.

Pokud však chcete nainstalovat FBScanner jako proxy pro celý server a logovat všechny operace tam, zajistěte stejnou IO propustnost a srovnatelný CPU a RAM jako na produkčním serveru. Pro databáze s vysokým zatížením může log FBScanner růst o několik GB za den. V takových případech doporučujeme vyhrazenou (vzdálenou) instalaci FBScanner.

Služba FBScanner nemění nic v přenášeném provozu a funguje jednoduše jako transparentní proxy, takže všechny aplikace budou fungovat normálně. Služba FBScanner spotřebovává přibližně 125-150 MB paměti pro monitorování 50-70 aktivních klientů a při použití sníží výkon databáze o 5 až 15 %. Spotřeba paměti závisí na návrhu klientské aplikace. Požadovaná šířka pásma I/O závisí na intenzitě SQL provozu.

Během testování jsme ověřili FBScanner v provozu v několika reálných prostředích a aplikacích, kde má databáze 30-200 aktivních připojení, a zjistili jsme, že degradace výkonu byla minimální. V mnoha případech uživatelé nebyli schopni zjistit, že je monitorování aktivní.

Segmentace provozu

Použití FBScanner na nestandardním portu umožňuje segmentovat různé provozy z různých aplikací. Například existují aplikace A a B. B je stará a stabilní aplikace, která nevyžaduje žádné ladění ani monitorování, a A je nová aplikace. Je snadné nastavit připojovací řetězec pro novou aplikaci A tak, aby používala nestandardní port (např. server/3070:Disk:\Cesta\databaze.gdb) a směrovat všechny požadavky z aplikace A přes FBScanner za účelem monitorování SQL dotazů a chování aplikace.

Pomocí tohoto přístupu můžete snadno rozpoznat a vyřešit problémy v produkčním prostředí, ať už problém pochází z nové aplikace, nebo dokonce z konkrétního segmentu vaší místní sítě.