J'utilise un serveur Linux qui a 128 Go de mémoire et 24 cœurs. J'utilise top pour voir à quel point il est utilisé. Sa sortie est collée à la fin du post. Voici deux questions:
(1) Je constate que chacun des processus en cours occupe un très faible pourcentage de mémoire (% MEM pas plus de 0,2% et la plupart juste 0,0%), mais comment la mémoire totale est presque utilisée comme dans la quatrième ligne de sortie ( "Mem: 130766620k total, 130161072k utilisé, 605548k gratuit, 919300k tampons")? La somme du pourcentage de mémoire utilisé sur tous les processus ne devrait pas atteindre presque 100%, n'est-ce pas?
(2) comment comprendre la charge moyenne sur la première ligne ("charge moyenne: 14.04, 14.02, 14.00")?
Merci et salutations!
Modifier:
Merci!
J'aime aussi beaucoup entendre des chiffres approximatifs basés sur le pourcentage de mémoire utilisé pour déterminer si un serveur est lourdement chargé, car je suis devenu une fois celui qui a créé le serveur sans comprendre la charge actuelle.
Le swap est-il considéré presque comme la mémoire? Par exemple, lorsque la mémoire et le swap ont presque la même taille, si la mémoire est presque épuisée mais que le swap est encore largement libre, puis-je le voir comme si le pourcentage utilisé de mémoire / swap n'était toujours pas élevé et exécuter un autre nouveau processus?
Comment envisagez-vous ensemble l'utilisation du processeur ou de la mémoire (ou de la mémoire + échange)? Etes-vous inquiet si l'un d'eux atteint trop haut ou les deux?
Sortie de haut:
$ top
top - 12:45:33 jusqu'à 19 jours, 23:11, 18 utilisateurs, charge moyenne: 14.04, 14.02, 14.00 Tâches: 484 au total, 12 en cours d'exécution, 472 en sommeil, 0 arrêté, 0 zombie Cpu (s): 36.7% US, 19.7% Sy, 0.0% ni, ID 43.6%, 0.0% wa, 0.0% hi, 0.0% si, 0.0% st Mem: 130766620k total, 130161072k utilisé, 605548k gratuit, 919300k tampons Swap: 63111312k total, 500556k utilisé, 62610756k gratuit, 124437752k en cache UTILISATEUR PID NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 6529 sanchez 18 -2 1075m 219m 13m S 100 0.2 13760: 23 MATLAB 13210 timothy 18 -2 48336 37m 1216 R 100 0.0 3: 56.75 absurdité 13888 timothy 18 -2 48336 37m 1204 R 100 0.0 2: 04.89 absurdité 14542 timothy 18 -2 48336 37m 1196 R 100 0.0 1: 08.34 absurdité 14544 timothée 18 -2 2888 2076 400 R 100 0.0 1: 06.14 6183 sanchez 18 -2 1133m 195m 13m S 100 0.2 13676: 04 MATLAB 6795 sanchez 18 -2 1079m 210m 13m S 100 0.2 13734: 26 MATLAB 10178 timothy 18 -2 48336 37m 1204 R 100 0.0 11: 33.93 absurdité 12438 timothy 18 -2 48336 37m 1216 R 100 0.0 5: 38.17 absurdité 13661 timothy 18 -2 48336 37m 1216 R 100 0.0 2: 44.13 absurdité 14098 timothy 18 -2 48336 37m 1204 R 100 0.0 1: 58.31 absurdité 14335 timothy 18 -2 48336 37m 1196 R 100 0.0 1: 08.93 absurdité 14765 timothy 18 -2 48336 37m 1196 R 99 0.0: 32.57 absurdité 13445 timothy 18 -2 48336 37m 1216 R 99 0.0 3: 01.37 absurdité 28990 racine 20 0 0 0 0 S 2 0.0 65: 50.21 pdflush 12141 tim 18 -2 19380 1660 1024 R 1 0.0 0: 04.04 top 1240 racine 15 -5 0 0 0 S 0 0.0 16: 07.11 kjournald 9019 racine 20 0 296m 4460 2616 S 0 0.0 82: 19.51 kdm_greet 1 racine 20 0 4028 728 592 S 0 0.0 0: 03.11 init 2 racine 15 -5 0 0 0 S 0 0.0 0: 00.00 kthreadd 3 racine RT -5 0 0 0 S 0 0.0 0: 01.01 migration / 0 4 racine 15 -5 0 0 0 S 0 0.0 0: 08.13 ksoftirqd / 0 5 root RT -5 0 0 0 S 0 0.0 0: 00.00 chien de garde / 0 6 racine RT -5 0 0 0 S 0 0.0 17: migration de 27: 31/1 7 racine 15 -5 0 0 0 S 0 0.0 0: 01.21 ksoftirqd / 1 8 root RT -5 0 0 0 S 0 0.0 0: 00.00 chien de garde / 1 9 racine RT -5 0 0 0 S 0 0.0 10: 02.56 migration / 2 10 racine 15 -5 0 0 0 S 0 0.0 0: 00.34 ksoftirqd / 2 11 root RT -5 0 0 0 S 0 0.0 0: 00.00 chien de garde / 2 12 racine RT -5 0 0 0 S 0 0.0 4: 29.53 migration / 3 13 racine 15 -5 0 0 0 S 0 0.0 0: 00.34 ksoftirqd / 3
Réponses:
Pour voir la quantité de mémoire que vous utilisez actuellement, exécutez
free -m
. Il fournira une sortie comme:La valeur de la rangée supérieure 'utilisée' (1923) correspondra presque toujours presque à la valeur de la rangée supérieure (2012). Puisque Linux aime utiliser n'importe quelle mémoire disponible pour mettre en cache des blocs de disque (515).
Le chiffre clé à examiner est la valeur des tampons / lignes de cache utilisées (1316). Il s'agit de la quantité d'espace actuellement utilisée par vos applications. Pour de meilleures performances, ce nombre doit être inférieur à votre mémoire totale (2012). Pour éviter les erreurs de mémoire insuffisante, l'espace mémoire total (2012) et l'espace de permutation (3153) doivent être inférieurs.
Si vous souhaitez voir rapidement combien de mémoire est libre, consultez la valeur de mémoire tampon / rangée de cache (695). Ceci est la mémoire totale (2012) - la valeur réelle utilisée (1316). (2012 - 1316 = 696, pas 695, ce ne sera qu'un problème d'arrondi)
Cet article sur la charge moyenne utilise une analogie de trafic intéressante et est la meilleure que j'ai trouvée jusqu'à présent: Comprendre la charge CPU de Linux - Quand devriez-vous vous inquiéter? . Dans votre cas, comme les gens l'ont souligné:
Ainsi, avec une charge moyenne de 14,00 et 24 cœurs, votre serveur est loin d’être surchargé.
la source
Les systèmes de type Unix, y compris Linux, sont conçus pour utiliser le plus efficacement possible la RAM disponible. En termes très généraux, il y a 3 états par Mo de RAM:
Le 3ème état est utilisé uniquement comme espace de travail et doit être réaffecté chaque fois que nécessaire. En d'autres termes, votre mémoire totale disponible pour les programmes est vraiment Free + UsedforBuffers. En tant que tel, vous ne verrez pas vraiment l'espace alloué dans la mémoire tampon comme affecté à un processus spécifique.
Votre question de charge moyenne est un peu plus intéressante, car elle peut facilement être mal interprétée. Pour l'histoire complète voir cet article de linuxjournal . Le meilleur résumé est une citation directe de l'article,
Cela signifie que vous pouvez considérer votre charge moyenne comme (nombre de processus en cours d'exécution) + (nombre de processus en attente d'IO). En gardant à l'esprit qu'à tout moment vous pouvez avoir $ CORE nombre de processus en cours d'exécution, je dirais que votre charge moyenne de 14 est assez basse.
la source
De la
sar
page de manuel:De la
uptime
page de manuel:la source
top
inutilisable, en gardant généralement la majeure partie de la mémoire de la machine allouée à diverses utilisations lorsque cela n’est pas requis par un processus utilisateur.la source
La charge moyenne est une bonne chose. Cela vous permet de comprendre ce qui se passe au-delà de l'utilisation à 100%, en gros: http://en.wikipedia.org/wiki/Load_%28computing%29
la source