Как отобразить процессы, которые используют память в заданном диапазоне - PullRequest
0 голосов
/ 25 апреля 2018

Как я могу отобразить процессы, которые используют память между заданным интервалом в терминале? Например: процессы, которые используют от 50 до 100 МБ памяти.

Я пытался:

ps aux | awk '{print $4}' | sort

, но при этом отображается только память для каждого отсортированного процесса, а не с интервалом.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Это будет перечислять процессы, как ожидалось.Помните, что ps показывает размер памяти в килобайтах.

ps -u 1000 -o pid,user,stime,rss \
  | awk '{if($4 > 50000 && $4 < 100000){ print $0 }}' \
  | sort -n -k 4,4

Вывод команды:

 3407 luis.mu+ 10:30 51824
 3523 luis.mu+ 10:30 66108
 3410 luis.mu+ 10:30 71060
 3595 luis.mu+ 10:30 74340
 3609 luis.mu+ 10:30 77772
18550 luis.mu+ 16:47 93616

В этом случае отображаются только 4 поля для идентификатора пользователя 1000. Чтобы показать все процессы, используйте

ps -e -o pid,user,stime,rss

На справочной странице ps(3) в разделе STANDARD FORMAT SPECIFIERS:

rss
размер резидентного набора - физическая память без перестановки, используемая задачей (inkiloBytes)

Если вы хотите показать больше полей, проверьте справочную страницу и добавьте поля к опции -o.

0 голосов
/ 25 апреля 2018

Для более сложных тестов, включая сравнение, неравенство и числовые тесты, awk очень полезен:

ps aux | awk '{print $4}' | sort | awk '$1 >= 1 && $1 <=2'| cat

Здесь я проверяю использование памяти между 1 МБ и 2 МБ, используя awk, и распечатываю их, используяcat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...