В нашей предыдущей статье мы обсуждали, как найти наиболее загруженные процессы процессора в Linux. Теперь пришло время, чтобы найти процессы потребляющие наибольшее количество памяти в Linux. Эта статья поможет вам быстро найти процессы потребляющие наибольшее количество памяти в Linux.
1. Выяснить процессы потребляющие наибольшее количество памяти в Linux с помощью команды ps.
Существует один код доступный с помощью командой ps, который поможет вам найти процессы потребляющие наибольшее количество памяти в Linux.
Команда:
# ps -eo pid,ppid,cmd,%mem --sort=-%mem | head
Пример вывода:
root@destroyer:~# top -o %MEM -b -n 1|head -n 12|tail -6 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1002 mysql 20 0 2152916 566836 9608 S 0.0 18.4 13:04.02 mysqld 828 clamav 20 0 773404 543596 6716 S 0.0 17.6 1:00.62 clamd 1212 root 20 0 1320544 52584 21032 S 0.0 1.7 0:49.04 core 1097 root 20 0 468248 20604 19304 S 0.0 0.7 0:02.25 apache2 1329 www-data 20 0 404428 20132 15144 S 0.0 0.7 0:00.43 php-fpm7.0 root@destroyer:~#
Здесь вы получите отсортированный по использованию памяти, который поможет вам узнать процессы потребляющие наибольшее количество памяти в Linux очень легко.
2. Постоянное наблюдение процессов в памяти в Linux.
Если вам необходимо контролировать вывод непрерывно. Пример команды watch ниже очень удобна.
Команда:
# watch "ps -eo pid,ppid,cmd,%mem --sort=-%mem | head"
Пример вывода:
root@destroyer:~# watch "ps -eo pid,ppid,cmd,%mem --sort=-%mem | head" Every 2.0s: ps -eo pid,ppid,cmd,%mem --sort=-%mem | head Tue Sep 12 14:42:11 2017 PID PPID CMD %MEM 1002 1 /usr/sbin/mysqld 18.4 828 1 /usr/sbin/clamd --foregroun 17.6 23270 23269 /usr/bin/php-cgi /var/www/p 3.5 1212 1 bin/core ispmgr 1.7 1097 1 /usr/sbin/apache2 -k start 0.6 1329 1062 php-fpm: pool www-data 0.6 1080 1062 php-fpm: pool www-data 0.6 1062 1 php-fpm: master process (/e 0.5 971 1 /usr/sbin/named -f -u bind 0.5
3. Выявление процессов, потребляющих наибольшее количество памяти в Linux с помощью команды top.
Тот же вывод команды ps также может быть достигнут с использованием нативной команды top в Linux.
Команда:
# top -o %MEM -b -n 1|head -n 12|tail -6
Пример вывода:
root@destroyer:~# top -o %MEM -b -n 1|head -n 12|tail -6 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1002 mysql 20 0 2152916 567100 9608 S 60.0 18.4 13:05.07 mysqld 828 clamav 20 0 773404 543596 6716 S 0.0 17.6 1:00.62 clamd 23448 destroyer 20 0 435360 120668 59364 R 40.0 3.9 0:01.76 php 1212 root 20 0 1320544 53068 21436 S 0.0 1.7 0:49.23 core 1097 root 20 0 468248 20604 19304 S 0.0 0.7 0:02.25 apache2 root@destroyer:~#
4. С помощью команды htop.
Существует еще одна утилита под названием htop, которая поможет вам найти процессы потребляющие наибольшее кол-во памяти в Linux.
Команда:
[root@destroyer1 ~]# htop
После выполнения команды htop, откроется окно с непрерывным выводом данных, как показано ниже:
Для того, чтобы разобраться в процессах по использованию памяти просто нажмите кнопку «F6», а затем выберите память и нажмите клавишу ВВОД. Вы можете увидеть процессы, отсортированные по использованию памяти, как показано ниже: