Diagnostika SQL Server odhaliť zastavil a ponechané vstupno-výstupných operácií

DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 897284
Súhrn
Systém správy databáz (DBMS), ako napríklad SQL Server závisí aktuálnosť súbor vstupu a výstupu (I/O) operácie. Niektoré z nasledujúcich položiek môže spôsobiť ponechané alebo zastavil vstupno-výstupných operácií a negatívne ovplyvniť odozvy servera SQL Server a výkon:

  • Chybný hardvér
  • Nesprávne konfigurovaný hardvér
  • Firmvér nastavenia
  • Ovládače filtrov
  • Kompresia
  • Chyby
  • Iné podmienky I/O cesta
Tieto vstupno-výstupné môže spôsobiť výskyt nasledovné správanie:

  • Blokovanie
  • Zámok tvrdení a uplynutia časového limitu
  • Pomalá odozva
  • Siaha hranice prostriedkov
Od spoločnosti Microsoft SQL Server 2000 Service Pack 4 (SP4), SQL Server obsahuje logika, ktorá pomáha zisťovať zastavil a zostávajú podmienky databázy I/O číta a píše a píše a čítaní I/O súboru denníka. Keď vstupno-výstupné operácie bolo až 15 sekúnd alebo dlhšie, SQL Server vykonáva nasledujúce kroky:

  1. Zistí, že operácia bola spracováva
  2. Zapíše informačné hlásenie do denníka chýb servera SQL Server

    Text správy denníka sa podobá nasledujúcemu hláseniu:

    2004-11-11 00:21:25.26 spid1 SQL Server zistil 192 occurrence(s) IO žiadostí trvá dlhšie než 15 sekúnd až do konca [E:\SEDATA\stressdb5.ndf] súboru databázy [stressdb] (7). Popisovač súboru OS je 0x00000000000074D4. Je posun najnovšie dlhé io: 0x00000000022000 ".

Informačné hlásenie vysvetlenie

Text správyPopis
Číslo > Occurrence(s)Počet vstupno-výstupných požiadaviek, ktorá sa neskončila, čítanie alebo zapisovanie do 15 sekúnd.
Informácie o súborochÚplný názov súboru, názov databázy a databázy číslo identifikácie (DBID).
ManipulátorOperačný systém popisovač súboru. Rukoväť operačného systému môžete použiť debugger alebo iné pomôcky môžete sledovať požiadavky I/O požiadavky paket (IRP).
PozíciaPosun posledného zostávajú vstupno-výstupné operácie alebo posledného zastavil vstupno-výstupné operácie. Môžete posun debugger alebo iné pomôcky môžete sledovať IRP požiadavky.

Poznámka: Keď informačné hlásenie sa zapíše do denníka chýb servera SQL Server, vstupno-výstupné operácie môže už zaseknutý alebo zastavil.
Toto informačné hlásenie indikuje, že aktuálne zaťaženie sa vyskytli jedna z nasledujúcich podmienok:

  • Zaťaženie je vyššia ako možnosti vstupno-výstupné cestu.
  • Zaťaženie je vyššia ako aktuálny systém funkcií.
  • Vstupno-výstupné cestu má nefunkčný softvér. možno firmvér alebo vodič problém.
  • Vstupno-výstupné cestu má poruchy hardvéru.
Ďalšie informácie o SQL Server 2000 I/O, nájdete na nasledujúcej webovej lokalite spoločnosti Microsoft:Poznámka: Tento článok TechNet sa vzťahuje aj na Microsoft SQL Server 2005 a novšie verzie.
Ďalšie informácie

Ponechané I/O a zastavil I/O

Ponechané I/O

Ponechané I/O je definovaný ako I/O požiadavky, ktoré nedokončí. Často ponechané I/O označuje ponechané IRP. Ponechané stav I/O odstránite zvyčajne musí reštartovať počítač alebo podobná akcia. Ponechané stav I/O zvyčajne označuje jednu z nasledovných možností:

  • Chybný hardvér
  • Chyba vstupno-výstupné cestu súčasti

Zastavil I/O

Zastavil I/O je definovaný ako I/O požiadavky, dokončiť, alebo to trvá príliš dlho dokončiť. Zastavil vstupno-výstupný problém sa zvyčajne vyskytuje z jedného z nasledovných dôvodov:

  • Konfigurácia hardvéru
  • Firmvér nastavenia
  • Ovládač filtra problém, ktorý vyžaduje podporu hardvéru alebo softvéru na sledovanie a riešenie

