La configuration Apache recommandée?

Désolé de poser une question comme celle-ci si c'est trop superficiel pour vous. Compte tenu de l'information ci-dessous, comment configurer httpd.conf?

Le time de chargement des pages atteint 30 secondes lorsque le server est occupé.

Serveur:

Quad-Xeon 3220/8 Go de memory / 2×250 Go SATAII / 10TB BW / 1GiGE / 8 IPS (SoftLayer), CentOS 5 (64 bits) Plesk 9.5

Linux server.x.com 2.6.18-274.17.1.el5 # 1 SMP Tue Jan 10 17:25:58 EST 2012 x86_64 x86_64 x86_64 GNU / Linux

Les sites sur le server reçoivent environ 500 000 pages vues et 200 Go par jour en moyenne. Il y a environ 1500 visiteurs en ligne lorsque le server est occupé selon http://whos.amung.us/stats/ .

top - 11:15:08 up 23 days, 12:21, 1 user, load average: 0.30, 1.09, 1.84 Tasks: 453 total, 1 running, 452 sleeping, 0 stopped, 0 zombie Cpu(s): 2.9%us, 2.8%sy, 0.0%ni, 90.3%id, 3.7%wa, 0.0%hi, 0.3%si, 0.0%st Mem: 8165772k total, 8065268k used, 100504k free, 348884k buffers Swap: 1052248k total, 208k used, 1052040k free, 6466136k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15573 mysql 15 0 601m 80m 4520 S 35.1 1.0 2026:37 mysqld 19381 apache 15 0 307m 15m 3312 S 1.0 0.2 0:02.73 httpd 13230 apache 15 0 307m 15m 3296 S 0.7 0.2 0:03.74 httpd 14152 apache 15 0 307m 15m 3284 S 0.7 0.2 0:03.91 httpd 16147 apache 15 0 307m 15m 3296 S 0.7 0.2 0:03.14 httpd 16957 apache 15 0 307m 15m 3292 S 0.7 0.2 0:03.03 httpd 

Fichier httpd.conf:

 Timeout 60 KeepAlive On MaxKeepAliveRequests 300 KeepAliveTimeout 5 <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> 

2 Solutions collect form web for “La configuration Apache recommandée?”

Points à considérer:

  1. Votre nombre maximum de clients en ligne est de ~ 1500
  2. La quantité de memory httpd chaque process httpd (environ 300 Mo de votre sortie) et la quantité de memory de votre machine.

Il serait judicieux d'examiner attentivement votre httpd.conf et de supprimer tous les modules inutiles pour réduire votre empreinte memory. Une fois que vous l'avez fait, vous pouvez commencer à augmenter MaxClients et ServerLimit progressivement.

Vous voudrez augmenter les StartServers , MinSpareServers et MaxSpareServers aussi, mais encore une fois, faites-le progressivement et surveillez l'utilisation de la memory et les performances du site pendant un certain time après chaque changement.

D'autres choses à considérer serait de placer quelque chose comme vernis devant Apache ou (comme Fernando le suggère) APC.

Si possible, essayez de passer à un autre server Web comme Nginx ou Lighttpd. Apache est génial, mais généralement il ne gère pas bien les sites occupés.

Si vous ne pouvez pas, aucun problème. Voici quelques conseils qui peuvent vous aider:

1. Désactiver les journaux

Si votre application ne dépend pas des files journaux et que vous utilisez Analytics ou autre service pour les statistics, vous pouvez désactiver les journaux. Vous verrez des sorties d'E / S car Apache n'a pas à écrire toutes les requêtes sur le disque.

2. Utilisez-vous PHP? Le cache d'opcode est obligatoire!

Je préfère APC car il est simple à installer, stable et va bientôt faire partie de PHP. Pour l'installer, exécutez simplement:

 pecl install apc 

Ils ajoutent la ligne suivante à votre php.ini:

 extension="apc.so" 

Redémarrez votre server Web et regardez le chargement diminuer.

3. Passer à un autre MPM

La modification au travailleur ou à l'événement MPM peut aider à certaines causes. Cela dépend vraiment du type de files que vous utilisez. J'ai vu des cas où la charge a chuté après cela et d'autres fonctionnaient comme prefork ou le travailleur n'a pas fait de différence considérable.

Remarque: vous pouvez casser PHP si vous changez pour un travailleur et que vous l'exécutez en tant que module DSO. Vérifiez ceci avant.

  • Cause de la vitesse de téléchargement lente sur une instance EC2 particulière?
  • Pauvres fonctionnalités d'E / S invitées KVM Ubuntu 12.04
  • SQL 2000 - WAITSTATS: requête CXPACKET
  • Les transferts FTP sont lents sur un long tuyau gras
  • Le problème de performance du server de files Cluster de basculement avec Windows Server 2016
  • Qu'est-ce qui provoque des vitesses de téléchargement / téléchargement SFTP lent?
  • Comment mesurer le débit du disque?
  • Comment tester le débit du server
  • Existe-t-il une différence de performance entre les éditions 2008 du server Microsoft SQL?
  • IIS: comment dire si un time lent est dû à une connection réseau lente
  • Migration de l'application .NET 2.0 de Win2003 / IIS6 vers Win2008 / IIS7 - Problèmes de performance
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.