Majhne poizvedbe se vrnejo, velike se obesijo ali padejo, in prvi instinkt je, da je nekaj narobe z velikostjo paketa. Ta instinkt je običajno pravilen in skoraj vedno usmerjen na napačno plast. Tri nastavitve si delijo besedo paket in merijo tri nepovezane stvari: transportno pakiranje gonilnika podatkovne baze, omejitev sporočil strežnika podatkovne baze in največjo prenosno enoto poti IP. Prilagajanje ene, da bi odpravili simptom, ki ga povzroči druga, je način, kako iz petminutne težave nastane teden uglaševanja. Spodnji vrstni red mi je vzel najmanj časa.

Tri plasti, ena skupna beseda

Vsaka vrstica spodaj je druga enota z drugim lastnikom, in o nobeni ni mogoče sklepati iz drugih. Sporočilo podatkovne baze lahko zajema veliko segmentov TCP in veliko paketov IP, zato povečanje dovoljene velikosti ne razširi poti, zmanjšanje nastavitve gonilnika pa ni ista operacija kot sprememba MTU vmesnika. Beseda se pojavi v treh različnih konfiguracijskih datotekah, zato iskanje po njej vrne tri nepovezane odgovore. Najprej preberite besedilo napake, nato se odločite, katero datoteko boste odprli.

Setting or observationUnit it describes
SQL Server client network packet settingThe provider's transport packaging for that connection
MySQL communication packet limitA database message, such as one statement, row or replication event
IP path MTUThe largest IP packet the path carries without fragmentation handling

Preden odprete konfiguracijsko datoteko, zapišite, kateri plasti pripada spodletela operacija. Besedilo napake to običajno pove, in prav ta del ljudje preskočijo.

Preden spremenite njegovo nastavitev, prepoznajte ponudnika

Za SQL Server zapišite aplikacijo, ime gonilnika ali ponudnika, različico in dejansko konfiguracijo povezave. Diagnostična skripta in namizna aplikacija lahko dosežeta isti strežnik prek različnih ponudnikov, zato nastavitev, ki pomaga enemu, ne dokaže ničesar o drugem. Privzete vrednosti ponudnikov se razlikujejo, in podobno poimenovano polje v nizu povezave ni dokaz, da ga vsak ponudnik razlaga enako.

Vzdrževanega gonilnika ne zamenjajte s starejšim samo zato, ker je stara rešitev uporabljala njegovo sintakso. Trenutna dokumentacija odsvetuje nov razvoj na teh starejših komponentah, in podedovanje njihovih omejitev je slaba menjava za eno nastavitev.

Zavrnitev sporočila ni zastoj poti

V MySQL 8.4 dokumentacija o komunikacijskem paketu opisuje zavrnitev prevelikega stavka, vrstice ali dogodka binarnega dnevnika glede na veljavno omejitev, in pomembni so lahko tako odjemalska kot strežniška omejitev. To je zavrnitev na plasti podatkovne baze, ne trditev, da mora omrežje prenašati ogromen paket IP. Preberite dejansko napako in obliko problematičnega sporočila: velik rezultat iz mnogih majhnih vrstic je drugačen primer kot ena ogromna vrstica, in spodletita različno.

Namestitve MariaDB potrebujejo dokumentirane omejitve in diagnostiko lastne različice. Kopiranje privzetih vrednosti MySQL v MariaDB je ugibanje z dodatnimi koraki.

Kako resnično izgledajo dokazi o poti

Težava velikosti poti ima svoj prstni odtis: ponovljiva od velikosti odvisna transportna napaka na določeni poti in družini naslovov, s stroški tunela v igri in povratno informacijo odkrivanja, ki se obnaša tako, kot pot dopušča. Sam časovni zamik je ne loči od počasne poizvedbe, napake gonilnika ali omejitve na strani strežnika, in obravnavanje časovnega zamika kot dokaza težav z MTU vas s prepričanjem pošlje na napačno plast.

Če pot testirate, držite cilj, račun in delovno obremenitev fiksne, da bo edina spremenljivka velikost, ki jo preiskujete. Test, v katerem so se spremenile tri stvari, vam ne pove, katera je bila pomembna.

Spremenite eno dokumentirano spremenljivko in jo nato zapišite

Držite cilj, račun, ponudnika in delovno obremenitev nespremenjene, zapišite prvotno vrednost, uporabite eno podprto spremembo in zapišite rezultat. Manjša nastavitev, zaradi katere en test uspe, je koristen dokaz o tem testiranem skladu; ni univerzalni optimum in ne ugotavlja, kaj je povzročilo prvotno napako. To so različne trditve, in samo prvo podpira en sam eksperiment.

Ugotovljeno omejitev rešite na njeni lastni plasti in nato zabeležite, katera plast je bila. Prav zapis prepreči naslednji osebi, da bi uglaševala gonilnik, ker je bila težava v poti.

Sorodni članki