Ова страница је машински преведена. Прочитајте енглески оригинал. English

FBScanner је замењен са HQbird. Погледајте Мониторинг у HQbird.

FBScanner (Firebird Scanner) је алат за решавање свих врста проблема са перформансама у Firebird-у.

FBScanner документација

FBScanner модули

FBScanner је један од најефикаснијих IBSurgeon алата: прати SQL саобраћај између сервера и клијената. Могућности FBScanner-а:

  1. LogAnalyzer - алат за детаљну анализу SQL упита, планова, трансакција и веза, подржава све верзије Firebird-а и InterBase-а.
  2. FBScanner Viewer - прегледач у реалном времену, приказује везе, упите и трансакције које пролазе кроз FBScanner Service, подржава све верзије Firebird-а и InterBase-а.
  3. Подршка за све верзије Firebird (1.0 - 2.5) и InterBase (4.0-XE3). FBScanner је једини алат за анализу SQL упита у продукцијским Firebird и InterBase базама података у верзијама пре Firebird 2.1, посебно ако је апликација развијена од стране трећих лица и не постоји доступан изворни код.

Листа најузбудљивијих могућности FBScanner-а:

  • Евидентирање SQL упита, веза и трансакција са свим параметрима за детаљну анализу (за једно или више радних места), како би се пронашли уски грла перформанси у Firebird-у (СВЕ верзије) и InterBase-у (СВЕ верзије).
  • Праћење веза у реалном времену. FBScanner Viewer приказује све везе ка изабраном серверу базе података: IP/DNS име повезаног клијента, базу података и време повезивања.
  • Праћење SQL упита у реалном времену. За сваку везу, FBScanner приказује све тренутно извршене SQL упите заједно са њиховим параметрима трансакција.
  • Откривање најстарије везе и најстарије активне трансакције како бисте могли да анализирате могуће неоптимално понашање трансакција, или неправилан дизајн трансакција, или да прикажете кориснике који можда користе апликацију на начин који утиче на перформансе.
  • Прекиди клијентских веза (10054 грешке). Проверите да ли се прекид одвија исправно и такође можете користити овај софтвер за искључивање корисника ради одржавања или надоградње базе података.
  • FBScanner омогућава усмеравање одређених апликација или одређених корисника како бисте могли да се фокусирате на специфичне апликације или кориснике.

Како FBScanner може помоћи у идентификацији и решавању проблема са перформансама Firebird-а или InterBase-а? Хајде да брзо прегледамо најзанимљивије функције FBScanner-а и почнемо са LogAnalyzer модулом.

КОРАК 1: LogAnalyzer “Оптерећење сервера”

FBScanner Log Analyzer

Преузмите демо верзију FBScanner-а и инсталирајте је. Покрените “FBScanner Service Settings” из Start менија, затим кликните на “Advanced options”, картица “SQL Log”.

Креирајте базу података за евиденцију (треба да буде на другој Firebird инстанци на овом или другом рачунару - погледајте “FBScanner User Guide”, стране 14-16 за детаље). Након тога, сав SQL саобраћај који пролази кроз FBScanner биће сачуван у бази података за евиденцију.

Покрените “FBScanner Log Analyzer” и повежите се на базу података за евиденцију. На првој картици, “Оптерећење сервера”, можете видети преглед SQL веза и изјава. Лако је уочити врхове оптерећења и одредити тренутке када су перформансе биле лоше.

Можете зумирати и померати овај графикон перформанси, укључивати и искључивати параметре за приказ - како бисте ухватили тренутак када проблем почиње. Након тога кликните десним тастером на тачку где желите да уђете у детаље и изаберите “Go to the SQL list on HH:mm”.

КОРАК 2: SQL евиденција у LogAnalyzer-у

FBScanner Log Analyzer

Ако сте изабрали картицу “All Statements”, приказаће се листа свих SQL упита. Имајте на уму да постоје SQL упити из свих веза које FBScanner евидентира (могуће је подесити FBScanner да прати само једну везу или групу рачунара, или само изабрану апликацију - све што је потребно је да користите одговарајући connection string и/или портове - прочитајте о томе у “FBScanner User Guide”).

Можете сузити претрагу - поставите почетни и крајњи тренутак, а затим филтрирајте упите по EXECUTION_TIME како бисте видели најдуже упите.

