📅 11 Окт 2025 | 👁 7 | 🕐 2 мин.
Понадобилось на одном из серверов найти что и кто использует из памяти, в результате получился такой скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#!/bin/bash # Получаем общий объём физической памяти в гигабайтах total_mem_gb=$(awk '/MemTotal/ {printf "%.3f", $2/1024/1024}' /proc/meminfo) ps -eo user,comm,rss --sort=-rss | awk -v total_mem="$total_mem_gb" ' BEGIN { printf "%-15s %-30s %10s\n", "Пользователь", "Процесс", "Память (ГБ)" print "-----------------------------------------------------------------------" } NR>1 { # Пропускаем процессы ядра if ($2 ~ /^kworker|^rcu_|^migration|^watchdog|^ksoftirqd|^kswapd|^kthreadd|^pool_workqueue_|^mm_|^cpuhp_|^kdevtmpfs|^irq|^idle/) next mem_gb = $3 / 1024 / 1024 if (mem_gb < 0.001) next # игнорируем совсем мелкие user_mem[$1] += mem_gb total += mem_gb printf "p:%-15s %-30s %10.3f\n", $1, $2, mem_gb } END { print "-----------------------------------------------------------------------" print "" print "Использование по пользователям:" print "-----------------------------------------------------------------------" for (u in user_mem) printf "u:%-15s %10.3f\n", u, user_mem[u] print "-----------------------------------------------------------------------" percent = (total / total_mem) * 100 printf "%-15s %10.3f из %.3f ГБ (%.1f%%)\n", "Всего используется:", total, total_mem, percent }' |
Вывод выглядит вот так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
~# memuse Пользователь Процесс Память (ГБ) ----------------------------------------------------------------------- mysql mariadbd 0.226 root x-ui 0.053 www-data php-fpm8.2 0.052 www-data php-fpm8.2 0.052 www-data php-fpm8.2 0.048 root xray-linux-amd6 0.034 root systemd-journal 0.033 memcache memcached 0.018 root php-fpm8.2 0.014 root sshd 0.011 root systemd 0.010 root atop 0.009 www-data apache2 0.009 root systemd 0.008 www-data apache2 0.007 www-data nginx 0.007 root bash 0.006 root apache2 0.005 root systemd-logind 0.005 root ps 0.004 polkitd polkitd 0.004 root sshd 0.004 root (sd-pam) 0.003 root systemd-udevd 0.003 root memuse 0.003 message+ dbus-daemon 0.003 root awk 0.003 root qemu-ga 0.003 root nginx 0.002 root cron 0.002 systemd+ systemd-timesyn 0.002 ----------------------------------------------------------------------- Использование по пользователям: ----------------------------------------------------------------------- systemd+ 0.002 message+ 0.003 memcache 0.018 polkitd 0.004 www-data 0.174 root 0.215 mysql 0.226 ----------------------------------------------------------------------- Всего используется: 0.642 из 0.938 ГБ (68.4%) |
Свежие мысли