Webserver: requests per second

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 318263

Topicstarter
Op het moment hebben wij een dedicated server in gebruik, waarop wij 1 Magento webshop hebben draaien. Deze server is uitgerust met een Intel Xeon E5-2620 (6 core, 12 threads), 32 GB RAM en 4x 240 GB Intel SSD in een RAID-10 opstelling. De server draait Linux Centos 6.3 met daarop Apache 2.2.23 met mod_ruid2, PHP 5.3.18 en MySQL 5.5 en nog een aantal standaard dingen voor FTP en e-mail. Als ControlPanel draait hier DirectAdmin.

Wanneer ik de shop bezoek, laden de pagina's an sich redelijk snel voor een Magento shop. Sommige pagina's hebben wat meer tijd nodig omdat deze nog niet zijn gecached met APC en Memcached. Wanneer je dezelfde pagina's echter nog een keer bezoekt, zijn ze keurig snel. So far so good.

Als ik een AB-test uitvoer, zijn de uitkomsten echter dramatisch. Waar ik vorige week nog een "request per second" van +- 100 haalde op de homepage, kom ik nu uit op slechts 8 of 9. Ik hoef jullie niet uit te leggen dat dat toch een bijzonder groot verschil is. De req. per second van 100 haalde ik overigens afgelopen donderdagmiddag. Vrijdagochtend is Memcached aangezet en sindsdien krijg ik slecht resultaten. Uiteraard Memcached uitgeschakeld (zojuist nogmaals), maar na een herstart van Apache blijf ik slechte resultaten halen. Ik heb geprobeerd in my.cnf een aantal variabelen te veranderen (qua caching, buffer pools), maar dat mocht niet baten. Ook in httpd-default.conf wijzigingen gemaakt aan de prefork.c en worker.c, maar blijft dramatisch laag.

Op het moment staat er dit in httpd-default.conf wat betreft de prefork.c en worker.c:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<IfModule prefork.c>
  StartServers           30
  MinSpareServers        20
  MaxSpareServers        30
  Serverlimit           750
  MaxClients            600
  MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
  StartServers           30
  MaxClients            750
  MinSpareThreads        75
  MaxSpareThreads       150
  ThreadsPerChild        75
  MaxRequestsPerChild    50
</IfModule>

<IfModule mpm_winnt.c>
  ThreadsPerChild       250
  MaxRequestsPerChild    10
</IfModule>


