tagger tag picard para musicbrainz mac kid3 for easytag linux centos centos6

tag - Cómo encontrar el uso de la memoria del usuario en Linux



musicbrainz picard debian (3)

Cómo puedo ver el uso de memoria por usuario en linux centos 6

For example: USER USAGE root 40370 admin 247372 user2 30570 user3 967373


Este one-liner me funcionó en al menos cuatro sistemas Linux diferentes con diferentes distribuciones y versiones. También trabajó en FreeBSD 10.

ps hax -o rss,user | awk ''{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}'' | sort -rnk2

Acerca de la implementación, no hay construcciones de bucle de shell aquí; esto utiliza una matriz asociativa en awk para hacer la agrupación y la suma.

Aquí hay una salida de muestra de uno de mis servidores que ejecuta MySQL, Tomcat y Apache de tamaño decente. Las cifras están en MB.

mysql 1566 joshua 1186 tomcat 353 root 28 wwwrun 12 vbox 1 messagebus 1 avahi 1 statd 0 nagios 0

Advertencia: como la mayoría de las soluciones similares, esto solo se considera el conjunto residente (RSS), por lo que no cuenta ningún segmento de memoria compartida.

EDITAR : Una versión más legible por humanos.

echo "USER RSS PROCS" ; echo "-------------------- -------- -----" ; ps hax -o rss,user | awk ''{rss[$2]+=$1;procs[$2]+=1;}END{for(user in rss) printf "%-20s %8.0f %5.0f/n", user, rss[user]/1024, procs[user];}'' | sort -rnk2

Y la salida:

USER RSS PROCS -------------------- -------- ----- mysql 1521 1 joshua 1120 28 tomcat 379 1 root 19 107 wwwrun 10 10 vbox 1 3 statd 1 1 nagios 1 1 messagebus 1 1 avahi 1 1


Si su sistema es compatible, intente instalar y usar smem :

smem -u User Count Swap USS PSS RSS gdm 1 0 308 323 820 nobody 1 0 912 932 2240 root 76 0 969016 1010829 1347768

o

smem -u -t -k User Count Swap USS PSS RSS gdm 1 0 308.0K 323.0K 820.0K nobody 1 0 892.0K 912.0K 2.2M root 76 0 937.6M 978.5M 1.3G ameskaas 46 0 1.2G 1.2G 1.5G

124 0 2.1G 2.2G 2.8G

En Ubuntu, smem se puede instalar escribiendo

sudo apt install smem


uso de memoria por usuario en porcentaje utilizando herramientas estándar:

for USER in $(ps haux | awk ''{print $1}'' | sort -u) do ps haux | awk -v user=$USER ''$1 ~ user { sum += $4} END { print user, sum; }'' done

o para más precisión:

TOTAL=$(free | awk ''/Mem:/ { print $2 }'') for USER in $(ps haux | awk ''{print $1}'' | sort -u) do ps hux -U $USER | awk -v user=$USER -v total=$TOTAL ''{ sum += $6 } END { printf "%s %.2f/n", user, sum / total * 100; }'' done

La primera versión simplemente resume el porcentaje de memoria para cada proceso según lo informado por ps . La segunda versión resume la memoria en bytes en lugar de eso y luego calcula el porcentaje total, lo que lleva a una mayor precisión.