SQL Server zastavil I/O a zostávajú I/O zaznamenávania a hlásenia

Technická podpora spoločnosti Microsoft SQL Server spracováva prípadov každý rok zahŕňajú ponechané alebo zastavil I/O problémy. Tieto vstupno-výstupné zobrazovať rôznymi spôsobmi. I/O sa niektoré problémy najlepšou ťažké diagnostikovať a ladenie a vyžadujú dlhú dobu a zdroje informácií pre ladenie od spoločnosti Microsoft a od zákazníka. Vykazovanie funkcie, ktoré boli pridané do SQL Server 2000 SP4 a novším výrazne znížiť čas potrebný na identifikáciu vstupno-výstupný problém.

Vykazovanie záznam vstupno-výstupných požiadaviek sú určené na základe jednotlivých súboroch. Zisťovanie a hlásenie zastavil a ponechané vstupno-výstupných požiadaviek sú dve samostatné akcie.

Nahrávanie

Existujú dve chvíli keď záznam nastane v aplikácii SQL Server. Prvá je pri vstupno-výstupné operácie skutočne končí. Ak žiadosť o I/O viac ako 15 sekúnd dokončiť, záznam došlo. Druhý moment je pri spustení lenivého writer. Po spustení zapisovač lenivého zapisovač lenivého kontroluje všetky prebiehajúce údaje a spracováva denník súbor vstupno-výstupných požiadaviek. Ak bol prekročený limit 15 sekúnd, záznam došlo.

Vytváranie zostáv

Hlásenie sa vyskytuje v intervaloch, ktoré sú 5 minút alebo viac, okrem. Hlásenie sa vyskytuje, keď ďalej I/O požiadavky sa súbor. Ak došlo k záznamu akcie a 5 minút alebo dlhšie prešli od poslednej správy sa informačné hlásenie, ktoré je spomenuté v časti "Zhrnutie" sa zapíše do denníka chýb servera SQL Server.

15-druhý prah nie je nastaviteľný. Však môžete zakázať zastavil alebo ponechané I/O zisťovania pomocou príznak sledovania 830, hoci Neodporúčame vám to.

Vypnúť zisťovanie pri spustení servera SQL Server, použite -T830 parametra spúšťania vypnúť zisťovanie vždy, keď je spustený SQL Server. Vypnutie zisťovania na inštanciu programu SQL Server, ktorý je práve spustený, použite nasledujúci príkaz:

DBCC traceoff (830, -1)
Toto nastavenie platí len pre život procesu servera SQL Server.

Poznámka: Vstupno-výstupná požiadavka zastavil alebo zostávajú uvádza len raz. Napríklad ak správy hlási, že 10 vstupno-výstupných požiadaviek sa zastavil, 10 správ nebude opakovať. Ak nasledujúcu správu hlási, že 15 vstupno-výstupných požiadaviek sa zastavil, čo znamená, že 15 nové vstupno-výstupných požiadaviek, sa zastavil.

Sledovanie vstupno-výstupný paket požiadaviek (IRP)

SQL Server používa štandardné Microsoft Windows API volania čítať a zapisovať. Napríklad server SQL Server používa nasledujúce funkcie:

  • WriteFile
  • ReadFile
  • WriteFileScatter
  • ReadFileGather
Požiadavky na čítanie alebo zápis prebieha Windows ako vstupno-výstupný paket požiadaviek (IRP). Zistiť stav IRP, použite nasledujúce:

  • Podpora platformy Microsoft pomoc
  • Nástroj na ladenie jadra
Ďalšie informácie o IRP a IRP vyhľadávania, navštívte nasledujúce webovú lokalitu spoločnosti Microsoft a vyhľadávania na kľúčové slovo "IRP":Poznámka: Ladenie jadra môže byť invazívne proces, pretože ladenie jadra môže vyžadovať zastavenie systému vykonať ladenie akcie. Odporúčame vyhľadať všetky dostupné aktualizácie pre nasledovné položky:

  • Systém BIOS
  • Firmvér
  • Všetky ostatné súčasti I/O cesta
Pred vykonaním ďalšie akcie ladenie, obráťte sa na dodávateľa hardvéru. Relácie ladenia pravdepodobne zahŕňajú ovládače, firmware alebo súčasť ovládača filtra.

Výkon systému a dotaz plán činnosti

