Понадобилось на одном из серверов найти что и кто использует из памяти, в результате получился такой скрипт:
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%) |
Поделиться
Появилась задача по созданию бэкапов на одной из своих VPS. Решил собрать решение на Borg Backup для хранения и на MariaDB-Backup для бэкапа БД. Borg выбран ввиду того, что он умеет делать инкрементальные бэкапы и дедупликацию, что в рамках ограниченного места на VPS очень актуально. А еще есть возможность создавать защищенные бэкапы. По итогу, все […]
Потребовалась биллинговая система под свои задачи. Решил глянуть open source решения, из тех что глянул — это: FossBilling — нашел случайно, потыкал демку на их сайте, показалась интересной. Joonte JBs Billing — давно знал, отечественное решение, есть возможность общаться с основным разработчиком напрямую. В общем выбрал второй вариант. И сразу же первые грабли, нет документации, […]
Периодически возникает задача быстро развернуть Windows Server, почти всегда разворачивается из образа пробной редакции Evaluation(180 дней), но иногда эти сервера обрастают своим функционалом и им необходимо поднять версию до Standard или Datacenter. Делается это довольно просто, открываем Power Sell от имени администратора и вводим следующие команды: Узнать текущую редакцию:
1 |
dism /online /get-currentedition |
Узнать доступные редакции для апгрейда: […]
На одном из серверов заметил что при наличии свободной оперативной памяти активно используется swap. В процессе разбора в проблеме, нашелся интересный параметр ядра vm.swappiness, по сути он отвечает сколько процентов от общего объема оперативной памяти должно быть использовано, чтоб начал использоваться swap.
1 2 |
cat /proc/sys/vm/swappiness 60 |
Те например при 10гб оперативной памяти, если будет использовано более 6гб, то […]
Свежие мысли