Есть несколько команд, которые можно использовать для проверки использования памяти в системе Linux, ниже приведены некоторые из них.
Существует множество инструментов для просмотра использования памяти в системе Linux. Некоторые команды широко используются, напримерfree,ps. В то время как другие команды позволяют отображать статистику производительности системы различными способами, например,top. В этой статье мы познакомим вас с некоторыми командами, которые помогут вам определить, какой пользователь или процесс в настоящее время потребляет больше всего ресурсов памяти.
Вот несколько команд для просмотра использования памяти процессом:
Просмотр использования памяти процессом
использовать верх
top— одна из лучших команд для просмотра использования памяти. Чтобы увидеть, какой процесс использует больше всего памяти, просто запуститеtop, затем нажмитеshift+m, поэтому вы можете увидеть процессы, отсортированные по проценту использования памяти от большего к меньшему. когда вы нажимаетеshift+m, твойtopВы должны получить вывод, подобный следующему:
$top
top - 09:39:34 up 5 days, 3 min, 3 users, load average: 4.77, 4.43, 3.72
Tasks: 251 total, 3 running, 247 sleeping, 1 stopped, 0 zombie
%Cpu(s): 50.6 us, 35.9 sy, 0.0 ni, 13.4 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 5944.4 total, 128.9 free, 2509.3 used, 3306.2 buff/cache
MiB Swap: 2048.0 total, 2045.7 free, 2.2 used. 3053.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
400 nemo 20 0 3309580 550188 168372 S 0.3 9.0 1:33.27 Web Content
32469 nemo 20 0 3492840 447372 163296 S 7.3 7.3 3:55.60 firefox
32542 nemo 20 0 2845732 433388 140984 S 6.0 7.1 4:11.16 Web Content
342 nemo 20 0 2848520 352288 118972 S 10.3 5.8 4:04.89 Web Content
2389 nemo 20 0 1774412 236700 90044 S 39.7 3.9 9:32.64 vlc
29527 nemo 20 0 2735792 225980 84744 S 9.6 3.7 3:02.35 gnome-shell
30497 nemo 30 10 1088476 159636 88884 S 0.0 2.6 0:11.99 update-manager
30058 nemo 20 0 1089464 140952 33128 S 0.0 2.3 0:04.58 gnome-software
32533 nemo 20 0 2389088 104712 79544 S 0.0 1.7 0:01.43 WebExtensions
2256 nemo 20 0 1217884 103424 31304 T 0.0 1.7 0:00.28 vlc
1713 nemo 20 0 2374396 79588 61452 S 0.0 1.3 0:00.49 Web Content
29306 nemo 20 0 389668 74376 54340 S 2.3 1.2 0:57.25 Xorg
32739 nemo 20 0 289528 58900 34480 S 1.0 1.0 1:04.08 RDD Process
29732 nemo 20 0 789196 57724 42428 S 0.0 0.9 0:00.38 evolution-alarm
2373 root 20 0 150408 57000 9924 S 0.3 0.9 10:15.35 nessusd
Уведомление%MEMСортировать. Размер списка зависит от размера вашего окна, но процесс, занимающий больше всего памяти, будет отображаться вверху списка.
использовать пс
psСтолбец в команде показывает использование памяти каждым процессом. Чтобы показать и увидеть, какой процесс использует больше всего памяти, вы можете установитьpsРезультат команды передаетсяsortЗаказ. Вот полезный пример:
$ ps aux | sort -rnk 4 | head -5
nemo 400 3.4 9.2 3309580 563336 ? Sl 08:59 1:36 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 9086 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 32469 8.2 7.7 3492840 469516 ? Sl 08:54 4:15 /usr/lib/firefox/firefox -new-window
nemo 32542 8.9 7.6 2875428 462720 ? Sl 08:55 4:36 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 1 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 342 9.9 5.9 2854664 363528 ? Sl 08:59 4:44 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 8763 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 2389 39.5 3.8 1774412 236116 pts/1 Sl+ 09:15 12:21 vlc videos/edge_computing.mp4
В приведенном выше примере (усеченном в тексте)sortиспользуемая команда-rварианты (перевернутые),-nопция (числовое значение),-kопция (ключевое слово) для включенияsortпара командpsРезультаты команды сортируются и выводятся в обратном числовом порядке в четвертом столбце (использование памяти). Если мы сначала покажемpsНазвание команды, тогда будет легче увидеть.
$ ps aux | head -1; ps aux | sort -rnk 4 | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
nemo 400 3.4 9.2 3309580 563336 ? Sl 08:59 1:36 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 9086 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 32469 8.2 7.7 3492840 469516 ? Sl 08:54 4:15 /usr/lib/firefox/firefox -new-window
nemo 32542 8.9 7.6 2875428 462720 ? Sl 08:55 4:36 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 1 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 342 9.9 5.9 2854664 363528 ? Sl 08:59 4:44 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 8763 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 2389 39.5 3.8 1774412 236116 pts/1 Sl+ 09:15 12:21 vlc videos/edge_computing.mp4
Если вам нравится эта команда, вы можете назначить ей псевдоним с помощью следующей команды, если вы хотите использовать ее все время, не забудьте добавить эту команду в свой~/.bashrcв файле.
$ alias mem-by-proc="ps aux | head -1; ps aux | sort -rnk 4"
Вот несколько команд для просмотра использования памяти пользователем:
Просмотр использования памяти пользователем
использовать верх
Проверка использования памяти пользователем немного сложнее, потому что вам нужно найти способ подсчитать все процессы, принадлежащие пользователю, в одно использование памяти.
Если вы просто хотите увидеть использование отдельных пользовательских процессов,topКоманды можно использовать так же, как описано выше. просто добавь-Uвариант и укажите имя пользователя, которое вы хотите просмотреть после него, затем нажмитеshift+mВы можете просмотреть его в зависимости от того, сколько памяти используется.
$ top -U nemo
top - 10:16:33 up 5 days, 40 min, 3 users, load average: 1.91, 1.82, 2.15
Tasks: 253 total, 2 running, 250 sleeping, 1 stopped, 0 zombie
%Cpu(s): 28.5 us, 36.8 sy, 0.0 ni, 34.4 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 5944.4 total, 224.1 free, 2752.9 used, 2967.4 buff/cache
MiB Swap: 2048.0 total, 2042.7 free, 5.2 used. 2812.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
400 nemo 20 0 3315724 623748 165440 S 1.0 10.2 1:48.78 Web Content
32469 nemo 20 0 3629380 607492 161688 S 2.3 10.0 6:06.89 firefox
32542 nemo 20 0 2886700 404980 136648 S 5.6 6.7 6:50.01 Web Content
342 nemo 20 0 2922248 375784 116096 S 19.5 6.2 8:16.07 Web Content
2389 nemo 20 0 1762960 234644 87452 S 0.0 3.9 13:57.53 vlc
29527 nemo 20 0 2736924 227260 86092 S 0.0 3.7 4:09.11 gnome-shell
30497 nemo 30 10 1088476 156372 85620 S 0.0 2.6 0:11.99 update-manager
30058 nemo 20 0 1089464 138160 30336 S 0.0 2.3 0:04.62 gnome-software
32533 nemo 20 0 2389088 102532 76808 S 0.0 1.7 0:01.79 WebExtensions
использовать пс
вы все еще можете использоватьpsКоманда ранжирует процессы пользователя по использованию памяти. В этом примере мы будем использоватьgrepкоманда для фильтрации всех процессов пользователя.
$ ps aux | head -1; ps aux | grep ^nemo| sort -rnk 4 | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
nemo 32469 7.1 11.5 3724364 701388 ? Sl 08:54 7:21 /usr/lib/firefox/firefox -new-window
nemo 400 2.0 8.9 3308556 543232 ? Sl 08:59 2:01 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 9086 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni/usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 32542 7.9 7.1 2903084 436196 ? Sl 08:55 8:07 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 1 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 342 10.8 7.0 2941056 426484 ? Rl 08:59 10:45 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 8763 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
nemo 2389 16.9 3.8 1762960 234644 pts/1 Sl+ 09:15 13:57 vlc videos/edge_computing.mp4
nemo 29527 3.9 3.7 2736924 227448 ? Ssl 08:50 4:11 /usr/bin/gnome-shell
Использование ps с другими командами
Если вы хотите сравнить использование памяти пользователем с другими пользователями, это будет сложнее. В этом случае создание и сортировка по общему использованию памяти пользователем является хорошим подходом, но требует немного больше работы и включает в себя множество команд. В приведенном ниже сценарии мы используемps aux | grep -v COMMAND | awk '{print $1}' | sort -uКоманда получила список пользователей. который включает пользователей системы, таких какsyslog. Используем для каждой задачиawkКоманда для сбора данных об общем использовании памяти для каждого пользователя. На последнем шаге мы отображаем общее использование памяти на пользователя (в порядке убывания).
#!/bin/bash
stats=””
echo "% user"
echo "============"
# collect the data
for user in `ps aux | grep -v COMMAND | awk '{print $1}' | sort -u`
do
stats="$stats\n`ps aux | egrep ^$user | awk 'BEGIN{total=0}; \
{total += $4};END{print total,$1}'`"
done
# sort data numerically (largest first)
echo -e $stats | grep -v ^$ | sort -rn | head
Вывод этого скрипта может выглядеть так:
$ ./show_user_mem_usage
% user
============
69.6 nemo
5.8 root
0.5 www-data
0.3 shs
0.2 whoopsie
0.2 systemd+
0.2 colord
0.2 clamav
0 syslog
0 rtkit
Есть много способов сообщить об использовании памяти в Linux. Вы можете просмотреть и получить большую часть памяти, занятой процессом или пользователем, с помощью некоторых тщательно разработанных инструментов и команд.
via: woohoo.networkworld.com/article/351…
автор:Sandra Henry-StockerТема:lujun9972Переводчик:Мэнсин АянВычитка:wxy
Эта статья написанаLCTTоригинальная компиляция,Linux КитайЧесть запуска