Celkový výkon systému môže hrať kľúčovú úlohu spracovanie I/O. Všeobecné systém vytvárania správ o stave mali vziať do úvahy, ak ste sa skúma správy zastavil alebo ponechané vstupno-výstupných operácií. Nadmerné zaťaženie môže spôsobiť pomalé celého systému. Toto zahŕňa spracovanie I/O. Správanie systému v čase, keď sa vyskytne problém, môže byť kľúčový určiť príčinu problému. Napríklad ak vysoké využitie Procesora alebo využitia Procesora zostáva, keď sa vyskytne problém, toto správanie môže znamenať, že proces v systéme používa toľko Procesora, či ďalšie procesy sú negatívne ovplyvnené.

Počítadlá výkonu

Na sledovanie I/O, skontrolujte nasledujúce počítadlá výkonu I/O cesta informácie:

  • Priemerná disku Sec/prenos
  • Priemerné Disk Queue Length
  • Current Disk Queue Length
Napríklad priemerná disku Sec/prenos času v počítači so serverom SQL Server je obyčajne menej než 15 MS. Ak hodnota priemeru disku/prenos zvýši, znamená to, či vstupno-výstupný podsystém je optimálne nespráva s vstupno-výstupných požiadaviek.

Buďte opatrní pri používaní počítadlá výkonu, pretože SQL Server sa naplno asynchrónne vstupno-výstupných možností, ktoré ťažko dĺžky frontu disku. Preto dlhšie disku frontu dĺžky sám neznamená problém.

Sledovanie systému Windows, môžete si prezrieť počítadlá "fyzického disku: Disk bajtov" vplyv na disku a porovnanie rýchlosť proti počítadlá "proces: IO údajov bajtov za sekundu" a "proces: IO ostatné bajtov" pre každý proces zistiť, či konkrétny súbor procesov vytvára nadmerné I/O požiadavky. Existujú rôzne ďalšie I/O týkajúce sa počítadiel v procese objektov zistí, že podrobnejšie informácie. Ak zistíte, že inštanciu servera SQL Server je zodpovedný za IO nadmerné zaťaženie servera, prečítajte si nasledujúcu časť o "Indexy a podobnosť". Podrobná diskusia na zisťovanie a riešenie I/O problémy, nájdete v časti "I/O prekážky" MSDN whitepaper Riešenie problémov s výkonom v SQL Server 2008 alebo Riešenie problémov s výkonom v SQL Server 2005.

Indexy a paralelizmus

V mnohých dávkach I/O dôjsť, pretože chýba index. Toto správanie môže výrazne tlačiť vstupno-výstupné cestu. Pass, ktorá používa Index otáčania Wizard (ITW) môže vyriešiť vstupno-výstupný tlak v systéme. Dotaz využíva indexu namiesto tabuľky kontroly, či možno, ak používa zoradenie alebo hash, systém môžete získať nasledovné výhody:

  • Zníženie sa vo fyzickej I/O, potrebného na vykonanie akcie, ktoré priamo vytvorí výkon výhody dotazu.
  • Počet strán do vyrovnávacej pamäte sa otočiť. Preto tieto stránky vo vyrovnávacej pamäti údaje zostávajú relevantné aktívne dotazy.
  • Druhy a hash sa používajú, pretože index môže chýbať alebo štatistiky sú neaktuálne. Môžete znížiť tempdb použitie a tvrdení pridaním jedného alebo viacerých indexov.
  • Zníženie sa v zdrojov a paralelné operácie. Pretože SQL Server nezaručuje vykonanie paralelnej dotazu, a preto považuje za zaťaženie systému, je najlepšie optimalizovať všetky dotazy na serial výkonu. Optimalizácia dotazu, otvorte analyzátor dotazu a nastavenie sp_configure hodnota z Max stupeň rovnobežnosti možnosť 1. Ak všetky dotazy sa Nalaďte spustiť čo operácie sériové, paralelné spúšťanie je často lepšie výsledky. Však koľkokrát paralelné spúšťanie začiarknuté, pretože len veľké množstvo údajov. Chýba index, môže byť trochu veľký výskyt. Viacerých pracovníkov, ktoré vykonávajú zoradenie vytvorí rýchlejšie odpoveď. Však táto akcia môže výrazne zvýšiť tlak v systéme. Požiadaviek na čítanie veľké množstvo pracovníkov môže spôsobiť I/O praskla s zvýšené využitie Procesora z viacerých pracovníkov. Koľkokrát dotaz môže byť naladený rýchlejšie a používať menej zdrojov, ak sa dopĺňa alebo iného ladenia nastane.

