2010-02-03 1 views
1

Nous avons construit une version 64 bits d'Apache 2.2.14 et l'avons déployée sur différents serveurs Sun exécutant Sol10. Les types de serveurs utilisés pour les tests sont Sun T2000 (32 Go de mémoire), 5120 (8 Go) et 5240 (16 Go). Pour chacun de ceux-ci, nous avons remarqué qu'il n'y avait pas d'amélioration sensible de l'utilisation de l'UC et que le serveur fonctionnait légèrement plus chaud que lors de l'exécution de la version 32 bits.Pourquoi n'y a-t-il aucune amélioration dans l'utilisation du processeur avec notre version 64 bits d'Apache?

Nous avons confirmé cette observation en revenant à la version 32 bits, puis en retournant à la version 64 bits. Comme il s'agit d'une ferme Web importante, nous disposons d'une infrastructure de surveillance de serveur étendue avec des graphiques RRD pour toutes sortes de mesures. Les graphiques sont disponibles pour les calendriers quotidiens, hebdomadaires, mensuels et annuels. Les changements de fréquence sur nos serveurs sont cycliques tout au long de la journée, mais restent assez stables avec des pics de l'ordre de 2k/seconde par serveur. Le nombre d'enfants est également cyclique sur une base quotidienne et varie entre 1k et 3k par serveur. Comme tous les serveurs se trouvent derrière une couche d'équilibrage de charge, le changement d'étape ne peut pas être attribué aux variations du taux de réussite ou des enfants.

Nous avons utilisé le compilateur CC fourni avec Sunstudio 12.1 à l'aide des indicateurs de compilation suivants. Les drapeaux de liaison sont similaires mais sans les -D. Nous ne faisons rien d'inhabituel dans la configuration d'Apache et c'est assez vanille.

Édition: Les performances ont été déterminées en regardant CPU par rapport aux demandes par rapport à la mémoire (dans cet ordre). Le 64bit faisait moins de demandes avec le même CPU et un peu plus de mémoire. Le diff était dans les marges d'erreur et seulement notables à presque pleine charge

J'ai lu la question "How to develop to take advantage of 64 bit systems?" et il y a quelques informations intéressantes là-bas. Il semble être principalement des questions concernant un

  1. adressage de la mémoire en dehors de la limite de 4 Go de l'espace d'adressage 32 bits,
  2. manipulation des valeurs de 64 bits.

À mon avis, nous nous attendons également à une amélioration des performances SSL.

Des suggestions sur les raisons pour lesquelles notre performance ne s'est pas améliorée?

Ou des suggestions sur quoi regarder?

Faut-il réellement voir une amélioration des performances? Utilisez-vous des algorithmes 64 bits optimisés?

+0

Je considère qu'il s'agit d'une question de programmation et de construction de l'exécutable à partir du code. Par conséquent, il est ici et pas sur Server Fault. Si c'était une question de configuration du serveur construit lui-même alors je serais d'accord qu'il devrait être sur le défaut de serveur. –

Répondre

1

En plus de traiter de grandes quantités de mémoire, le seul autre avantage de x86_64 par rapport à son cousin 32 bits est un ensemble de registres plus riche. Cela devrait signifier que le code lourd du CPU peut être plus efficace car il doit maintenir moins d'état dans la mémoire principale relativement lente.Cependant, ceci est souvent contrecarré par une utilisation accrue de la mémoire, car tous les pointeurs prennent maintenant deux fois l'espace.

Généralement, compte tenu de la mémoire suffisante pour tenir compte de cela, je m'attendrais à ce que les problèmes liés à la CPU soient plus performants dans les applications 64 bits. Cependant, la diffusion sur le Web est souvent un problème lié aux E/S et cela ne sera pas aidé (et peut-être gêné si la machine est sous une pression mémoire supplémentaire).

Vous voudrez probablement vous profiler sur votre machine (oprofile sous Linux, vous ne savez pas quel est l'outil Solaris équivalent) et voir où se trouvent les points chauds du CPU.

+0

Merci pour les bons conseils –

1

Votre bibliothèque SSL est-elle optimisée pour 64 bits et la bibliothèque ssl est-elle compilée pour cette architecture? Le simple fait de compiler du code 32 bits en 64 bits ne donnera pas grand-chose puisque la plupart des codes 32 bits n'utilisent même pas de fonctions optimisables.

+0

SSL a été construit et optimisé pour 64bit et la même architecture en utilisant le même compilateur. Je vais voir si Apache fournit des options de configuration spécifiques pour 64 bits. Merci. –

Questions connexes