J'essaie de récupérer la mémoire utilisée (RAM) en pourcentage à l'aide des commandes Linux. Mon cpanel affiche la mémoire utilisée que je dois afficher sur une page Web particulière.
Sur les forums, j'ai découvert qu'une mémoire correcte peut être trouvée à partir des éléments suivants:
free -m
Résultat:
-/+ buffers/cache: 492 1555
- / + buffers / cache: contient l'utilisation correcte de la mémoire. Je ne sais pas comment analyser ces informations ou s'il existe une commande différente pour obtenir la mémoire utilisée en pourcentage.
free | grep Mem | awk '{print $4/$2 * 100.0}'
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}'
Réponses:
Voici un exemple de sortie de free:
La première ligne de nombres (
Mem:
) répertorietotal
Mémoireused
Mémoirefree
Mémoireshared
buffers
cached
)Dans cette ligne
used
comprend les tampons et le cache et cela a un impact gratuit. Ce n'est pas votre "vraie" mémoire libre car le système va vider le cache si nécessaire pour satisfaire les demandes d'allocation.La ligne suivante (
-/+ buffers/cache:
) nous donne la mémoire réellement utilisée et libre comme s'il n'y avait pas de tampons ou de cache.La dernière ligne (
Swap
) indique l'utilisation de la mémoire d'échange. Il n'y a pas de tampon ou de cache pour le swap car cela n'aurait aucun sens de mettre ces choses sur un disque physique.Pour sortir la mémoire utilisée (tampons moins et cache), vous pouvez utiliser une commande comme:
Cela saisit la troisième ligne et divise utilisé / total * 100.
Et pour une mémoire libre:
la source
free
,-/+ buffers/cache
est complètement omis intentionnellement, et la valeur indiquée dans laused
colonne exclut désormais les tampons et le cache par défaut. Voir ici: bugzilla.redhat.com/show_bug.cgi?id=1158828Je vais mentionner comment analyser les informations sur la
free
commande. Pour trouver le pourcentage, vous pouvez utiliser comme suggéré dans les 2 autres réponses.Ceci est clairement expliqué ici . J'essaierais d'expliquer ce que j'ai dans mon système.
Voyons maintenant ce que les différents nombres représentent réellement.
Ligne 1
Ligne 2
Comment calculer les valeurs 696 et 7173 obtenues en ligne 2?
Total utilisé ( 4402 ) - RAM totale du tampon ( 208 ) - La RAM totale pour la mise en cache ( 3497 ) devrait constituer la RAM réelle utilisée dans le système. Il me renvoie 697 qui est la sortie RAM réellement utilisée dans la deuxième ligne.
Maintenant, le total disponible ( 7869 ) - réel utilisé ( 696 ) devrait vous donner la mémoire libre qui est 7173 dans ce cas qui est également obtenue en sortie sur la deuxième ligne.
la source
Bien qu'il s'agisse d'un doublon tel que souligné par @szboardstretcher, ma préférence parmi les solutions (dans la question d'origine) est celle ci-dessous, d'autant plus que vous souhaitez analyser une page Web.
Sortie:
la source
used: 96.00%, buffers: 26.53%awk: (FILENAME=- FNR=4) fatal: division by zero attempted
$ cat /etc/issue CentOS release 6.7 (Final)
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}' used: 12.91%, buffers: 96.24%awk: (FILENAME=- FNR=4) fatal: division by zero attempted $ free total used free shared buffers cached Mem: 15429704 1991416 13438288 164 151556 1259584 -/+ buffers/cache: 580276 14849428 Swap: 0 0 0
Ajoute une nouvelle ligne après le numéro d'échange
la source
Pour jusqu'à CentOS 7, vous pouvez essayer
pour voir l'utilisation réelle de la mémoire par les processus.
la source