Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 14553|Atbildi: 0

[Paziņojums] SQL Server lietotāju savienojumu vāciņa problēma

[Kopēt saiti]
Publicēts 26.11.2014 15:11:08 | | | |

SQLSERVER lietotāju savienojumi

Tam atbilst SQL instances vispārīgie statistikas lietotāju savienojumi veiktspējas skaitītājā

Varat arī skatīt TCPv4Connections Established veiktspējas skaitītājā  


Datorā, kurā ir tikai SQLSERVER pakalpojums,Izveidoti TCPV4 savienojumi && Mssql lietotāja savienojumiŠie divi parametri pamatā ir sinhronizēti un tiek saukti par savienojumu skaitu nākamajā testa saturā


Šis savienojumu skaits ir ierobežots, līdzīgi kā maksimālais vienlaicīguma ierobežojumu skaits. Kad šis ierobežojums ir sasniegts, vaicājumi nereaģēs pat tad, ja ir brīvi CPU, IO un MEM resursi (daži, ne visi vaicājumi tiek ietekmēti)

TCPV4 izveidoto savienojumu && Mssql lietotāju savienojumu maksimālā vērtība ir atkarīga no šādiem faktoriem
     a. Izpildes paziņojuma sarežģītība ir saistīta, jo sarežģītāks ir paziņojums, jo mazāks ir maksimālais savienojumu skaits (šis efekts ir ļoti svarīgs)
     b. Tas ir saistīts ar pieprasījuma pavediena vienlaicīgumu,
10 procesi, katrs process atver 5,000 pavedienus, lai pieprasītu,SELECT getdate()Paziņojums jau ir atmests, kad tas sasniedz aptuveni 4000 (mana izpratne ir tāda, ka, lai gan daudzi pavedieni nav pieprasījuši resursus, pieprasījumu skaits ir liels, kas arī ietekmē).
10 procesi, katrs process atver 1000 pavedienus, lai pieprasītu, SELECT getdate()Paziņojumi var sasniegt vairāk nekā 10 000.
    c. Tas ir saistīts ar pavedienu pieprasījumu biežumu
Ja katrs pavediens palaiž vaicājumu un pauzē 0–10 000 milisekundes, tas aizņems mazāk savienojumu nekā tad, ja tas nav apturēts
    d. Testā tika arī konstatēts, ka daži neslēgti savienojumi izraisītu skaitītāja piepūšanu, kas netika apspriests
10 procesi, katrs process atver 1000 pieprasījuma pavedienus, nejauši pauzē (no 0 līdz 10 sekundēm) pēc katra vaicājuma serverī Testa rezultāti ir šādi:
Izpilde:ATLASIET * FROM [sistēma]. [DBO]. [DBA_alert]priekšraksts (šis vaicājums atgriež 200 rindiņas, un maksimālais savienojumu skaits ir 700, un problēma sāk tikt izsniegta)
Kad savienojumu skaits sasniedz 700, sāk ziņot par dažām kļūdām, un 1200 sāk parādīties liels skaits kļūdu, un savienojumu skaits ap 1800 ir iestrēdzis un vairs nepalielinās. Kļūdas un lēni savienojumi ir bagātīgi
Izpilde:SELECT getdate()Soda laiks(Maksimālais savienojumu skaits ir 3500 un problēma sākas)
Kad savienojumu skaits sasniedz 3500, daži no tiem sāk ziņot par kļūdām, un augstākais spiediens sasniedz aptuveni 11000, un savienojumu skaits joprojām lēnām pieaug. Kļūdas un lēni savienojuma izplūdumi

Secinājums ir šāds: noteiktos spiediena apstākļos: visvienkāršāk veiktMaksimālais savienojumu skaits var būt līdz 3500, kad SELECT getdate() un izpilda SELECT * FROM [sistēma]. [DBO]. [DBA_alert] priekšrakstu, maksimālais savienojumu skaits var būt tikai līdz 700. Vaicājuma taimauts notiek, ja CPU, IO un MEM ir liels skaits dīkstāves resursu.
Ražošanas vidē nevar sasniegt 10 * 1000 pavedienu spiedienu, bet SQL būs sarežģītāks nekā testa vide.

Vienlaicīgs numursSastrēgumu neizraisa datora vai servera tīkla kartes joslas platums
Lai pierādītu iepriekš minēto. Es veicu šādus testus, exec dbo.run2 lielas vienlaicīgas gadījumā;

ALTER proc [dbo]. [skrējiens2]

Iestatīt nocount ieslēgtu
Izvēlieties getdate()
deklarēt @i int
iestatīt @i=0
kamēr @i<1000 Ja šī vērtība ir 1000, maksimālais savienojumu skaits ir aptuveni 1300, un, ja šī vērtība ir 10, ir normāli sasniegt 5000.
Sākt
    IEVIETOJIET [krogos]. [DBO]. [tb_test] ([nosaukums]) vērtības (newid())
    Iestatiet @i=@i+1
beigas

Iet

Izmaiņu ciklu skaits neietekmēs atgriešanās rezultātu, tas ir, spiediens uz tīkla kartes trafiku ir vienāds, bet viens ātri iestāsies un otru vienmēr var pārbaudīt, tāpēc var novērst tīkla karšu joslas platuma ietekmi abās pusēs.


Kļūdas saturs, ja maksimālais savienojumu skaits ir apstājies:




netstat-rezultāts, kad maksimālais savienojumu skaits ir iestrēdzis (stipri noteikts):





Testa programmas darbības shēma, kad maksimālais savienojumu skaits ir apstājies:



Ir vērts atzīmēt:Savienojums ar kļūdām vai taimautiem nav vienmērīgs, un tas tiks koncentrēts dažos procesos, tas ir, daži procesi vienmēr var darboties normāli, un otra daļa ilgu laiku ziņos par kļūdām (tam nav nekāda sakara ar procesu sākuma secību, mana izpratne ir tāda, ka dažiem procesiem ir resursi, tie var turpināt strādāt normāli, bet citi procesi sākotnējo resursu pavedienos ir apturēti un nevar pieteikties jauniem resursiem, turpinās atkārtoti ziņot par kļūdām) Kā parādīts iepriekš redzamajā attēlā, 2. un 7. procesam sākās liels skaits taimautu, un citi procesi turpināja darboties. Serverī vaicājumi var parādīties kā neietekmēti vai mazāk ietekmēti no dažiem datoriem, un daži datori ir būtiski ietekmēti.


Secinājums: Lai gan SQLSERVER lietotāju savienojumu augšējā robeža ir saistīta ar virkni apstākļu, joprojām ir iespējams novērtēt un prognozēt vājo kaklu, kad šī augšējā robeža ir sasniegta, būs liels skaits vaicājumu lēni un taimauts (lai gan CPU, IO. MEM, satiksme var rasties arī tad, ja ir dīkstāves resursi). Faktiski, mainot dažus TCP parametrus, palielināsies šī augšējā robeža, un es varu rakstīt papildinājumus vēlāk





Iepriekšējo:【Uzņēmējdarbības projekts】 Wuhan Career Worry-Free Technology Co., Ltd. Personāla atlases pilsētiņas uzraugs (Wuchang Institute of Technology)
Nākamo:Konfigurējiet Python, lai piekļūtu SQLSserver zem Redhat
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com