За сваки упит можете видети текст SQL упита, његове параметре, време почетка/краја, број преузетих записа, а такође знати ко и када га је извршио: IP адреса, корисничко име, итд.

Такође можете приморати FBScanner да евидентира SQL планове, за то је потребно да поставите одговарајућу ознаку у “FBScanner Service Settings”.

Када идентификујете упит који има проблема, можете видети његову везу и трансакцију: за то кликните десним тастером и изаберите “View connection and transactions for statement ID=…”. То ће вас одвести на картицу “All connections and Logs”.

КОРАК 3: Везе и трансакције

FBScanner Log Analyzer

Картица “All connections and Logs” садржи листу свих веза и повезаних трансакција и изјава у master-detail формату.

Када кликнете на SQL упит у мрежи испод, све изјаве у оквиру исте трансакције биће означене подебљано. То вам даје разумевање стварног тока трансакција. Такође, постоје параметри трансакције (празни параметри трансакције значе да ова трансакција има подразумеване “wait, write, snapshot” параметре).

Такође, FBScanner LogAnalyzer омогућава покретање изабраног упита против друге верзије базе података и поређење његових перформанси. Такође може да изврши групно SQL извршавање, што може бити корисно у случају миграције између Firebird верзија.

Важно! Демо верзија FBScanner-а чува неке текстове упита као “Demo”, и ради само 7 дана. Пуна верзија нема ова ограничења.

КОРАК 4: FBScanner Viewer

FBScanner Log Analyzer

FBScanner Viewer је део FBScanner-а који је одговоран за праћење веза, упита и трансакција у реалном времену. FBScanner Viewer се повезује директно на FBScanner Service и преузима информације о SQL саобраћају.

FBScanner Viewer се може покренути на било ком рачунару у локалној мрежи: повезује се преко порта 30100 подразумевано и преузима податке у реалном времену са FBScanner Service-а.

Подразумевано, FBScanner Viewer освежава свој статус сваких 0,5 секунди, а такође је могуће видети 20 најновијих упита за везу.

За споре (Интернет) везе, FBScanner Viewer се може подесити да освежава податке сваких 5 секунди, на пример.

Такође, FBScanner Viewer се може користити за управљање везама: може да искључи кориснике (изабране, све, по маски) са симулацијом 10054 грешке при прекиду, и подржава функционалност беле и црне листе.

Савети за успешну оптимизацију

Важно! Препоручује се да истрагу проблема са перформансама започнете са MON$Logger-ом: направите неколико снимака из базе података током периода великог оптерећења (када корисници доживљавају највеће успоравање), и покушајте да утврдите који пословни процеси троше највише IO (обратите пажњу на упите са високим READ_SEQ_READS и RECORD_IDX_READS вредностима).

Затим инсталирајте FBScanner Service на ова радна места (или користите наменски сервер) и евидентирајте све упите са сумњивих радних станица: истражите њихова EXECUTE и PREPARE времена, проверите SQL планове, итд. Пронађите и решите проблем, затим проверите да нова верзија ради брже од претходне!

Користите FBScanner Viewer за преглед упита у реалном времену који се извршавају на серверу (ова функција је такође веома корисна за отклањање грешака у сложеним SQL упитима).

FBScanner опис

FBScanner је моћан алат за администраторе и програмере Firebird-а и InterBase-а, дизајниран за пресретање и анализу TCP/IP саобраћаја између сервера и клијентских апликација.

FBScanner у реалном времену издваја много детаља о везама, упитима (изјавама), трансакцијама, означава и прати све ове саобраћајне објекте јединственим механизмом ознака. FBScanner такође може да евидентира све активности у спољашњу Firebird базу података и да обавља бројне јединствене административне задатке.

FBScanner (Firebird Scanner) је алат који може да прати и прегледа сав саобраћај између Firebird и InterBase сервера и њихових клијентских апликација.

FBScanner Service ради као капија (прокси) на рачунару са Firebird/InterBase (само Windows) или се може инсталирати на удаљеном рачунару и радити са Firebird-ом на свим подржаним оперативним системима (Windows, Linux, Mac OS X, HP-UX, итд.).

