Je faisais quelques analyses simples sur notre serveur de base de données (en direct) en dehors des heures de pointe, et j’ai remarqué que les requêtes donnaient des résultats quelque peu erratiques .
J'avais activé le plan d'économie d'énergie "équilibré" sur tous nos serveurs il y a quelque temps, car je pensais que leur taux d'utilisation était très élevé et que nous pouvions ainsi économiser de l'énergie.
J'avais supposé que cela n'aurait aucun impact significatif et mesurable sur la performance. Toutefois, si les fonctionnalités d'économie d'énergie du processeur ont un impact sur les performances typiques , en particulier sur le serveur de base de données partagé, je ne suis pas sûr que cela en vaut la peine!
J'ai été un peu surpris de constater que notre niveau Web, même avec une charge de 35 à 40%, passe de 2,8 Ghz à 1,25 V à 2,0 Ghz à 1,15 V.
Je m'attends totalement à ce que le down-clock économise de l'énergie, mais ce niveau de charge me semble suffisamment élevé pour qu'il soit réglé à la vitesse maximale.
Notre serveur de base de données de 8 cpu a une tonne de trafic, mais une utilisation du processeur extrêmement faible (à cause de la nature de nos requêtes SQL - beaucoup d'entre elles, mais de simples requêtes). Il est généralement assis à 10% ou moins. Je suppose donc que le downclocking était encore plus important que la capture d'écran ci-dessus. Quoi qu’il en soit, lorsque je suis passé à la gestion de l’alimentation en «hautes performances», j’ai vu mon benchmark de requête SQL s’améliorer d’environ 20% et devenir très cohérent d’une exécution à l’autre .
J'imaginais que je pensais que la gestion de l'alimentation sur des serveurs peu chargés était une solution gagnante, sans perte de performances ni d'économies d'énergie significatives, car le processeur est généralement le consommateur n ° 1 ou n ° 2 de la plupart des serveurs. Cela ne pas semble être le cas; vous perdrez des performances avec la gestion de l'alimentation du processeur activée, à moins que votre serveur ne soit toujours soumis à une charge telle que la gestion de l'alimentation se soit réellement éteinte. Ce résultat m'a surpris.
Quelqu'un a-t-il une autre expérience ou des recommandations à partager sur la gestion de l'alimentation du processeur pour les serveurs? Est-ce quelque chose que vous allumez ou éteignez sur vos serveurs? Avez-vous mesuré beaucoup de puissance économisez-vous? Avez-vous comparé avec elle de temps en temps?
la source
Réponses:
Je ne suis pas sûr des serveurs, mais l’idée actuelle en matière de périphériques embarqués n’est pas de s’inquiéter des étapes entre faible consommation et inconditionnelle, car le temps supplémentaire que cela prend absorbera vos économies d’énergie. quantité réelle de processeur à laquelle ils basculent au plus rapide possible pour pouvoir terminer le travail et revenir au ralenti à faible consommation.
la source
J'ai toujours désactivé tout type de gestion de l'alimentation sur les serveurs. Je suis curieux de voir ce que d’autres ont pu expérimenter, mais j’ai toujours supposé que si le serveur n’était pas à l’horloge, il y aurait toujours un délai pour «accélérer» le processeur à 100%, et dans un centre de données, tout retard comme celui-ci est inacceptable.
Les données que vous avez fournies semblent corroborer cette hypothèse. Donc, je n'ai pas fait de tests spécifiques, mais il semblerait que vous ne devriez utiliser aucune technologie d'économie d'énergie dans Windows ou le BIOS. J'éteins même les paramètres de réseau et de carte PCI désactivés pour être ultra conservateur.
la source
Combien Power Save ce fait vous :
Si vous décidez que cette fonctionnalité pourrait mettre la stabilité de vos serveurs à risque (je l'expérience à ce sujet ), alors vous pourriez chercher ailleurs les économies d'énergie.
Je voudrais essayer de savoir combien d'énergie cela pourrait économiser pour la quantité de serveurs que vous avez (Bien que peut-être vous avez déjà fait cela). Dans la mesure où le graphique que vous avez affiché dans votre réponse correspond à des pourcentages, les économies réalisées par votre entreprise pourraient en réalité être très faibles. Si vous n'avez pas beaucoup de serveurs, il est possible que le nombre de serveurs activés par le mouvement ou quelque chose de ce genre dans votre bureau ne soit pas aussi important, mais vous économiserez plus d'énergie (même si cela n'est pas aussi commercialisable).
Je me souviens avoir lu, il y a quelques années, qu'une des plus grandes entreprises automobiles américaines (oubliées de celles-là) subissait des pressions pour modifier les émissions de gaz d'échappement de ses voitures. Au lieu de cela, la société a montré que si elle plafonnait certaines de ses usines, cela leur coûterait beaucoup moins cher et entraînerait des économies d'émissions beaucoup plus importantes.
N'oubliez pas les disques:
vous pouvez également vérifier que cette fonctionnalité d'économie d'énergie ne ralentit pas le ou les disques s'ils ne sont pas utilisés. Peut-être que pendant un moment, tous les résultats de la requête SQL seraient en RAM, le disque serait utilisé et s'endormir (vous ne savez pas si cela fonctionne comme ça)? Si cela pouvait arriver, il y aurait une grosse pénalité de performance pendant que tout redémarrerait.
la source
Préface: Je fais quelques bonds / généralisations à propos d’Intel Xeons et de leurs performances en matière d’économie d’énergie avec SpeedStep. En lisant à propos des processeurs 45nm Intel Xeon " Yorkfield ", les technologies EIST (Enhanced Intel SpeedStep Technology) et C1E (Enhanced Halt State) semblent être le véritable coupable de la situation. Je suis d’accord avec votre affirmation de croire que le fait d’activer de telles fonctions de gestion de l’énergie aiderait à économiser l’énergie, mais lorsque les processeurs ont besoin de l’énergie sous charge, le système revient à une vitesse d’horloge normale. Il semble que EIST et C1E aient des effets secondaires qui ne sont pas intuitivement impliqués lorsque vous utilisez l'une ou l'autre des options du BIOS. Après avoir parcouru de nombreux sites Web d’overclocking, il apparaît que ces deux paramètres dans le BIOS sont assez frustrants.
De http://www.overclock.net/intel-cpus/376099-speedstep-guide-why-does-my-processor.html :
Bien que l’ajustement de vos paramètres de performance pour «hautes performances» soit probablement le meilleur paramètre pour un serveur de base de données, je suis à peu près certain que ce sont EIST et / ou C1E qui ont provoqué une sous- exécution des processeurs même s’ils auraient dû revenir à des paramètres normaux lors de la charge. considérablement augmenté. La grosse mise en garde qui m’apparaît semble être «qu’est une charge substantielle? Selon le site overclockers.net, ils affirment que EIST utilise ces paramètres de "schémas d'alimentation" pour manipuler les paramètres de votre CPU. Mais rien n’indique le pourcentage de charge ou la durée pendant laquelle le processeur revient à une tension normale.
Encore une fois, je ne suis nullement un expert en la matière pour les processeurs Intel , mais je parie que l' ajustement de ces deux paramètres pourrait vous obtenir les économies d'énergie que vous voulez et les performances que vous devriez obtenir, mais coller avec le réglage « performance maximale » est tout aussi efficace sans qu'il soit nécessaire de redémarrer.
la source
La réponse rapide est: bien sûr, l'économie d'énergie affectera les performances.
La réponse longue n'est pas amusante. Essentiellement, essayez un réglage, testez les performances et décidez avec quoi vous pouvez vivre.
Les applications et les systèmes sont tellement compliqués qu'il n'y a pas de réponse claire et nette, sauf "oui, le temps de réaction et les autres vitesses du système seront affectés". Si c'est beaucoup plus lent que le disque dur ou le réseau, eh bien, vous voyez l'idée. Testez en réalité.
la source
J'essaie toujours de créer autant de serveurs que possible, mais lorsque je dois «mettre à nu» un serveur, c'est généralement ce dont j'ai besoin ou je veux des performances totalement cohérentes. Donc, pour ces machines critiques, je n’allume JAMAIS quoi que ce soit d’économie d’énergie pour les raisons que vous rencontrez.
*** bang-go-my-green-credentials *
la source
Quelques choses:
Vérifiez dans le BIOS que la gestion de l’alimentation est sous le contrôle du système d’exploitation. Il est possible qu'il soit configuré pour être géré par le micrologiciel, et par conséquent, en utilisant une gestion de l'alimentation du processeur idiote et non optimale.
Vérifiez s'il existe des correctifs liés à la gestion de l'alimentation susceptibles de vous manquer. Il y en avait plusieurs notables à l'époque de la sortie de Vista / Server 2008.
Vérifiez la configuration détaillée pour équilibré. Il est possible qu'une autre fonctionnalité d'économie d'énergie entraîne une réduction des performances. En théorie, les performances d'EIST devraient être négligeables, même si une base de données SQL a une empreinte unique et qu'il est concevable qu'elle soit affectée de manière disproportionnée par la gestion de l'alimentation du processeur.
la source
Quelques informations de Microsoft (format Word Doc, malheureusement)
Améliorez l'efficacité énergétique et gérez la consommation d'énergie avec Windows Server 2008 R2
Ces fonctions d’économie d’énergie du processeur au niveau matériel sont identiques sous tous les systèmes d’exploitation. Il s’agit simplement de les activer ou non.
Le graphique d'économie d'énergie de l'absence de gestion de l'alimentation du processeur, par opposition à la gestion de l'alimentation du processeur:
Nous sommes conscients que (et ce graphique montre que) à des niveaux d'utilisation élevés, la gestion de l'alimentation du processeur est automatiquement désactivée. Ce que je ne sais pas, cependant, c'est si, avec de faibles niveaux d'utilisation, les performances globales du serveur ont un impact, par exemple le temps de traitement des requêtes SQL Server simples.
la source
Vous ne devriez jamais, jamais, utiliser les paramètres Windows ou le Bios Speedstep fourni avec les processeurs Intel. Il existe également un équivalent AMD. Cela peut causer des problèmes, et j'ai constaté de tels problèmes: avec Speedstep, l'horloge du processeur continuait à monter et à descendre de manière erratique, même si l'utilisation des ressources du processeur était cohérente.
Si vous voulez être plus écologique et économiser de l’énergie, utilisez des processeurs à faible consommation, désignés par le caractère L devant le nom du modèle, tels que L 54XX series et L 55XX series d’Intel.
EDIT: Je suis désolé si j’ai donné l’impression que cette fonctionnalité échouera toujours, je viens d’être brûlée par elle et, dans un système critique, je ne peux pas laisser ce genre de choses arriver, alors j’essaie juste de rester loin de là.
la source
Lorsque vous parlez de performances sur un serveur, il existe différentes manières de voir les choses. Il y a le temps de réponse apparent (similaire à la latence du réseau) et le débit (similaire à la bande passante du réseau).
Certaines versions de Windows Server sont livrées avec les paramètres d’alimentation équilibrée activés par défaut. Comme Jeff l'a souligné. Windows 2008 R2 en fait partie. De nos jours, très peu de processeurs sont à cœur unique. Cette explication s’applique donc à presque tous les serveurs Windows que vous rencontrerez, à l’exception des ordinateurs virtuels à cœur unique. (plus sur ceux plus tard).
Lorsque le plan d'alimentation équilibré est activé, le processeur tente de réduire la quantité d'énergie utilisée. Pour ce faire, il désactive la moitié des cœurs de la CPU dans un processus appelé "parking". Seule la moitié des processeurs seront disponibles à la fois, donc elle consomme moins d'énergie pendant les périodes de faible trafic. Ce n'est pas un problème en soi.
Le problème, c’est que, lorsque les CPU ne sont pas amorties, vous avez doublé le nombre de cycles disponibles pour le système et soudainement déséquilibré la charge du système, passant de (par exemple) une utilisation de 70% à 35%. Le système se penche sur cette question et, une fois la rafale de trafic traitée, il se dit: "Hé, je devrais recomposer un peu pour économiser l'énergie". Et c'est le cas.
Voici la mauvaise partie. Afin d'éviter une répartition inégale de la chaleur et de l'énergie dans les cœurs du processeur, il a tendance à parquer les processeurs qui ne l'ont pas encore été. Et pour que cela fonctionne correctement, la CPU doit tout vider des registres de la CPU (cache L1, L2 et L3) vers un autre emplacement (probablement la mémoire principale).
À titre d’exemple hypothétique, supposons que vous disposiez d’une CPU à 8 cœurs avec C1-C8.
Lorsque cela se produit, ils deviennent tous actifs pendant un certain temps, puis le système les stocke comme suit:
Mais, ce faisant, le vidage de toutes les données du cache L1-L3 génère une bonne quantité de temps système, ce qui permet d'éviter des erreurs étranges dans les programmes vidés du pipeline de processeurs.
Il y a probablement un nom officiel pour cela, mais j'aime bien l'expliquer par le battage du processeur. Fondamentalement, les processeurs passent plus de temps à déplacer des données en interne que à traiter des demandes de travail.
Si vous avez un type d'application nécessitant une latence faible pour ses demandes, vous devez désactiver les paramètres d'alimentation équilibrée. Si vous n'êtes pas sûr qu'il s'agisse d'un problème, procédez comme suit:
Si vous voyez l'un d'entre eux se garer, vous remarquerez que la moitié d'entre eux sont garés à un moment donné, ils vont tous se mettre en feu, puis l'autre moitié se garer. Il alterne d'avant en arrière. Ainsi, les processeurs du système sont en pleine effervescence.
Machines virtuelles: ce problème est encore pire lorsque vous exécutez une machine virtuelle car il existe une surcharge supplémentaire pour l'hyperviseur. En règle générale, pour qu'une machine virtuelle puisse s'exécuter, le matériel doit disposer d'un créneau horaire disponible pour chacun des cœurs à chaque tranche de temps.
Si vous avez un matériel de 16 cœurs, vous pouvez exécuter des ordinateurs virtuels avec plus de 16 cœurs, mais pour chaque tranche de temps, seuls 16 processeurs virtuels au maximum seront éligibles pour cette tranche de temps et l'hyperviseur doit s'adapter à tous les cœurs d'une machine virtuelle. dans cette tranche de temps. Il ne peut pas être réparti sur plusieurs tranches de temps. (Une tranche de temps est essentiellement un ensemble de X cycles du processeur. Ce peut être 1000 ou 100 000 cycles)
Ex: matériel de base 16 avec 8 VM. 6 ont 4 processeurs virtuels (4C) et 2 ont 8 processeurs virtuels (8C).
Timeslice 1: 4x4C Timeslice 2: 2x8C Timeslice 3: 2x4C + 1x8C Timeslice 4: 1x8C + 2x4C
Ce que l’hyperviseur ne peut pas faire, c’est diviser la moitié de l’attribution en une tranche de temps entre les 4 premiers processeurs d’une machine virtuelle 8 vCPU, puis sur la tranche suivante, attribuer le reste aux 4 autres vCPU de cette machine virtuelle. C'est tout ou rien dans le temps.
Si vous utilisez Microsoft Hyper-V, les paramètres de contrôle de l'alimentation peuvent être activés dans le système d'exploitation hôte, ce qui signifie qu'ils se répercuteront sur les systèmes clients, ce qui les affectera également.
Une fois que vous voyez comment cela fonctionne, il est facile de voir comment l’utilisation des paramètres de contrôle équilibré de l’alimentation entraîne des problèmes de performances et des serveurs lents. L'un des problèmes sous-jacents est que la demande entrante doit attendre la fin du processus de stationnement / annulation d'UC avant que le serveur puisse répondre à la demande entrante, qu'il s'agisse d'une requête de base de données, d'une demande de serveur Web ou de toute autre chose. .
Parfois, le système va stationner ou récupérer les processeurs au milieu d'une requête. Dans ces cas, la demande démarre dans le pipeline de la CPU, en est vidée, puis un cœur de CPU différent reprend le processus à partir de là. Si la requête est assez volumineuse, cela peut se produire plusieurs fois au cours de la requête, en transformant ce qui aurait dû être une requête de base de données de 5 secondes en une requête de base de données de 15 secondes.
La plus grande chose que vous verrez avec l'utilisation de Balanced Power est que les systèmes vont se sentir plus lents pour répondre à presque toutes les demandes que vous faites.
la source