Pourquoi mon server web utilise-t-il seulement 2 kernelx? (8 kernelx disponibles)

Helo, mon server est un quad-core 2x, avec 8 Gb RAM, il exécute LAMP pour un site Web de taille moyenne (120 pages ouvertes tous les jours) j'ai installé munin pour surveiller le processeur, et c'est le graphique: http: //img834.imageshack. us / img834 / 3483 / downloadv.png Pourquoi utilise-t-il seulement 2 des 8 kernelx? peut-être que le munin ne calcule pas bien la charge de l'ordinateur?

il existe une façon de forcer le multipasse ip php mysql apache? J'utilise déjà MPM avec apache.

merci simon

8 Solutions collect form web for “Pourquoi mon server web utilise-t-il seulement 2 kernelx? (8 kernelx disponibles)”

Tout d'abord, soyez assuré qu'il ne semble pas y avoir de problème de matériel ou d'OS: votre graphique montre que le système reconnaît correctement la présence de 8 CPU disponibles; Ainsi, il n'y a rien à modifier dans le BIOS ou dans le kernel Linux.

En ce qui concerne les raisons possibles pour lesquelles vos applications ne font pas pleinement usage de l'alimentation de votre CPU, elles sont fondamentalement trois:

  1. Votre charge de travail actuelle ne nécessite pas tellement de puissance.
  2. Vos applications ne permettent pas beaucoup (le cas échéant) de la parallélisation.
  3. Vos servers (MySQL et Apache) sont configurés pour utiliser uniquement des CPU simples.

La troisième option est la plus invraisemblable, car par défaut, MySQL et Apache sont totalement heureux d'aller multithread, s'ils le peuvent; alors concentrons-nous sur les deux autres.

Comment le time de réponse du server est-il sous la charge actuelle? Est-ce que cela se sent «lent» ou répond-il rapidement? Pour exclure cela, pouvez-vous exécuter des tests de reference pour mettre plus de charge sur votre server? Si l'utilisation du processeur augmente sous une charge plus lourde, votre server fonctionne bien, il ne nécessite actuellement pas beaucoup de puissance du processeur. Mais si ce n'est pas le cas et le server commence à répondre mal (ou s'il le fait déjà), alors vous devriez regarder l'option 2.

En ce qui concerne cela, Apache est insortingnsèquement parallèle, car il "vient" de traiter et de servir des pages Web; donc le coupable pourrait être MySQL. Quel type de requêtes vous rencontrez-vous? Êtes-vous en train de faire des SELECTs, ou êtes-vous (peut-être fortement) INSERT, UPDATing ou DELETTRE des données? De plus, quel type de transaction et de locking utilisez-vous? Selon tout cela, il se peut fort bien que les requêtes soient en cours d'exécution en série, car le server ne peut pas les paralléliser correctement. En outre, la même chose pourrait se produire car MySQL attend des E / S de disque ou parce qu'il ne dispose pas de suffisamment de memory disponible. Vous devriez exécuter un outil de profilage contre votre MySQL et voir ce qu'il a à dire à ce sujet.

120 pages ouvertes chaque jour sont des arachides à cette centrale. Vous n'êtes pas près de maximiser un kernel et encore less 8.

Vous semblez chercher un problème, un certain nombre de pages lentes que vous essayez de comprendre sont lentes?

Une vue de page ne fonctionnera généralement que sur un kernel en tant que process / tâche / thread unique. Votre database fonctionnera dans un autre, mais si le traitement qu'il doit faire est complexe, il peut prendre du time, peu importe le nombre de kernelx que vous avez.

90% des pages lentes du time sont dues à des index manquants dans la database.

Apache + PHP + MySQL devrait utiliser toutes les ressources automatiquement sans modifier. Et si vous regardez simplement la command supérieure et vérifiez l'utilisation du processeur?

Et, êtes-vous sûr que l'utilisation de l'ordinateur devrait être plus élevée que cela? Une machine à 8 cœurs est une centrale élecsortingque dont l'utilisation de processeur de 800% nécessiterait un trafic important ou un calcul lourd.

Je pense que cela a à voir avec la façon dont les outils comme munin montre des ressources et pas tellement sur l'utilisation du processeur. Essayez d'installer "htop" car il vous montrera une barre pour chaque kernel de manière appropriée, cela vous aidera probablement à get la réponse.

J'ai eu la même chose avec les cactus et je suis parvenu à la conclusion que le suivi s'élève à 100% par kernel. C'est pourquoi vous avez 800% de disponibilité, peut-être que vous avez une meilleure configuration optimisée que vous avez même osé espérer! 😉

L'utilisation du cache de requête MySQL peut limiter l'opération à un seul thread. Vérifiez si vous l'utilisez et désactivez-le si vous n'en avez pas besoin. Le cache de la requête supprime votre chargement du server sur les opérations de lecture, mais ce sera un fardeau si vous faites beaucoup d'écritures et / ou que votre server doit étendre à une charge massive. 120 hits par jour ne sont rien.

Il semble utiliser 8 kernelx, car vous avez obtenu 800% de maximum sur le côté gauche dans votre diagramme.

C'est un graphique de votre pourcentage de CPU utilisé. Il n'y a rien à voir avec les kernelx.

Comme d'autres ont déclaré que le graphique ne supporte pas votre affirmation selon laquelle le server web utilise uniquement un kernel.

Site de taille moyenne (120 pages ouvertes tous les jours)

Vraiment? 120 coups par jour? Et vous avez un grand server robuste pour soutenir cela? J'aimerais avoir votre budget informatique. Ce matériel devrait être capable de supporter plus de 10 000 000 hits / jour! Si cela nécessite 1/8 de sa capacité totale de CPU pour 1 coup par minute, il y a quelque chose de très mal ici.

(BTW est possible de définir / lire l'affinité de la CPU sur Linux – voir 'man taskset' pour plus de détails).

C.

  • Apache ne réagit pas après l'exécution du script PHP trop longtime
  • Comment les connections sont-elles différenciées par rapport aux routeurs NAT?
  • Masquer les erreurs STRICT sur PHP 5.4
  • Résolution "php54w-common-5.4.24-1.w6.x86_64 conflits php-common <5.4.0"
  • Les files de session PHP ont des permissions de 000 - Ils sont inutilisables
  • migration de l'htaccess d'Apache vers nginx
  • / Usr / bin / host exécuté par un script PHP piraté
  • configurer PHP 5.6.3 pour fonctionner avec IIS 8 sur Windows Server 2012
  • Apache en cours d'exécution mais le site n'est pas accessible
  • Comment installer PHP dans IIS 7.5, Windows Server 2008 R2 (64bits)
  • Les modifications apscopes à l'instance EC2 ont pris effet après le redémarrage du server
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.