Wanneer ik de AB-uitvoer (ab -n 100 -c 5 http://domeinnaam.nl/), schieten alle cores naar 100% toe. Nu weet ik dat Magento een zwaar systeem is, maar dit is wel echt ernstig. Zoals ik zei heb ik vorige week een request rate van 100 gehad. De load op het systeem was ook aanzienlijk laag. Ik heb toen zelfs nog een "ab -n 100 -c 50" kunnen doen, waarbij amper wat te merken was.

Ik heb veel gegoogled, op Magento forum gekeken en ook (nogmaals) door de diverse config-files heengelopen, maar ik heb geen idee waar ik het moet zoeken. Je vind ook ontzettend veel topics die gaan over de performance van Magento. Alle standaard zaken, zoals APC en Memcached, staan bij ons al aan. Vandaar dat ik mijn toevlucht zoek hier bij PNS.

Iemand enig idee hoe dit plots kan worden veroorzaakt? En nog beter: kan iemand mij in de juiste richting van de oplossing sturen?

De webshop is op het moment nog niet live. Dit gebeurt dinsdag a.s. (5 maart). Het zou mooi zijn als het voor die tijd beter werkt. De laadtijden van de pagina's zijn wel goed, alleen maak ik mij zorgen over de request per second. Het moet natuurlijk niet zo zijn dat de shop er dinsdag eruit knalt omdat het het aantal gelijktijdige bezoekers te hoog is.

Ik hoop dat mijn topic hier goed staat, zo niet, zou een van de modjes hem dan willen verplaatsen?

Acties:
  • 0 Henk 'm!

  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 29-06 15:48
Welke processen staan boven in the lijst? Eerste stap lijkt mij om te kijken of het apache, mysql of memcached zelf is die alle cpu tijd opeet.

Mocht het MySQL zijn dan is het een goed idee om eens te kijken of je de juiste indexes hebt op velden, log ook de slow queries. mocht het in apache/php zitten dan kan je ook nog een code profiler draaien om te achterhalen waar de bottleneck zit. Dit kan bijvoorbeeld me xdebug.

[ Voor 3% gewijzigd door twiekert op 03-03-2013 13:55 ]


Acties:
  • 0 Henk 'm!

Anoniem: 318263

Topicstarter
Zojuist nogmaals getest en het is HTTPD (apache) die het CPU gebruik fijn laat oplopen.
Zodra de test is gestopt, zakt de CPU gelijk weer terug naar 0 en is alles weer stabiel.

Xdebug heb ik nog nooit mee gewerkt. Hoe gaat dat precies in zijn werk?
Ik zie dat je het relatief eenvoudig kan installeren, maar hoe lees ik dat vervolgens uit?
De browserplugin heb ik geïnstalleerd, maar daar kom ik nog niet heel veel verder mee

Acties:
  • 0 Henk 'm!

  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 11-07 16:08
DirectAdmin installeert een minimale mysql config; ik kan je aanraden daar aan te gaan sleutelen aangezien magento veel connect met die database.

Zaken als query-caching etc. zijn erg belangrijk voor de performance van Magento.

Acties:
  • 0 Henk 'm!

Anoniem: 318263

Topicstarter
Bedankt voor je reactie JMW761.
Ik ben er van op de hoogte dat DA een bijzonder simpele MySQL config hanteert. Het eerste wat ik na installatie dan ook doe, is deze vervangen door een geoptimaliseerde configuratie voor Magento.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tja, het probleem is dat het vanaf buiten slechts giswerk is. Of je hebt meer als memcached geinstalleerd of je hebt memcached niet goed gedeinstalleerd.

Wat ik zou doen is backup voor slowdown in VM terugzetten, backup na slowdown in andere VM terugzetten en dan simpelweg alle bestanden die qua datum verschillen diffen en vergelijken.
Volgens jouw verhaal zou de config namelijk gelijk moeten zijn, maar is hij het simpelweg niet.

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Anoniem: 318263 schreef op zondag 03 maart 2013 @ 13:42:
Op het moment staat er dit in httpd-default.conf wat betreft de prefork.c en worker.c:
Gebruik je worker, prefork of weet je het niet? Zou je niet sowieso PHP via FastCGI willen laten draaien?
Heb je met mytop de DB in de gaten gehouden tijdens hoge load? MySQL slow query log bekeken?

Acties:
  • 0 Henk 'm!

  • Kobus Post
  • Registratie: September 2010
  • Laatst online: 01-07 15:33
Hier gemiddeld 30 requests per seconde op een vps met 1GB ram en 2*2.4 gHz.
Gezien jouw specs moet je nog wel meer dan die 100 rps kunnen halen.
Ik draai nginx met php-fpm via fastcgi, mysql, nog wat email gerelateerde services en varnish (met de turpentine plugin voor magento).

Heb je misschien iets veranderd in Magento, een plugin geïnstalleerd of een wijziging doorgevoerd. Het kan zijn dat er een plugin o.i.d. is die problemen geeft en je systeem op zijn knieën brengt.

No trees were harmed in the creation of this message, but several thousand electrons were mildly inconvenienced.


Acties:
  • 0 Henk 'm!

  • ThinkPad
  • Registratie: Juni 2005
  • Laatst online: 13:53
Andere webserver draaien? Zoals Kobus Post hierboven, die nginx gebruikt. Volgens mij is Apache redelijk zwaar.

Lees je bijvoorbeeld eens in hoe Tweakers het doet: reviews: Tweakers' serverpark anno 2013
Pagina: 1