Salut,
Question peut être bête, surtout en tant que sysadmin moi même : Auriez-vous déjà lu des recommandations "officielles" / "bonne pratiques" dans une source fiable (que je puisse citer dans un mémoire) sur des critères d'utilisation CPU/RAM d'un serveur. En gros, un serveur en moyenne avec - 10% CPU et 30% RAM consommé : c'est peu, mais pourquoi ? - 95% CPU en 95% RAM consommé : c'est trop, mais pourquoi ? Il reste 5% dans les 2 cas... - 60% CPU et 60% RAM consommé : c'est bien, trop ?
Vous voyez ? Il me faudrait des critères objectifs... Si vous avez cela en stock : merci !
PS : désolé pour le cross-post...
Salut,
Cela dépend totalement de ce que tu fait tourner dessus. Et concernant la mémoire, tout dépend si tu comptes le cache ou non. Par exemple un serveur qui contient uniquement du MySQL peut monter à 99% CPU sans saturer dans son fonctionnement. Sur du web (Apache/nginx + PHP), on peut observer des saturations dès 60/70% de charge.
Evidemment, le meilleur moyen de déterminer des limites est de faire des bench avec tes applis métiers, qui te donnent l'utilisation CPU/mémoire en pointe. Pour ce dernier j'insiste sur l'utilisation du cache : les OS ont pour objectif de consommer un maximum de mémoire possible, donc un serveur avec 95% de mémoire consommé ne me choque pas, sauf si le cache représente moins de 5% (cela veut dire qu'une saturation - et un passage sur de la swap - est proche).
Olivier
Le 12 mai 2013 21:43, L.M.J linuxmasterjedi@free.fr a écrit :
Salut,
Question peut être bête, surtout en tant que sysadmin moi même : Auriez-vous déjà lu des recommandations "officielles" / "bonne pratiques" dans une source fiable (que je puisse citer dans un mémoire) sur des critères d'utilisation CPU/RAM d'un serveur. En gros, un serveur en moyenne avec
- 10% CPU et 30% RAM consommé : c'est peu, mais pourquoi ?
- 95% CPU en 95% RAM consommé : c'est trop, mais pourquoi ? Il reste 5%
dans les 2 cas...
- 60% CPU et 60% RAM consommé : c'est bien, trop ?
Vous voyez ? Il me faudrait des critères objectifs... Si vous avez cela en stock : merci !
PS : désolé pour le cross-post...
-- LMJ "May the source be with you my young padawan" _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Le Sun, 12 May 2013 21:54:56 +0200, Olivier Doucet webmaster@ajeux.com a écrit :
Salut,
Cela dépend totalement de ce que tu fait tourner dessus. Et concernant la mémoire, tout dépend si tu comptes le cache ou non. Par exemple un serveur qui contient uniquement du MySQL peut monter à 99% CPU sans saturer dans son fonctionnement. Sur du web (Apache/nginx + PHP), on peut observer des saturations dès 60/70% de charge.
Evidemment, le meilleur moyen de déterminer des limites est de faire des bench avec tes applis métiers, qui te donnent l'utilisation CPU/mémoire en pointe. Pour ce dernier j'insiste sur l'utilisation du cache : les OS ont pour objectif de consommer un maximum de mémoire possible, donc un serveur avec 95% de mémoire consommé ne me choque pas, sauf si le cache représente moins de 5% (cela veut dire qu'une saturation - et un passage sur de la swap - est proche).
Olivier
Merci Olivier & Frédéric pour vos réponses d'administrateur système et je les comprends, car j'ai les mêmes critères. Par contre, il m'est impossible d'exposer cela dans mon mémoire : "vous faites un 'free -m' et vous regardez ce qu'il reste '-/+ buffers/cache de used' + vous mixez cela à un top avec un load average avec %wa...
Il me faudrait une référence à "caractère scientifique" disant, à l'emporte-pièce, globalement <30% RAM and/or CPU in average : GOOD, etc : difficulté à trouver !
On May 12, 2013, at 10:14 PM, L.M.J wrote:
Le Sun, 12 May 2013 21:54:56 +0200, Olivier Doucet webmaster@ajeux.com a écrit :
Salut,
Cela dépend totalement de ce que tu fait tourner dessus. Et concernant la mémoire, tout dépend si tu comptes le cache ou non. Par exemple un serveur qui contient uniquement du MySQL peut monter à 99% CPU sans saturer dans son fonctionnement. Sur du web (Apache/nginx + PHP), on peut observer des saturations dès 60/70% de charge.
Evidemment, le meilleur moyen de déterminer des limites est de faire des bench avec tes applis métiers, qui te donnent l'utilisation CPU/mémoire en pointe. Pour ce dernier j'insiste sur l'utilisation du cache : les OS ont pour objectif de consommer un maximum de mémoire possible, donc un serveur avec 95% de mémoire consommé ne me choque pas, sauf si le cache représente moins de 5% (cela veut dire qu'une saturation - et un passage sur de la swap - est proche).
Olivier
Merci Olivier & Frédéric pour vos réponses d'administrateur système et je les comprends, car j'ai les mêmes critères. Par contre, il m'est impossible d'exposer cela dans mon mémoire : "vous faites un 'free -m' et vous regardez ce qu'il reste '-/+ buffers/cache de used' + vous mixez cela à un top avec un load average avec %wa...
Il me faudrait une référence à "caractère scientifique" disant, à l'emporte-pièce, globalement <30% RAM and/or CPU in average : GOOD, etc : difficulté à trouver !
Bonjour
Comme il a été répondu, cela dépend non pas de ta machine mais de ce que tu attends d'elle au niveau applicatif. Il est possible que ta machine soit chargée tout en fournissant le service voulu et c'est la que cela importe.
En comparaison humaine, on va faire simple
cf http://fr.wikipedia.org/wiki/Course_%C3%A0_pied#Courses_de_fond
Si on attend d'un marathonien assidu (appli tunée...) qu'il fasse sa course en 3h31 cela rempli son objectif il sera "chargé" (rythme cardiaque élévé, temperature corporelle en hausse) mais il répond au critère. Par contre demande la même chose avec une personne non préparée et en surcharge pondéral (appli non tunée...) il va mettre beaucoup de temps et sera surchargée (essoufflement, rythme cardiaque à la limite de l'infarctus, lenteur, pointe de cotée, température corporelle à exploser un thermomètre ....)
Tu le prends comment ton caractère scientifique la dedans ? Tu peux me dire que cela dépend de ta préparation physique, ce que je peux répondre cela dépend de ta préparation de ton environnement de production.
À la limite ton critère scientifique pourrait être : selon le cahier des charges des utilisateurs est-ce que mon application fonctionne comme attendu.
Bonne journée
Liste de diffusion du FRsAG http://www.frsag.org/
Le Sun, May 12, 2013 at 10:14:13PM +0200, L.M.J [linuxmasterjedi@free.fr] a écrit: [...]
Merci Olivier & Frédéric pour vos réponses d'administrateur système et je les comprends, car j'ai les mêmes critères. Par contre, il m'est impossible d'exposer cela dans mon mémoire : "vous faites un 'free -m' et vous regardez ce qu'il reste '-/+ buffers/cache de used' + vous mixez cela à un top avec un load average avec %wa...
Il me faudrait une référence à "caractère scientifique" disant, à l'emporte-pièce, globalement <30% RAM and/or CPU in average : GOOD, etc : difficulté à trouver !
Difficile à trouver, parceque ça existe pas vraiment. Comme déjà dit, y'a une part de feeling, mais surtout, ça dépend de la charge type du serveur. Tu peux avoir un serveur qui idle à 10% de CPU toute la journée, mais pour lequel il est nécessaire de disposer d'une capacité importante, pour réaliser un gros calcul chaque soir. Ou un serveur dont tu connais la charge habituelle, en environnement contraint (pas moyen d'augmenter les ressources), dont la charge normale est à 80%, et dont tu connais les limites ("t'es mort quand y'a Bing ou Baidu qui passe indexer")
Et faut aussi beaucoup se méfier des critères en % Par exemple, 50% d'espace disque sur 2Go, c'est peu comme marge. Mais 5% sur 1To, n'est pas forcément immédiatement alarmant.
2013/5/13 Dominique Rousseau d.rousseau@nnx.com
[...] Et faut aussi beaucoup se méfier des critères en % Par exemple, 50% d'espace disque sur 2Go, c'est peu comme marge. Mais 5% sur 1To, n'est pas forcément immédiatement alarmant.
Je ne suis pas trop d'accord avec cette vision là. Tes Go/To ne sont pas
arrivés là comme ça d'un coup. Ils sont le fruits d'une évolution de ton espace consommé. Or si sur les 5 dernières années ton évolution disque de tes 2Go on changé genre à +10Ko/jour en quoi c'est un problème de n'avoir "que" 1go d'espace disque? De même, tu peux avoir 5% de 1To mais prendre 5Go par jour, et là tu es mal.
Dans la grande majorité des cas, la consommation que tu vas faire dans le futur ne va pas être décorélée de celle que tu as fait dans le passé, donc si tu as pris 5% le mois dernier, que tu ais 2To ou 2Go ne changera rien. S'il te reste 10% il te reste 2mois pour agrandir le volume ou réduire la consommation.
Si bien sûr ton espace vient à être utilisé d'une manière différente d'avant (genre un espace de fichier qui devient aussi espace de backup ou autre mélange pas clair que seule la nécéssité nous pousse à faire) là bien sûr tu sera plus tranquille sur un gros espace, mais bon ce genre de chose vient d'un choix de l'admin, donc il saura ce qu'il fait sur ce volume et si ça tiendra ou pas (ou alors là on ne peux plus rien pour lui :) ).
Jean
Le Mon, May 13, 2013 at 09:53:55AM +0200, nap [naparuba@gmail.com] a écrit:
2013/5/13 Dominique Rousseau d.rousseau@nnx.com
[...] Et faut aussi beaucoup se méfier des critères en % Par exemple, 50% d'espace disque sur 2Go, c'est peu comme marge. Mais 5% sur 1To, n'est pas forcément immédiatement alarmant.
Je ne suis pas trop d'accord avec cette vision là. Tes Go/To ne sont pas arrivés là comme ça d'un coup. Ils sont le fruits d'une évolution de ton espace consommé.
Pour le tera, "ça peut" :)
Or si sur les 5 dernières années ton évolution disque de tes 2Go on changé genre à +10Ko/jour en quoi c'est un problème de n'avoir "que" 1go d'espace disque? De même, tu peux avoir 5% de 1To mais prendre 5Go par jour, et là tu es mal.
Tout à fait, ce qui compte c'est pas seulement la valeuer seuil, mais son interprétation dans son environnement particulier (usage actuel, historique, etc.)
C'est pour ça, par exemple, que sur des serveurs où y'a 1To qui est arrivé tout seul (ie la taille "standard" du disque fourni), je préfère souvent fournir un espace plus restreint, adapté à l'usage envisage. Quitte à ajuster, si on s'aperçoit qu'on a mal envisagé. (avec les outils modernes de gestions de volumes, c'est facile) Ça permet de détecter plus rapidement des comportements inhabituels ("pourquoi le serveur web a rempli 5Go de logs cette nuit ?!")
Des pistes intéressantes se développent, depuis quelques temps, sans certains outils de monitoring qui visent à faire de la détection d'anomalies, en analysant justement le comportement réputé habituel ("100% de cpu pendant 1h la nuit, c'est normal, pendant la journée, non")
Le 13 mai 2013 à 10:14, Dominique Rousseau a écrit :
Or si sur les 5 dernières années ton évolution disque de tes 2Go on changé genre à +10Ko/jour en quoi c'est un problème de n'avoir "que" 1go d'espace disque? De même, tu peux avoir 5% de 1To mais prendre 5Go par jour, et là tu es mal.
Tout à fait, ce qui compte c'est pas seulement la valeuer seuil, mais son interprétation dans son environnement particulier (usage actuel, historique, etc.)
A ce que je comprends pour ma part il ne faut pas se désintéresser des événements extérieurs qui influent sur ton système. Tu dois être à l'écoute de l'actualité de ce qui tourne autour de ton secteur. Dans certains cas tu dois être prêt à supporter un buzz. Typiquement si tu es à 95% d'utilisation de ton système et que tu as une grosse campagne de pub en prévision tu as intérêt à te manier de migrer. Dans d'autres cas, où par exemple tu n'augmentes ta charge que sur des nouveaux contrats tu as le temps de voir venir.
Cordialement. Emmanuel Thierry
Dans la plupart des cas, et pour ton mémoire, tu peux te baser sur le Load, qui sert justement à ça ... Si le load dépasse le nombre de coeurs alors ton serveur est en surcharge. Mais des serveurs/services avec 8 coeurs et un load de 2 commencent déjà à "ramer" ...
Le 13 mai 2013 11:24, Emmanuel Thierry ml@sekil.fr a écrit :
Le 13 mai 2013 à 10:14, Dominique Rousseau a écrit :
Or si sur les 5 dernières années ton évolution disque de tes 2Go on changé genre à +10Ko/jour en quoi c'est un problème de
n'avoir
"que" 1go d'espace disque? De même, tu peux avoir 5% de 1To mais prendre 5Go par jour, et là tu es mal.
Tout à fait, ce qui compte c'est pas seulement la valeuer seuil, mais son interprétation dans son environnement particulier (usage actuel, historique, etc.)
A ce que je comprends pour ma part il ne faut pas se désintéresser des événements extérieurs qui influent sur ton système. Tu dois être à l'écoute de l'actualité de ce qui tourne autour de ton secteur. Dans certains cas tu dois être prêt à supporter un buzz. Typiquement si tu es à 95% d'utilisation de ton système et que tu as une grosse campagne de pub en prévision tu as intérêt à te manier de migrer. Dans d'autres cas, où par exemple tu n'augmentes ta charge que sur des nouveaux contrats tu as le temps de voir venir.
Cordialement. Emmanuel Thierry
Liste de diffusion du FRsAG http://www.frsag.org/
Il ne faut tout de meme pas negliger le reste du materiel. Meme si pour les disques, il parait evident qu en termes de lecture sequentielle/aleatoire, il y a des limites, il faut savoir que la bande passante en ram aussi peu etre l entonnoir de ton systeme (c est pour cette raison que certaines applications compressent les data avant de les stocker en ram, et les decompressent en les lisant -> ils ont du CPU dispo mais la ram limite les perfs).
Je n explique pas cela specialement pour toi Greg, je connai un peu tes competences, ma remarque est generale pour tout le monde.
On 14/05/2013 14:55, Greg wrote:
Dans la plupart des cas, et pour ton mémoire, tu peux te baser sur le Load, qui sert justement à ça ... Si le load dépasse le nombre de coeurs alors ton serveur est en surcharge. Mais des serveurs/services avec 8 coeurs et un load de 2 commencent déjà à "ramer" ...
Le 14/05/2013 14:55, Greg a écrit :
Dans la plupart des cas, et pour ton mémoire, tu peux te baser sur le Load, qui sert justement à ça ... Si le load dépasse le nombre de coeurs alors ton serveur est en surcharge. Mais des serveurs/services avec 8 coeurs et un load de 2 commencent déjà à "ramer" ...
Oui, si le problème vient des I/O.
Mais en fait il peut aussi avoir une charge à 100 et ne pas ramer. Puisque le "load" désigne uniquement le nombre de processus en état "running". Dans certains cas, par exemple une attente I/O sur du NFS indispo, la charge est à 1 pour chaque processus en attente, mais ça ne se traduit pas par une charge CPU, ni une charge sur le disque local.
Cordialement,
Christophe
Le 14 mai 2013 à 14:55, Greg greg-frsag@duchatelet.net a écrit :
Dans la plupart des cas, et pour ton mémoire, tu peux te baser sur le Load, qui sert justement à ça ... Si le load dépasse le nombre de coeurs alors ton serveur est en surcharge. Mais des serveurs/services avec 8 coeurs et un load de 2 commencent déjà à "ramer" ...
Heu le load dépends beaucoup de la plateforme et OS.
Exemple un load de 1 sur Linux n'est pas le même que sur un FreeBSD ou Solaris.
Xavier
Le load est pour mois le meilleur indicateur ... pour se tromper. Sur un serveur de fichiers par exemple, avec un peu de charge, tu peux monter à des load de 30/40 très vite et pourtant le serveur fonctionne très bien. C'est un indicateur que je ne regarde jamais en valeur absolue, mais davantage sa variation dans le temps.
Le 14 mai 2013 21:10, Xavier Beaudouin kiwi@oav.net a écrit :
Le 14 mai 2013 à 14:55, Greg greg-frsag@duchatelet.net a écrit :
Dans la plupart des cas, et pour ton mémoire, tu peux te baser sur le
Load, qui sert justement à ça ... Si le load dépasse le nombre de coeurs alors ton serveur est en surcharge. Mais des serveurs/services avec 8 coeurs et un load de 2 commencent déjà à "ramer" ...
Heu le load dépends beaucoup de la plateforme et OS.
Exemple un load de 1 sur Linux n'est pas le même que sur un FreeBSD ou Solaris.
Xavier _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/
Le 14/05/2013 21:21, Olivier Doucet a écrit :
Le load est pour mois le meilleur indicateur ... pour se tromper. Sur un serveur de fichiers par exemple, avec un peu de charge, tu peux monter à des load de 30/40 très vite et pourtant le serveur fonctionne très bien. C'est un indicateur que je ne regarde jamais en valeur absolue, mais davantage sa variation dans le temps.
Il fonctionne bien ton serveur, mais il est attente d'IOs ou un truc du genre je suppose... Le load average est à regarder aussi au regard du nombre de processeurs et de core (cf la litterature google)
Ainsi un load average de 30 sur un quadcore est plus acceptable que sur un monoprocesseur...
Après je suis plutôt d'accord que c'est plutôt une valeur que l'on regarde en relatif
Cdlt,
JYL
Il fonctionne bien ton serveur, mais il est attente d'IOs ou un truc du
genre je suppose...
J'ai précisé que c'était sur un serveur de fichiers, donc qu'il attende des IO ne me choque pas particulièrement ;)
2013/5/14 Jean-Yves LENHOF jean-yves@lenhof.eu.org
Il fonctionne bien ton serveur, mais il est attente d'IOs ou un truc du genre je suppose... Le load average est à regarder aussi au regard du nombre de processeurs et de core (cf la litterature google)
Ainsi un load average de 30 sur un quadcore est plus acceptable que sur un monoprocesseur...
Après je suis plutôt d'accord que c'est plutôt une valeur que l'on regarde en relatif
Cdlt,
JYL
Il y a eu un article complet dans un linux mag d'il y a deux ans de mémoire sur le sujet (je dois pouvoir trouver un pdf si vous n'avez pas le numéro de disponible ou le temps d'attendre qu'il arrive par la poste :) ).
Le truc avec le Load c'est surtout qu'il mets dans un seul indicateur des informations concernant plusieurs ressources limitantes, car ça peut être un processu qui attends/consomme un CPU, mais aussi de l'I/O en effet. Or on a souvent plus de CPU disponibles que de disques. J'avis pondu à une époque un petit démon qui permettait d'avoir 2 load différents, un pour ce qui touchait le CPU, et l'autre les I/O disques. Ca permettait d'y voir (un peu) plus clair là dedans. Pour le courageux c'est dispo là http://sourceforge.net/projects/avancedloadavge/
Jean
ton serveur de fichier avec un load de 30 doit tout de même servir les fichiers plus lentement, non ? Pour moi, un serveur qui délivre lentement _est_ surchargé, même s'il fonctionne parfaitement et qu'il ne plantera pas car il sait gérer cette situation.
D'après mon expérience, un load élevé indique toujours un problème, même si parfois un problème de surcharge n'implique pas forcément un load élevé ;)
Le 14 mai 2013 21:39, nap naparuba@gmail.com a écrit :
2013/5/14 Jean-Yves LENHOF jean-yves@lenhof.eu.org
Il fonctionne bien ton serveur, mais il est attente d'IOs ou un truc du genre je suppose... Le load average est à regarder aussi au regard du nombre de processeurs et de core (cf la litterature google)
Ainsi un load average de 30 sur un quadcore est plus acceptable que sur un monoprocesseur...
Après je suis plutôt d'accord que c'est plutôt une valeur que l'on regarde en relatif
Cdlt,
JYL
Il y a eu un article complet dans un linux mag d'il y a deux ans de mémoire sur le sujet (je dois pouvoir trouver un pdf si vous n'avez pas le numéro de disponible ou le temps d'attendre qu'il arrive par la poste :) ).
Le truc avec le Load c'est surtout qu'il mets dans un seul indicateur des informations concernant plusieurs ressources limitantes, car ça peut être un processu qui attends/consomme un CPU, mais aussi de l'I/O en effet. Or on a souvent plus de CPU disponibles que de disques. J'avis pondu à une époque un petit démon qui permettait d'avoir 2 load différents, un pour ce qui touchait le CPU, et l'autre les I/O disques. Ca permettait d'y voir (un peu) plus clair là dedans. Pour le courageux c'est dispo là http://sourceforge.net/projects/avancedloadavge/
Jean
Liste de diffusion du FRsAG http://www.frsag.org/
2013/5/14 Greg greg-frsag@duchatelet.net
ton serveur de fichier avec un load de 30 doit tout de même servir les fichiers plus lentement, non ? Pour moi, un serveur qui délivre lentement _est_ surchargé, même s'il fonctionne parfaitement et qu'il ne plantera pas car il sait gérer cette situation.
D'après mon expérience, un load élevé indique toujours un problème, même si parfois un problème de surcharge n'implique pas forcément un load élevé ;)
Ça n'est pas si automatique, mais les exceptions sont rares en effet. Tu
prends un simple desktop mono-core qui fait tourner un jeu pas bien codé qui balance des FPS sans limite. Ton CPU sera à 100% tout le temps, donc un load average à 1 (on imagine qu'il a chargé ses images, donc il n'y a plus d'I/O par la suite). Or tu as pour un même load average deux cas : ton FPS est > 30 ou pas. Dans un premier cas ça va, dans l'autre non.
Bon cet exemple est boiteux, mais il est surtout là pour illustrer qu'en fait ce qui est important c'est ce qu'on attends des applications en terme de débit et latence. Genre ton serveur de fichiers, il est peut être directement serveur de fichier pour les user, ou serveur de fichier pour un outil de reporting. Dans le premier cas, un user qui attends plus de 5s l'ouverture de son .doc va crier au meurtre, dans le second ça les utilisateurs savent qu'un outil de reporting n'aura pas une bonne latence, et qu'il va devoir attendre pour avoir ses informations (c'est de moins en moins vrai, mais bon...). De même dans le premier cas, soit l'utilisateur est dans une période calme, là ça va il va juste marmonner et puis c'est tout, mais dans une période de clôture comptable? Là il va prendre son téléphone avant même que le fichier s'ouvre...
L'évolution de l'indicateur est sa vraie valeur, et seul un admin qui a un peu d'expérience avec ce serveur saura si ça dérive trop ou pas. Mais en valeur absolue il n'y a aucune règle "facile" genre ne nombre de cpu ou même cpu+nombres d'axes I/O. C'est un gros soucis qu'on a en matière de supervision d'ailleurs, car bon courage pour choisir une valeur par défaut pour cet indicateur bien particulier :p
Jean
Ps: oui je repompe allégrement des exemples de l'article que j'avais cité, mais l'auteur est d'accord :)
Le 12 mai 2013 à 21:43, "L.M.J" linuxmasterjedi@free.fr a écrit :
Salut,
Question peut être bête, surtout en tant que sysadmin moi même : Auriez-vous déjà lu des recommandations "officielles" / "bonne pratiques" dans une source fiable (que je puisse citer dans un mémoire) sur des critères d'utilisation CPU/RAM d'un serveur. En gros, un serveur en moyenne avec
- 10% CPU et 30% RAM consommé : c'est peu, mais pourquoi ?
- 95% CPU en 95% RAM consommé : c'est trop, mais pourquoi ? Il reste 5% dans les 2 cas...
- 60% CPU et 60% RAM consommé : c'est bien, trop ?
Vous voyez ? Il me faudrait des critères objectifs... Si vous avez cela en stock : merci !
PS : désolé pour le cross-post…
Bonsoir,
Je n'ai pas de "critères" out of the box, mais ça dépend principalement de tes courbes en fait (non, pas ton ventre) dans le temps. – 30% de CPU / RAM consommés, ça peut paraitre trop, mais si tu bouffes 20% de plus par semaine, tu vas avoir des surprises. – 95% ne va pas te permettre d'évoluer si ça doit changer, donc oui c'est trop
Bref, l'important n'est pas l'usage à un instant T mais les prévisions de consommation.