Понадобилось на одном из серверов найти что и кто использует из памяти, в результате получился такой скрипт:
| 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%) | 
Добавить комментарий