FBScanner се може користити за профилисање база података, праћење активности корисника, управљање везама са базом (укључујући искључивање клијената и на Classic и SuperServer архитектури). Такође је идеалан за решавање проблема са INET грешкама (INET/inet_error: send errno = 10054), као и за ревизију постојећих апликација и подешавање перформанси.

FBScanner подржава Firebird (1.0, 2.0, 2.1, 2.5) и InterBase (4.0, 5.x, 6.x, 7.0, 7.1, 7.5, 2007, 2009, XE, XE3).

FBScanner је транспарентан за апликацију базе података и не захтева никакве измене у изворном коду апликације или базе, логици или конфигурацији.

FBScanner V3.x ради само на Windows-у и захтева инсталиран .NET 2.0 (или новији) Framework.

Презентације о FBScanner-у

FBScanner: IBSurgeon-ов алат за решавање свих врста проблема са перформансама Firebird-а. Firebird миграција: са Firebird 1.5 на Firebird 2.5
Погледајте још презентација од Nataly Polyanskaya

Како FBScanner ради

FBScanner Service

Важно! У овом одељку не описујемо рад MON$Logger-а и TraceAPI додатка, он је посвећен само FBScanner Service-у, FBScanner Viewer-у и LogAnalyzer-у.

FBScanner Service нормално треба да буде инсталиран на истом рачунару где је Firebird или InterBase сервер (као опција, можете га инсталирати на другом рачунару и затим преусмерити саобраћај на стварни Firebird или InterBase сервер). Током инсталације, конфигурациони алат FBScanner-а ће вас питати да изаберете: инсталирајте FBScanner на подразумевани порт InterBase-а или Firebird-а (3050) и промените конфигурацију Firebird сервиса на 3052 (ово се може подесити), или инсталирајте FBScanner да слуша на другом TCP порту.

Важно! FBScanner Service ради само са TCP везама, тако да клијенти који користе локалне (XNET) и NetBEUI (WNET) конекционе стрингове ће заобићи FBScanner. За праћење таквих клијентских апликација треба да користите MON$Logger и TraceAPI додатак.

Ако изаберете прву опцију инсталације, сви захтеви апликација ће пролазити кроз FBScanner Service.

##### Инсталација на серверској страни ##### Удаљена инсталација

Утицај на перформансе

Уобичајени сценарио процеса оптимизације перформанси укључује инсталацију FBScanner-а на 1-2 типичне радне станице да би се ухватио типичан SQL саобраћај. Нема разлога да се пресреће и бележи сав SQL саобраћај са свих радних станица - има превише информација за анализу и превише понављајућих упита.

Међутим, ако желите да инсталирате FBScanner као прокси за цео сервер и бележите све операције тамо, обезбедите исти IO пропусни опсег и упоредив CPU и RAM као на продукционом серверу. За базе са високим оптерећењем, дневник FBScanner-а може да порасте за неколико Gb дневно. У таквим случајевима, препоручујемо наменску (удаљену серверску) инсталацију FBScanner-а.

FBScanner Service не мења ништа у пренетом саобраћају и ради једноставно као транспарентни прокси, тако да ће све апликације наставити да раде нормално. FBScanner Service троши приближно 125-150 Mb меморије за праћење 50-70 активних клијената, и смањиће перформансе базе за 5 до 15% када је у употреби. Потрошња меморије зависи од дизајна клијентске апликације. Потребан IO пропусни опсег зависи од интензитета SQL саобраћаја.

Током тестирања, проверили смо FBScanner у раду у неколико реалних окружења и апликација где база има 30-200 активних веза и приметили смо да је деградација перформанси била минимална. У многим случајевима, корисници нису могли да схвате да је праћење активно.

Сегментација саобраћаја

Коришћење FBScanner-а на нестандардном порту омогућава сегментацију различитог саобраћаја од различитих апликација. На пример, постоје апликације A и B. B је стара и стабилна апликација која не захтева никакво подешавање или праћење, а A је нова апликација. Лако је подесити конекциони стринг за нову апликацију A да користи нестандардни порт (нпр. server/3070:Disk:\Path\database.gdb) и усмерити све захтеве из апликације A кроз FBScanner како би се пратили SQL упити и понашање апликације.

Користећи овај приступ, лако можете препознати и решити проблеме у продукционом окружењу, било да проблем долази из нове апликације, или чак из одређеног сегмента ваше локалне мреже.