Kirjoittaja Aihe: Iso sivupyyntömäärä Apachelle  (Luettu 2151 kertaa)

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
Iso sivupyyntömäärä Apachelle
« : 11.06.20 - klo:21.05 »

Mitä tapahtuu, jos 2 gigan muistilla toimivassa Ubuntussa Apachelle tulee vaikka sekunnin sisällä esimerkiksi 100 sivupyyntöä. Sivut voivat olla aika yksinkertaisia, ehkä joku pieni php-laskenta voi olla.

Meneekö Apache täydellisesti jumiin, vai hoitaako se pyyntöjä vain tulojärjestyksessä eli onko olemassa joku puskuri, jonne pyynnöt jäävät jonottamaan.

Seuraako tällaisesta ruuhkatilanteesta isoja ongelmia esimerkiksi uudelleenkäynnistyksessä.

kamara

  • Käyttäjä
  • Viestejä: 3028
    • Profiili
Vs: Iso sivupyyntömäärä Apachelle
« Vastaus #1 : 11.06.20 - klo:21.33 »
Voithan kokeilla, mutta ei sen pitäisi siitä jumiin mennä.

Apachehan on tehty jo ainakin pari kymmentä vuotta sitten, jolloin kiintolevytilaa oli noi 2 Gigaa, ja kyllä se silloinkin toimi ihan kohtuullisesti.

On huomioitava, että X:n pyörittäminen on huomattavasti raskaampaa kuin muutaman megan lähettäminen porttiin. Tietenkin, jos lähetät videota, niin silloin tilanne on eri.

Edit - 2Gt:n raspi vastanneen samaa tehoa suuruusluokaltaan kuin vuoden 2005:n EEEPC tai ainakin lähes yhtä tehokas. (Tämäkin riippuu, mitä tehdään.) Vetäisin tosin vertauksen hatustani.

Edit 2 -  Siis jos sulla on serverissä X, niin todennäköisesti sen käyttäminen on raskaampaa kuin php-koodin suorittaminen 100:lle asiakkaalle.

Edit 3 - Siis Mooren laki on purkkakoodin ystävä.
« Viimeksi muokattu: 11.06.20 - klo:21.39 kirjoittanut kamara »

teele

  • Käyttäjä
  • Viestejä: 851
    • Profiili
Vs: Iso sivupyyntömäärä Apachelle
« Vastaus #2 : 11.06.20 - klo:21.58 »

" Siis jos sulla on serverissä X, niin todennäköisesti sen käyttäminen on raskaampaa kuin php-koodin suorittaminen 100:lle asiakkaalle."

Tämä auttaa käsityksen saamista asiassa. Kyllä x toimii 2 gigassa ihan kohtuullisesti omien mielikuvieni mukaan.

Mutta 2 gigan pilvikoneessa ei ole edes x:ää,oikeastaan pelkkä Apache php:kanssa. Eli vaikuttaa, että katastrofia ei olisi tiedossa?

Miten sen sitten voisi kokeilla tältä kotikoneelta, jolla nettiyhteyskin on hidas. Voinko täältä lähettää jollain tavalla 100 pyyntöä eri parametrein. Sivujen php käyttää käyttäjän lähettämää $POST -dataa tuloksen näyttämiseen javascriptillä. Tulos lasketaan palvelimella php:n avulla.

Apachekaan ei siis todnenäköisesti kaadu, pyynöjen vasteaika vain kasvaa?

Kiitos vielä vaativuusluokka-arviosta, nyt on vähän käsitystä siitä, millaista konetehoa vaaditaan

nm

  • Käyttäjä
  • Viestejä: 16425
    • Profiili
Vs: Iso sivupyyntömäärä Apachelle
« Vastaus #3 : 12.06.20 - klo:03.51 »
Eli vaikuttaa, että katastrofia ei olisi tiedossa?

Kevyt PHP-skripti varmaankin ehtii vastata 100 pyyntöön sekunnissa. Kannattaa kuitenkin testata asia, jos on odotettavissa noin suuri jatkuva kuorma.

Miten sen sitten voisi kokeilla tältä kotikoneelta, jolla nettiyhteyskin on hidas. Voinko täältä lähettää jollain tavalla 100 pyyntöä eri parametrein.

Siege on hyvä työkalu tällaiseen kuormituskokeiluun. Voit ajaa sitä verkon yli, tai vaikka paikallisesti siellä palvelinkoneella, jolloin nettiyhteyden nopeus ei ainakaan ole pullonkaulana. Siege asentuu suoraan Ubuntun pakettivarastosta:

Koodia: [Valitse]
sudo apt install siege
Voi antaa sille tiedostona listan osoitteita POST-parametreineen ja määritellä komentoriviparametreilla tai asetustiedoston avulla, paljonko samanaikaisia "asiakkaita" on ajossa ja kuinka paljon kyselyjä ne tekevät.

https://www.linode.com/docs/tools-reference/tools/load-testing-with-siege/
https://www.joedog.org/siege-manual/


Apachekaan ei siis todnenäköisesti kaadu, pyynöjen vasteaika vain kasvaa?

Joo, ei kaadu ihan helposti, jos vain muisti riittää. Oletuksena Apachen samanaikaisten yhteyksien raja on 256, ja sellaisessa tilanteessa Apachen säikeet PHP:n kanssa täyttävät aika varmasti kahden gigan muistin.
« Viimeksi muokattu: 12.06.20 - klo:04.07 kirjoittanut nm »

Jagster

  • Käyttäjä
  • Viestejä: 90
    • Profiili
Vs: Iso sivupyyntömäärä Apachelle
« Vastaus #4 : 06.07.20 - klo:11.19 »
100 samanaikaista tekee vähintään 200 pyyntöä sekunnissa. Se on aika paljon. Itseasiassa suurin osa markkinoiden webhotelleista menee polvilleen siinä vaiheessa.

Ubuntu ei kaadu, mutta Apache saattaa alkaa hidastelemaan. Riippuu hieman asetuksista, mutta 2 gigalla ollaan siinä rajoilla, että alkaako osalle kävijöistä tulla error 5xx. Toki yhden PHP-skriptin ajaminen on eri asia kuin verkkosivu, mutta ei paljon.

Edellä mainittu siege, tai sitten apachen oma ab, on yksi tapa hieman haarukoida rajoja. Kumpikaan ei ole luotettava sinällään, vaan antaa suuntaa ja numeroita on tulkittava. Kannattaa myös muistaa, että samassa boksissa testin ajaminen antaa sitten ylipositiivisen kuvan ja aitoa tilannetta simuloimaan testiyhteydet olisi tehtävä muualta.