Príklady podpory spoločnosti Microsoft SQL Server

Nasledujúce príklady boli spracované v Microsoft SQL Server a platformy eskaláciu technickej podpory. Tieto príklady sú určené na referenčnom a pomôže vytvoriť vaše očakávania zastavil a zostávajú I/O situáciách a ako systém môže byť ovplyvnený alebo môže reagovať. Nie je hardvéru alebo ovládačov, ktoré predstavujú špecifické riziko ani zvýšené riziko ako súbor. Všetky systémy sú v tejto.

Príklad 1: Denníka zápis, ktorá uviazla 45 sekúnd

Pokus o zápis do denníka SQL Server pravidelne stáva zostávajú približne 45 sekúnd. Denník zápisu sa nedokončila včas. Toto správanie sa vytvorí blokovanie stav, ktorý spôsobuje 30-druhé klienta uplynutia časového limitu.

Žiadosti o odovzdanie na server SQL Server a potvrdenie sa zablokovala denníka zápis do. Toto správanie spôsobuje dotazu držte locks a blokovať prichádzajúce požiadavky od iných klientov. Ostatné klienti spustite časového limitu. To zlúčeniny problém, pretože aplikácia nemusí vrátiť otvorené transakcie pri dotazu časový limit. Vytvorí stovky otvorené transakcie, ktoré držia locks. Preto vážne blokovanie situácia nastane.

Ďalšie informácie o transakcie, spracovanie a blokovanie Pozrite si nasledujúci článok databázy Microsoft Knowledge Base:Aplikácia služby webovej stránky pomocou združovanie. Ako ďalšie pripojenia zablokovaniu, webovej stránky vytvára ďalšie pripojenia. Tieto pripojenia blokované a cyklus pokračuje.

45 sekúnd, zápis v denníku končí. Však v súčasnosti, stovky pripojenia sú zálohované. Blokovanie problémy spôsobovať niekoľko minút využitie času pre SQL Server a aplikácie. V kombinácii s aplikácie zastavil stavu I/O má veľmi negatívny vplyv na systém.
Riešenie
Tento problém bol sledovať ponechané I/O požiadavky ovládača Host Bus Adapter (HBA). Počítač mal viac HBA karty s podporou zlyhania. Pri jednej HBA za alebo nie pri komunikácii s Storage Area Network SAN hodnotu časového limitu "znova pred záložných" bol nakonfigurovaný 45 sekúnd. Keď prekročenia limitu I/O požiadavky smerovali na druhú HBA. Druhý HBA spracované požiadavky a rýchlo hotové. Zabrániť kritickou podmienok výrobcu hardvéru Odporúčaná "znova pred záložných" 5 sekúnd.

Príklad 2: Filter ovládač zásahu

Množstvo antivírusových programov a zálohovacie produkty pomocou vstupno-výstupných ovládačov filtrov. Tieto vstupno-výstupných ovládačov filtrov Staňte sa súčasťou zásobníka I/O požiadavky a budú mať prístup k IRP požiadavku. Služby technickej podpory spoločnosti Microsoft zaznamenal rôzne problémy z chýb, ktoré vytvárajú zostávajú vstupno-výstupné podmienky alebo zastavil vstupno-výstupné podmienky v implementácii ovládača filtra.

Jeden taký stav bol ovládač filtra na zálohovanie spracovanie, možnosť zálohy súborov, ktoré boli otvorené pri zálohy. Správca systému zahrnula adresár údajov SQL Server voľby zálohovania súborov. Keď zálohy zálohovania pokúsili získať správny obrázok pri spustení zálohovania. Pritom oneskorené vstupno-výstupných požiadaviek. Vstupno-výstupných požiadaviek boli povolené dokončiť iba jeden po druhom, ako boli spracované v softvéru.

Po spustení zálohovania SQL Server výkonnosti výrazne klesla pretože generovaných SQL Server nútené dokončiť naraz. Zložené problém, "naraz" logika bola tak, že vstupno-výstupné operácie sa nevykonala asynchrónne. Preto pri SQL Server očakáva príspevok I/O požiadavky a pokračovať, pracovník bol zaseknutý čítanie alebo zápis volanie dokončenie I/O požiadavky. Spracovanie úloh, ako napríklad SQL Server čítanie dopredu boli skutočne vypnúť akcie ovládača filtra. Okrem toho iná chyba ovládača filtra vľavo akcie "naraz" procesu aj pri dokončení zálohovania. Jediný spôsob, ako obnoviť SQL Server výkon bol zatvorte a znova otvorte databázu alebo reštartovanie služby SQL Server popisovača súboru bol vydaný a znovuzískané bez zásahu ovládača filtra.
Riešenie
Na vyriešenie tohto problému, SQL Server údajové súbory boli odstránené z procesu zálohovania súborov. Výrobca softvéru tiež opraviť problém, ktorý zostáva súbor "naraz" režime.

