que vous exécutiez un serveur pour une application ou simplement votre machine locale, vous voulez que votre ordinateur fonctionne à son meilleur. C’est pourquoi vous devez vous assurer de surveiller L’utilisation du processeur, du disque et de la mémoire de votre ordinateur. Surveiller des choses comme l’utilisation de la mémoire et l’utilisation du disque est en fait assez facile. Combien d’espace disque vous avez quitté? Est votre disque fragmenté? Avez-vous assez de RAM pour les applications que vous utilisez? Échangez-vous régulièrement de la mémoire?
Ce sont des questions faciles à répondre, et ce sont des questions que vous devriez poser., Mais certaines questions sont plus compliquées, surtout en ce qui concerne les métriques CPU. Bien sûr, il existe des métriques simples comme l’utilisation globale du processeur. Mais si vous utilisez Linux, vous avez des métriques plus ésotériques (et parfois plus utiles), comme la charge CPU. Dans cet article, nous allons parler de ce que signifie réellement la métrique de charge CPU et de la manière dont vous pouvez l’utiliser pour optimiser vos serveurs.
la Charge CPU vs CPU Utilisation
La première chose à comprendre est que la charge du PROCESSEUR n’est pas la même chose que l’utilisation du PROCESSEUR., Même si elles peuvent sembler similaires, elles sont très différentes. L’utilisation du processeur est une mesure, en pourcentage, du temps que le processeur passe à calculer activement quelque chose. Par exemple, si vous aviez un programme qui nécessitait une puissance de traitement ininterrompue pendant 54 des 60 dernières secondes, votre utilisation du processeur sur un cœur serait de 90%. Au lieu de cela, si le programme ne nécessitait que six secondes de temps de traitement sur un cœur, l’utilisation serait de 10%.
la plupart des entreprises cherchent à maintenir l’utilisation du processeur de leurs serveurs aussi près de 100% que possible., La plupart des serveurs sont vendus par puissance de calcul globale, et si votre serveur est assis seulement à 30% D’utilisation du processeur, vous payez pour trop de puissance du processeur. Vous pouvez rétrograder votre processeur à un niveau inférieur, économiser de l’argent et ne voir aucune réduction de la qualité des performances de votre serveur.
CPU
la charge CPU est différent. Au lieu de mesurer le pourcentage de temps pendant lequel le processeur fonctionne, la charge du processeur mesure le nombre de programmes utilisant ou en attente d’un cœur de processeur à la fois. Un processeur complètement inactif aurait une valeur de charge de 0., Dans notre exemple précédent, nous aurions des temps de chargement d’une minute de .9 et .1, respectivement. C’est assez intuitif. Cependant, ce qui n’est pas intuitif à propos de la charge du processeur, c’est qu’une valeur de 1 n’est pas nécessairement une mesure entièrement chargée.
Au Lieu de cela, ce qui constitue une charge CPU « complète” dépend du nombre de threads du système d’exploitation dont dispose votre CPU. La plupart des processeurs de nos jours constituent plus qu’un seul cœur de processeur, exécutant plus d’un seul thread de processeur. Si votre CPU a quatre cœurs, alors une charge CPU de 1 n’est pas un CPU entièrement chargé. Au lieu de cela, il ne serait chargé que d’un quart., Au lieu de cela, votre charge CPU serait considérée comme complète pour votre CPU si votre valeur de charge était 4, pas 1.
déchiffrer les charges CPU Linux
exécuter un programme qui affiche les totaux de charge CPU Linux peut être un peu déroutant au début. Si vous exécutez une commande comme uptime ou top, Vous pouvez voir une valeur de charge CPU qui ressemble à 1.68 0.55 5.91. Si vous ne savez pas ce que vous cherchez, cela ressemble à du bruit. Heureusement, c’est en fait assez facile à déchiffrer. Il y a trois valeurs ici, et nous allons les regarder dans l’ordre.
La première valeur est de 1,68. C’est la valeur de la charge CPU pendant la dernière minute., Comme nous l’avons mentionné précédemment, il s’agit d’une mesure du nombre de programmes utilisant le temps CPU au cours de la dernière minute. Ainsi, à la dernière minute sur cette machine, il y avait en moyenne 1, 68 programmes utilisant le temps de traitement du processeur ou attendant le temps de traitement du processeur. S’il s’agit d’un processeur mono-thread, cela signifie que l’ordinateur est surchargé. Les utilisateurs attendent que leurs programmes s’exécutent sur le processeur et connaissent des performances dégradées. S’il s’agit plutôt d’un ordinateur dual-core ou d’un quad-core, les utilisateurs peuvent obtenir du temps CPU aussi rapidement qu’ils en avaient besoin, à la dernière minute.,
la deuxième valeur est 0,55. Il s’agit de la mesure sur les 5 dernières minutes. Comme nous l’avons discuté précédemment, une mesure inférieure à 1 signifie que le CPU passé du temps dans cette fenêtre, complètement inactif. Dans ce cas, le processeur était inactif pendant près de la moitié du temps. Si nous optimisons notre CPU pour faire constamment quelque chose, ce n’est pas bon signe.
le nombre final, 5.91, est une mesure des 15 dernières minutes. Si vous utilisez un processeur à huit cœurs, ce nombre n’est pas particulièrement choquant. Si vous utilisez un processeur dual-core, un nombre comme 5.91 signifie que votre processeur est très surchargé., Les utilisateurs attendent régulièrement du temps CPU et connaissent probablement des performances considérablement dégradées.
Unix vs Linux charges CPU
Si vous avez l’habitude d’utiliser la mesure de la charge CPU sous Unix, certains de ces chiffres peuvent vous sembler élevés. C’est parce Qu’Unix et Linux mesurent la charge CPU différemment. Unix mesure expressément la charge CPU comme une mesure des programmes qui utilisent activement ou attendent le traitement CPU. Linux mesure les choses un peu différemment, et comprendre comment est la clé d’une bonne administration du système.,
Linux mesure la charge CPU en regardant à la fois les programmes qui utilisent ou attendent actuellement du temps CPU en plus des programmes qui sont en attente. Par exemple, un programme en attente d’une demande réseau, ou pour charger quelque chose à partir d’un disque, ne compterait pas dans la charge CPU sous Unix. Sur Linux, il n’. Que ce soit une approche meilleure ou pire dépend de votre cas d’utilisation. Si vous ne cherchez à mesurer que l’utilisation globale du processeur, Unix fournit une meilleure interface., Mais si vous avez un programme qui est verrouillé pendant 30 secondes en attente d’une demande réseau, Linux vous le dira. Unix ne ferait jamais surface ces données du tout.
optimisation des charges CPU
Il n’y a pas de solution miracle pour optimiser vos charges CPU. C’est un processus que vous devez aborder de manière holistique. Tout comme L’utilisation du processeur, lorsque vous êtes sur un serveur, vous voulez être proche de 100%, mais pas fini. Parfois, le processus d’optimisation de vos charges CPU est assez facile. Peut-être que votre serveur n’utilisera jamais que deux threads en même temps., Dans ce cas, optimiser les charges du serveur n’est pas plus compliqué que d’avoir un processeur dual-core. Vous aurez peut-être besoin d’un processeur plus rapide pour vous assurer que ces programmes se terminent à temps, mais vous n’aurez jamais besoin de plus de deux cœurs.
la plupart des systèmes ne se limitent pas à exactement deux threads actifs, cependant. La plupart des serveurs sont beaucoup plus compliqués. Et l’un des vrais défis est de garder le nombre de cœurs aussi bas que possible, car cela vous permet d’économiser de l’argent, sans aller trop bas et dégrader l’expérience utilisateur. Il se peut que vous ayez besoin d’optimiser le code que votre serveur exécute., Parfois, vous devrez déterminer combien de temps de programme est consommé en attendant des choses comme les requêtes de base de données. Il se peut que vous ayez vraiment besoin d’augmenter le nombre de cœurs sur votre processeur. Les serveurs engorgés peuvent avoir un certain nombre de causes et peuvent être corrigés de plusieurs façons.
comment est votre charge CPU?
la surveillance et l’optimisation de la charge de votre processeur sont une partie importante pour tirer le meilleur parti de la mémoire de votre serveur. Malheureusement, c’est aussi un processus manuel qui prend du temps. Comme indiqué, la plupart des commandes Linux ne fournissent une charge CPU que pour windows de 15 minutes., C’est une bonne chose; vous ne voudriez pas que les fenêtres soient beaucoup plus larges que cela. Vous avez un moment difficile obtenir toutes les informations utiles hors d’eux. Cependant, garder un œil sur la charge du processeur sur des périodes de 15 minutes est une sorte de casse-tête.
Heureusement, il existe de bons outils pour surveiller ces sortes de choses pour vous. Par exemple, Scalyr peut surveiller la charge du processeur simplement en ingérant certains journaux. Vous n’obtiendrez pas seulement une simple impression numérique., Au lieu de cela, vous obtiendrez un joli visuel qui montre votre charge CPU globale au fil du temps. Cela peut être particulièrement utile, car il vous aide à identifier les fenêtres spécifiques qui sont les plus exigeants sur votre CPU. Optimiser les performances de votre serveur signifie le comprendre en détail, et pas seulement à un niveau élevé.
Une partie d’être un bon administrateur système signifie comprendre votre serveur de toutes les directions. Savoir interpréter la charge du processeur et l’optimiser est un élément clé pour maximiser l’investissement de votre entreprise dans les serveurs., Avant de pouvoir le faire,vous devez comprendre quelle est la charge CPU de votre serveur. Il n’y a pas de meilleur jour qu’aujourd’hui pour commencer à surveiller la charge CPU de votre serveur. Vous pouvez commencer à formuler un plan d’optimisation aujourd’hui.
Ce billet a été écrit par Eric Boersma. Eric est un développeur de logiciels et un responsable du développement qui a tout fait, de la sécurité informatique dans les produits pharmaceutiques à la rédaction de logiciels de renseignement pour le gouvernement américain, en passant par la création d’équipes de développement internationales pour des organisations à but non lucratif., Il aime parler des choses qu’il a apprises en cours de route, et il aime écouter et d’apprendre des autres ainsi.