Kā atrisināt vienlaicīgus lineārus vienādojumus, izmantojot algebru

Kā tīmekļa serverim, kas mitina klienta lietojumprogrammu, kas ir liela apjoma vai darījumu serveris, man ir jānoskaidro "vienlaicīgu savienojumu skaits", ko pašlaik izmanto serveris. Tas ir nepieciešams risinājumam, piemēram, NGFW vai WAF, kura pamatā ir šī metrika.

Vai es varu palaist kādu skriptu vai iebūvētu spraudni, lai atrastu šo numuru? Man vajadzīgs risinājums gan Apache, gan IIS.

  • Lielākā daļa rīku patiešām nevar jums pateikt vienlaikus lietotājus reālā nozīmē, jo apstrādes laiks ir īss, un jebkurš rīks nevar labi izsekot sesijas stāvoklim, ja vispār. Jums pašam būs jāveic daži aprēķini. Tomēr lielākā daļa žurnālfailu analizatoru patiešām var palīdzēt. Piwik ir viens no labākajiem un pilnīgi bez maksas. Vēl viena iespēja ir izmantot Google Analytics, tomēr tas neietver visu datplūsmu, piemēram, robotus, kas bieži ir ļoti atšķirīgi, tāpēc arī tie ir ierobežoti.
  • Jau jautāja un atbildēja uz Apache: webmasters.stackexchange.com/questions/24687/…
  • Jautāts un atbildēts arī uz IIS, kopējais meklēšanas laiks aizņēma vienu minūti: stackoverflow.com/questions/9181015/…

Tas, ko jūs varat darīt, ir palaist vietni serverī, kuram jums ir pilna aizmugures piekļuve (piemēram, īpašam serverim), ievadiet čaulu un redziet, cik reizes servera programma darbojas no sistēmas monitora programmas. Tā kā es izmantoju linux, es šai operētājsistēmai paskaidrošu, kurā puse serveru tik un tā darbojas.

1. variants

Man ir iestatījums, kurā apache ir serveris un darbojas prefork režīmā, kas būtībā ir viens no apache lietotnes gadījumiem (nosaukts httpd).

Kad serveris darbojas, čaulā varat izmantot komandu TOP, lai iegūtu reāllaika teksta versiju par darbojošajām lietotnēm, kā arī katras lietotnes CPU un atmiņas lietojumu.

Izmantojiet > un < taustiņu, lai kārtotu vērtības, līdz redzat virkni rindu, kurās atrodas komanda httpd. Tas jums pateiks, cik daudz apache procesu (httpd) ir gatavi apkalpot lietotāju pieprasījumus. Tagad apskatiet CPU izmantošanas procentuālo daudzumu blakus katram. Katram procesoram, kurā ir augsts CPU procents, šis process tiek iztērēts, un nākamais lietotājs, kurš vēlas piekļuvi, izmantos nākamo procesu utt. Tas ir viens no veidiem, kā iegūt priekšstatu par to, cik vienlaicīgi savienojumu tiek apstrādāti sekundē.

2. variants

Noskaidrojiet, kuru portu jūsu serveris klausās, lai pārvaldītu vietņu pieprasījumus. Parasti tas būtu 80. ports HTTP un, manuprāt, 443. ports HTTPS.

Es nevaru atcerēties pilnu komandu Linux, kas nav pieejams, bet ir viena, kuru varat ievadīt, kas tajā brīdī parāda, cik daudz savienojumu tiek lietots

Unix komandrindas tipā:

lsof | grep TCP | grep httpd 

Tad jūs redzēsiet visus savus apache procesus. kopā ar atslēgvārdu iekavās katras rindas beigās. LISTEN nozīmē, ka process ir gatavs jaunam savienojumam, un ESTABLISHED nozīmē savienojuma izveidi un visu citu ... jūs varat droši pieņemt, ka process tiek izmantots savienojumam.

Es neesmu pārliecināts, vai kāds no šiem darbojas tik labi citiem apache režīmiem, izņemot prefork, taču tam vajadzētu būt sākumpunktam, lai reāllaikā iegūtu vienlaicīgu savienojumu skaitu vienā informācijas pieprasījumā.

Kas attiecas uz sekundi, labākais, ko jūs varat darīt, ir rakstīt skriptu, kas izsauc iepriekš minēto komandu, pēc tam nosaka, cik vienlaicīgi ir savienojumi vienā komandas izpildē, un to dara dažas vai vairākas reizes sekundē, un kurš jebkad ir visaugstākais pieslēgumu skaitu sekundē.

IIS ideja

Ja meklējat IIS risinājumu, tas var būt grūtāk, jo linux piedāvā daudz unix programmu tieši interneta pārvaldībai, un Windows nedaudz atpaliek no spēles. Attiecībā uz IIS es sazinātos ar Microsoft, lai uzzinātu, vai viņiem ir sava veida komandrindas utilīta, kas ziņo par savienojumu skaitu ar datoru, izmantojot 80. (http) vai 443. (https) portu, un pēc tam uzrakstiet skriptu, lai iegūtu nepieciešamo informāciju .

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?