Príklad 3: Skryté chyby

Mnohé kvalitnejšie systémy majú viackanálové I/O cesty vyrovnávanie zaťaženia alebo podobné činnosti. Technická podpora spoločnosti Microsoft zistil problémy s zaťaženia softvéru, ak žiadosť o I/O, ale softvér nespracováva chyby správne. Softvér sa môže pokúsiť nekonečné pokusov. Vstupno-výstupné operácie bude zaseknutý a SQL Server nemôže dokončiť zadanú akciu. Podobne ako denník zapisovať podmienky, ktoré boli popísané vyššie, mnoho nízka systém správanie sa môže vyskytnúť po takejto podmienky kliny systému.
Riešenie
Tento problém vyriešite reštartovaním servera SQL Server sa často vyžaduje. Avšak niekedy je potrebné reštartovať operačného systému na obnovenie spracovanie. Odporúčame tiež zadovážiť aktualizácie softvéru od výrobcu I/O.

Príklad 4: Vzdialený ukladací priestor zrkadlenie a raid jednotky

Mnoho systémov používať zrkadlenie alebo podobné kroky na zabránenie strate údajov. Niektoré systémy, ktoré používajú zrkadlenie sú softvérovo a niektoré hardvérovú. Situácia, že Microsoft Support zistí zvyčajne pre tieto systémy je zvýšenie oneskorenie.

Zvýšenie I/O celkový čas nastane I/O musíte dokončiť zrkadlenie pred I/O považuje za úplný. Zrkadlenie vzdialenej inštalácie, môžete zapojiť siete pokusov. Pri zlyhaní disku a znova vytvára raid systému môžu byť prerušené I/O vzor.
Riešenie
Striktný nastavenia sa znížiť oneskorenie zrkadlové obrazy disku alebo raid obnovu operácie.

Ďalšie informácie, prečítajte si Požiadavky na SQL Server, ktorý podporuje vzdialený zrkadlenie databáz používateľa.

Príklad 5: kompresia

Spoločnosť Microsoft nepodporuje Microsoft SQL Server 7.0 alebo Microsoft SQL Server 2000 údajové súbory a súbory denníka na komprimovaných jednotkách. Kompresia systému NTFS nie je bezpečné pre SQL Server, pretože kompresia systému NTFS prestávky protokolu zápisu pred prihlásením (WAL). Kompresia systému NTFS vyžaduje tiež zvýšené spracovanie každej vstupno-výstupné operácie. Kompresia vytvorí "naraz" ako správanie, ktoré spôsobuje výskyt chýb závažné výkonu.
Riešenie
Ak chcete odstrániť tento problém, dekompresia údajov a súbory denníka.

Ďalšie informácie, prečítajte si Popis podpory databázy servera SQL Server komprimovaných zväzkov.

Ďalšie bodov

PAGEIOLATCH_ a writelog čaká v sys.dm_os_wait_stats dynamické zobrazenia správy (DMV) sú kľúčové indictors preskúmať I/O cestu výkonu. Ak významné PAGEIOLATCH čaká, znamená to, že SQL Server čaká na podsystém v /. Určitú PAGEIOLATCH čaká sa a očakávané správanie. Ak priemerná PAGEIOLATCH čakania neustále presahuje 10 milisekúnd (ms), by zistiť, prečo vstupno-výstupný podsystém je pod tlak. Ďalšie informácie nájdete v týchto dokumentov:



SQL Server vyžaduje, že systémy podpory "zaručené doručenie výkonnosti médiá" uvedené v Požiadavky programu SQL Server I/O spoľahlivosť. Ďalšie informácie o požiadavkách na vstup a výstup databázového stroja SQL Server, nájdete v nasledujúcom článku databázy Microsoft Knowledge Base:

IO EventID 833

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 897284 – Posledná kontrola: 10/01/2015 04:45:00 – Revízia: 1.0

Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Business Intelligence, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL 2005 Server Workgroup, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL 2005 Server Enterprise

  • kbinfo kbtshoot kbsqlserv2000sp4fea kbmt KB897284 KbMtsk
Pripomienky