Сформировать команду конвейер для получения пяти процессов использующих наибольшие объемы памяти

Обновлено: 07.07.2024

Лабораторная работа 7

Контроль использования ресурсов ОС Linux

Цель работы – практическое знакомство с командами, используемыми для контроля использования ресурсов и виртуальной файловой системой /proc

1.1 Команды для контроля системных ресурсов

1.1.1 Вывод информации о процессах, выполняющихся в системе

Для вывода списка всех выполняющихся на компьютере в текущий момент процессах используется команда

Значения используемых опций: а - all – процессы всех пользователей; u – ориентированная на пользователей (отображение информации о владельце); x – процессы, не контролируемые ttys.

Полезные ключи - -e – вывод сведений обо всех процессах и o – пользовательский вывод, например

ps –eo pid, ppid, pri, stat, pgid, nice, comm.

В столбце STAT содержится информация о состоянии процесса. Наиболее важные состояния: S-cпящий; R –выполняющийся; T- остановленный; Z – зомби.

Буква Z указывает, что процесс завис и его нельзя завершить. Избавиться от подобной программы можно с помощью перезагрузки системы.

Более подробную информацию представляет опция –l (long format))

Для просмотра дерева процессов используются команды:

Завершение выполняющегося процесса

Завершение процесса выполняется командой

kill сигнал PID

Сначала процессу посылается сигнал -15. Если это не помогает, используется крайняя мера -посылается сигнал -9.

Отображение динамически обновляемого списка выполняющихся процессов – команда top

В отличие от ps, команда top представляет динамически обновляемые сведения о процессах и о том, какой объем системных ресурсов использует каждый из них (рис.1).

В первых пяти строках команда top отображает подробную информацию о системе, а затем описывает каждый выполняющийся процесс. Выходные данные сортируются по уровню загрузки ЦП данным процессом.

Необходимо ввести PID процесса, программа запросит номер сигнала:

kill PID NNNN with signal [15]:

Как правило, данное значение является приемлемым, и через секунду после ввода Enter информация о выбранном процессе исчезнет с экрана.

Рис. 1 – результат выполнение команды top

Во второй строке вывода программы top сообщается, что в списке процессов находятся 132 процесса, из них 131 спит (состояние готовности или ожидания), 1 выполняется (на виртуальной машине только 1 процессор), 0 процессов зомби и 0 остановленных процессов.

В третьей-пятой строках приводится информация о загрузке процессора CPU в режиме пользователя и системном режиме, использования памяти и файла подкачки.

В таблице отображается различная информация о процессе. Рассмотрим колонки PID (идентификатор процесса), USER (пользователь, запустивший процесс), S (состояние процесса) и COMMAND (команда, которая была введена для запуска процесса).

Колонка S может содержать следующие значения:

R - процесс выполняется или готов к выполнению (состояние готовности)

D - процесс в "беспробудном сне" - ожидает дискового ввода/вывода

T - процесс остановлен (stopped) или трассируется отладчиком

S - процесс в состоянии ожидания (sleeping)

N – процесс с низким приоритетом, nice, pri<19

< - процесс с высоким приоритетом, pri>19

+ - процесс в группе фоновых процессов

l – процесс с двумя и более потоками, многопоточный

s – ведущий процесс сеанса.

Колонка PR содержит приоритет процесса – целое число от 0 до 39. Колонка NI (NICE) (фактор уступчивости процесса) содержит задаваемое значение от -19 (наименее уступчивый) до 20 (самый уступчивый, вытесняется всеми). Значение NICE прибавляется к числу 20 для получения значения приоритета

Для управления командой top используются односимвольные команды:

h – вывод справки о командах;

r – renice – изменение приоритета, в режиме администратора (через sudo) можно задавать значения от-19 до 20;

q – завершение работы с командой и другие (см. информацию справки).

Недостаток команды – вывод только первых N<26 строк информации о процессах.

Для управления процессами с использованием графического интерфейса используется утилита Системный монитор, которая запускается из системного меню Система-Администрирование – Системный монитор (рис.2).

Рис. 2. Системный монитор

На закладке Процессы монитор показывает сведения о запущенных процессах, на закладке система – сведения об использовании ЦП и памяти. Достоинства монитора – использование графического интерфейса, отображение списка всех процессов.

Вывод дерева процессов

Для построения дерева процессов используются команды

Получение информации о потоках

Как известно, процесс может иметь параллельно выполняющиеся потоки (threads) или облегченные процессы (LWP, Light Weight Process). Для получения информации о потоках заданного процесса используется опция –L, например ps –fLC swriter.bin выводит список потоков приложения writer Open Office. Процессы, использующие более одного потока – редактор звуковых файлов audacity и soffice.bin, а также демоны (службы в по терминологии Windows). Как указано выше, многопоточные процессы помечено символом l в колонке состояния.

1.1.2 Получение списка открытых файлов

Команда lsof (List open files) без параметров выводит полный список открытых файлов. Пользователь-администратор получит несколько тысяч строк текста.

Для получения списка файлов, открытых конкретным пользователем, служит команда

lsof -u имя_пользователя

Получение списка пользователей конкретного файла

Необходимо ввести команду lsof c указанием имени файла. Например lsof /bin/bash

Отображение информации об оперативной памяти системы

Текущее состояние системной памяти позволяет получить команда free

По умолчанию все значения представлены в килобайтах. Значения в М позволяет получить опция –m.

1.1.3. Отображение информации об использовании дискового пространства

Команда df выводит данные об объеме доступного дискового пространства (в Кбайтах). Опция –h улучшает восприятие результатов.

Команда du дает возможность узнать объем дисковой памяти, занимаемой каталогами и файлами.

1.2 Файловая система /proc

Ядро Linux предоставляет механизм доступа к своим внутренним структурам и позволяет изменять установки ядра во время работы ОС посредством файловой системы /proc. Файловая система /proc является механизмом для ядра и его модулей, позволяющим посылать информацию процессам ( отсюда и название /proc ). С помощью этой виртуальной файловой системы можно работать с внутренними структурами ядра, получать полезную информацию о процессах и изменять установки (меняя параметры ядра ) на лету. Файловая система /proc располагается в памяти в отличие от других файловых систем, которые располагаются на диске.

Файловая система /proc контролируется ядром. Из-за того, что она предоставляет информацию, контролируемую ядром, она располагается в памяти, контролируемой также ядром. Команда "ls -l" покажет, что большинство файлов в этой системе имеют нулевую длину, но посмотрев любой файл, Вы получите достаточно информации. Как это может быть? Все просто - файловая система /proc как любая другая файловая система регистрируется на уровне VFS ( Virtual File System layer ). Поэтому при запросе файлов/каталогов, файловая система /proc создает эти файлы/каталоги на основании информации, содержащейся в ядре.

В действительности многие программы собирают информацию из файлов в /ргос, форматируют её своим собственным способом, а результат затем выводят на экран. Существует несколько программ, которые поступают именно так при выводе информации о процессах (top, ps и т. п.), /ргос - это также хороший источник информации об аппаратном обеспечении, и по аналогии с программами, показывающими процессы, некоторые другие программы являются просто интерфейсами к информации, находящейся в /ргос.

Также существует специальный подкаталог /proc/sys. Он позволяет отображать параметры ядра и изменять их в режиме реального времени.

1.2.1 Информация о процессах

Каждый из каталогов содержит одинаковые пункты, краткое описание некоторых из них:

  1. cmdline: этот (псевдо-) файл содержит полную командную строку, использованную для вызова процесса. Он не отформатирован: между программой и ее аргументами нет пробелов, а в конце строки нет разделителя строки. Чтобы просмотреть его, вы можете использовать: perl -ple 's,\00, ,g' cmdline.
  2. cwd: эта символическая ссылка указывает на текущий рабочий каталог процесса (следует из имени).
  3. environ: этот файл содержит все переменные окружения, определенные для этого процесса, в виде ПЕРЕМЕННАЯ=значение. Как и в cmdline вывод вообще не отформатирован: нет разделителей строк для отделения различных переменных, и в конце нет разделителя строки. Единственным решением для его просмотра будет: perl -pl -e 's,\00,\n,g' environ.
  4. exe: эта символическая ссылка указывает на исполняемый файл, соответствующий запущенному процессу.
  5. fd: этот подкаталог содержит список файловых дескрипторов, открытых в данный момент процессом.
  6. maps: когда вы выводите содержимое этого именованного канала (при помощи команды cat, например), вы можете увидеть части адресного пространства процесса, которые в текущий момент распределены для файла. Вот эти поля (слева направо): адресное пространство, связанное с этим распределением; разрешения, связанные с этим распределеним; смещение от начала файла, где начинается распределение; старший и младший номера (в шестнадцатиричном виде) устройства, на котором находится распределенный файл; номер inode файла; и, наконец, имя самого файла.
  7. root: эта символическая ссылка указывает на корневой каталог, используемый процессом. Обычно это будет /.
  8. status: этот файл содержит разнообразную информацию о процессе: имя исполняемого файла, его текущее состояние, его PID и PPID, его реальные и эффективные UID и GID, его использование памяти и другие данные.

Если вывести список содержимого каталога fd для процесса 127, получим примерно следующее:

lrwx------ 1 root root 64 Dec 16 22:04 0 -> /dev/console

l-wx------ 1 root root 64 Dec 16 22:04 1 -> pipe:[128]

l-wx------ 1 root root 64 Dec 16 22:04 2 -> pipe:[129]

l-wx------ 1 root root 64 Dec 16 22:04 21 -> pipe:[130]

lrwx------ 1 root root 64 Dec 16 22:04 3 -> /dev/apm_bios

lr-x------ 1 root root 64 Dec 16 22:04 7 -> pipe:[130]

lrwx------ 1 root root 64 Dec 16 22:04 9 -> /dev/console

На самом деле это список файловых дескрипторов, открытых процессом. Каждый открытый дескриптор представлен в виде символической ссылки, где имя - это номер дескриптора, который указывает на файл, открытый этим дескриптором.

6.2. Информация об аппаратном обеспечении

Кроме каталогов, связанных с различными процессами, в /ргос также содержится значительный объём информации об аппаратном обеспечении ПК.


Значения используемых опций: а - all – процессы всех пользователей; u – ориентированная на пользователей (отображение информации о владельце); x – процессы, не контролируемые ttys.

В столбце STAT содержится информация о состоянии процесса. Наиболее важные состояния: S-cпящий; R –выполняющийся; T- остановленный; Z – зомби.

USER — имя владельца процесса;

PID — идентификатор процесса в системе;

PPID — идентификатор родительского процесса;

%CPU — доля времени центрального процессора (в процентах), выделенного данному процессу;

%MEM — доля реальной памяти (в процентах), используемая данным процессом;

VSZ — виртуальный размер процесса (в килобайтах);

RSS — размер резидентного набора (количество 1K-страниц в памяти);

STIME — время старта процесса;

TTY — указание на терминал, с которого запущен процесс;

S или STAT — статус процесса;

TIME — сколько времени центрального процессора занял данный процесс;

CMD или COMMAND — командная строка запуска программы, выполняемой данным процессом;

Рядом с указателем статуса могут стоять дополнительные символы:

W — процесс не имеет резидентных страниц;

N — низко-приоритетный процесс;

L — процесс имеет страницы, заблокированные в памяти.

Вывести дерево процессов.


С помощью команды top получить список 5 процессов, потребляющих наибольшее количество процессорного времени.

Во второй строке вывода программы top сообщается, что в списке процессов находятся 135 процесса, из них 134 спит (состояние готовности или ожидания), 1 выполняется (на виртуальной машине только 1 процессор), 0 процессов зомби и 0 остановленных процессов.

В третьей-пятой строках приводится информация о загрузке процессора CPU в режиме пользователя и системном режиме, использования памяти и файла подкачки.

Рассмотрим колонки PID (идентификатор процесса), USER (пользователь, запустивший процесс), S (состояние процесса) и COMMAND (команда, которая была введена для запуска процесса).

Колонка S может содержать следующие значения:

R - процесс выполняется или готов к выполнению (состояние готовности)

D - процесс в "беспробудном сне" - ожидает дискового ввода/вывода

T - процесс остановлен (stopped) или трассируется отладчиком

S - процесс в состоянии ожидания (sleeping)

N – процесс с низким приоритетом, nice, pri<19

< - процесс с высоким приоритетом, pri>19

+ - процесс в группе фоновых процессов

l – процесс с двумя и более потоками, многопоточный

s – ведущий процесс сеанса.

Колонка PR содержит приоритет процесса – целое число от 0 до 39. Колонка NI (NICE) (фактор уступчивости процесса) содержит задаваемое значение от -19 (наименее уступчивый) до 20 (самый уступчивый, вытесняется всеми). Значение NICE прибавляется к числу 20 для получения значения приоритета

Shift+T — сортировка по времени выполнения.

A - Сортировка строк по максимальному потреблению различных системных ресурсов. Полезна для быстрой идентификации задач, для которых в системе не хватает ресурсов.

Нажмите клавишу n в интерактивном режиме — будет задан запрос на указание числа показываемых процессов.



Найти 2 процесса, имеющих более ДВУХ потоков. Использовать состояние процесса l. Как указано выше, многопоточные процессы помечено символом l в колонке состояния. Для получения информации о потоках заданного процесса используется опция –L, например ps –fLC.


Используя команду top, изменить приоритеты 2 процессов.

r – Изменение приоритета процессов с помощью команды renice.


значение 16




Получить список открытых файлов пользователя aa

Команда lsof (List open files) без параметров выводит полный список открытых файлов.

Для получения списка файлов, открытых конкретным пользователем, служит команда

lsof -u имя_пользователя


Получить текущее состояние системной памяти

Текущее состояние системной памяти позволяет получить команда free. Total – всего, used – использовано, free – свободно, shared – разделено, buffers – буферы, cached – кэшировано. Swap – замена.


Получить справку об использовании дискового пространства.

Команда df выводит данные об объеме доступного дискового пространства (в Кбайтах). Опция –h улучшает восприятие результатов.


Вывести информацию о каком-либо процессе, используя содержимое каталога /proc

Ядро Linux предоставляет механизм доступа к своим внутренним структурам и позволяет изменять установки ядра во время работы ОС посредством файловой системы /proc. Файловая система /proc является механизмом для ядра и его модулей, позволяющим посылать информацию процессам ( отсюда и название /proc ).

cmdline: этот (псевдо-) файл содержит полную командную строку, использованную для вызова процесса=

cwd: эта символическая ссылка указывает на текущий рабочий каталог процесса.

environ: этот файл содержит все переменные окружения, определенные для этого процесса, в виде ПЕРЕМЕННАЯ=значение.

exe: эта символическая ссылка указывает на исполняемый файл, соответствующий запущенному процессу.

fd: этот подкаталог содержит список файловых дескрипторов, открытых в данный момент процессом.

maps: адресное пространство процесса, которые в текущий момент распределены для файла.

root: эта символическая ссылка указывает на корневой каталог, используемый процессом. Обычно это будет /.

status: этот файл содержит разнообразную информацию о процессе: имя исполняемого файла, его текущее состояние, его использование памяти и другие данные.


Вывести информацию о процессоре ПК, используя содержимое каталога /proc

cpuinfo: этот файл содержит, как видно из его имени, информацию о процессорах машины.

Название команды — это сокращения от слова catenate. По сути, задача команды cat очень проста — она читает данные из файла или стандартного ввода и выводит их на экран.


Вывести список модулей, используемых в настоящий момент ядром ОС.

modules: этот файл содержит список модулей, используемых ядром в настоящий момент, вместе со счетчиком использования каждого из модулей. Эта информация используется командой lsmod, которая отображает её в более удобной для чтения форме.


Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Как известно, процесс может иметь параллельно выполняющиеся потоки (threads) или облегченные процессы (LWP, Light Weight Process). Для получения информации о потоках заданного процесса используется опция –L, например ps –fLC swriter.bin выводит список потоков приложения writer Open Office. Процессы, использующие более одного потока – редактор звуковых файлов audacity и soffice.bin, а также демоны (службы в по терминологии Windows). Как указано выше, многопоточные процессы помечено символом l в колонке состояния.

Получение списка открытых файлов

Команда lsof (List open files) без параметров выводит полный список открытых файлов. Пользователь-администратор получит несколько тысяч строк текста.

Для получения списка файлов, открытых конкретным пользователем, служит команда

lsof -u имя_пользователя

Получение списка пользователей конкретного файла

Необходимо ввести команду lsof c указанием имени файла. Например lsof /bin/bash

Отображение информации об оперативной памяти системы

Текущее состояние системной памяти позволяет получить команда free

По умолчанию все значения представлены в килобайтах. Значения в М позволяет получить опция –m.

Отображение информации об использовании дискового пространства

Команда df выводит данные об объеме доступного дискового пространства (в Кбайтах). Опция –h улучшает восприятие результатов.

Команда du дает возможность узнать объем дисковой памяти, занимаемой каталогами и файлами.

Файловая система /proc

Ядро Linux предоставляет механизм доступа к своим внутренним структурам и позволяет изменять установки ядра во время работы ОС посредством файловой системы /proc. Файловая система /proc является механизмом для ядра и его модулей, позволяющим посылать информацию процессам ( отсюда и название /proc ). С помощью этой виртуальной файловой системы можно работать с внутренними структурами ядра, получать полезную информацию о процессах и изменять установки (меняя параметры ядра ) на лету. Файловая система /proc располагается в памяти в отличие от других файловых систем, которые располагаются на диске.

Файловая система /proc контролируется ядром. Из-за того, что она предоставляет информацию, контролируемую ядром, она располагается в памяти, контролируемой также ядром. Команда "ls -l" покажет, что большинство файлов в этой системе имеют нулевую длину, но посмотрев любой файл, Вы получите достаточно информации. Как это может быть? Все просто - файловая система /proc как любая другая файловая система регистрируется на уровне VFS ( Virtual File System layer ). Поэтому при запросе файлов/каталогов, файловая система /proc создает эти файлы/каталоги на основании информации, содержащейся в ядре.

В действительности многие программы собирают информацию из файлов в /ргос, форматируют её своим собственным способом, а результат затем выводят на экран. Существует несколько программ, которые поступают именно так при выводе информации о процессах (top, ps и т. п.), /ргос - это также хороший источник информации об аппаратном обеспечении, и по аналогии с программами, показывающими процессы, некоторые другие программы являются просто интерфейсами к информации, находящейся в /ргос.

Также существует специальный подкаталог /proc/sys. Он позволяет отображать параметры ядра и изменять их в режиме реального времени.

Информация о процессах

Каждый из каталогов содержит одинаковые пункты, краткое описание некоторых из них:

1. cmdline: этот (псевдо-) файл содержит полную командную строку, использованную для вызова процесса. Он не отформатирован: между программой и ее аргументами нет пробелов, а в конце строки нет разделителя строки. Чтобы просмотреть его, вы можете использовать: perl -ple 's,\00, ,g' cmdline.

2. cwd: эта символическая ссылка указывает на текущий рабочий каталог процесса (следует из имени).

3. environ: этот файл содержит все переменные окружения, определенные для этого процесса, в виде ПЕРЕМЕННАЯ=значение. Как и в cmdline вывод вообще не отформатирован: нет разделителей строк для отделения различных переменных, и в конце нет разделителя строки. Единственным решением для его просмотра будет: perl -pl -e 's,\00,\n,g' environ.

4. exe: эта символическая ссылка указывает на исполняемый файл, соответствующий запущенному процессу.

5. fd: этот подкаталог содержит список файловых дескрипторов, открытых в данный момент процессом.

6. maps: когда вы выводите содержимое этого именованного канала (при помощи команды cat, например), вы можете увидеть части адресного пространства процесса, которые в текущий момент распределены для файла. Вот эти поля (слева направо): адресное пространство, связанное с этим распределением; разрешения, связанные с этим распределеним; смещение от начала файла, где начинается распределение; старший и младший номера (в шестнадцатиричном виде) устройства, на котором находится распределенный файл; номер inode файла; и, наконец, имя самого файла.

7. root: эта символическая ссылка указывает на корневой каталог, используемый процессом. Обычно это будет /.

8. status: этот файл содержит разнообразную информацию о процессе: имя исполняемого файла, его текущее состояние, его PID и PPID, его реальные и эффективные UID и GID, его использование памяти и другие данные.

Если вывести список содержимого каталога fd для процесса 127, получим примерно следующее:

ls -l fd total 0 lrwx------ 1 root root 64 Dec 16 22:04 0 -> /dev/console l-wx------ 1 root root 64 Dec 16 22:04 1 -> pipe:[128] l-wx------ 1 root root 64 Dec 16 22:04 2 -> pipe:[129] l-wx------ 1 root root 64 Dec 16 22:04 21 -> pipe:[130] lrwx------ 1 root root 64 Dec 16 22:04 3 -> /dev/apm_bios lr-x------ 1 root root 64 Dec 16 22:04 7 -> pipe:[130] lrwx------ 1 root root 64 Dec 16 22:04 9 -> /dev/console

На самом деле это список файловых дескрипторов, открытых процессом. Каждый открытый дескриптор представлен в виде символической ссылки, где имя - это номер дескриптора, который указывает на файл, открытый этим дескриптором.

6.2. Информация об аппаратном обеспечении

Кроме каталогов, связанных с различными процессами, в /ргос также содержится значительный объём информации об аппаратном обеспечении ПК.

Список файлов каталога /рrос, полученный с помощью команды ls -d [a-z]*выглядит следующим образом:

Когда нужно просмотреть информацию о процессах более детально, можно воспользоваться программами на подобии Process Explorer или Process Hacker. А если выбор ограничен? Получить информацию о процессах поможет PowerShell.


Содержание

Вывод Списка Процессов Системы

Получить информацию о процессах можно с помощью командлета Get-Process . Запускаем PowerShell, и выполняем команду:


Вывод команды представлен в виде таблицы. По умолчанию выводятся поля: Количество дескрипторов процесса (Handles), Объем невыгружаемой памяти процесса (NPM - Nonpaged System Memory), Объем памяти процесса возможный для записи в файл подкачки (PM - Paged System Memory), Объем памяти процесса выделенный в оперативной памяти (WS - Working Set), Использованное процессорное время (CPU), Имя процесса (ProcessName).

Фильтрация Выводимых Данных

Полученные данные, представляют полный список процессов системы. Что если вам необходимо отслеживать только конкретные процессы. Вывод командлета Get-Process можно отфильтровать используя имя конкретного процесса, или маску имени процесса.


Теперь все то же самое, но с использованием масок.


Для ясности, знак звездочки * , означает любое количество символов, а знак вопросительного знака ? , один любой символ.

Кроме фильтрации по именам процессов, можно отфильтровать и выводимые поля всей таблицы. К примеру, нас интересуют только поля Id, ProcessName, WS. Причем вывод должен быть именно в указанном порядке.


Вывод Дополнительной Информации

Кроме базовых полей (Handles, NPM, PM, WS, CPU, SI, ProcessName) выводимых командлетом Get-Process , существуют еще дополнительные. По умолчанию они не выводятся при выполнении командлета, так как вывод всех полей в виде таблицы, не может поместиться в окне консоли, даже если данное окно развернуть на весь экран. Но отобразить все поля все же можно.

Для примера, выведем все поля процесса winlogon в виде списка.



Как можно заметить, полей довольно-таки много. Причем значение некоторых дублируется, к примеру Name и ProcessName. Это сокращения, для удобства использования.

Дополнительные поля содержат полезную информацию, к примеру:

Path - Путь до исполняемого файла процесса.
Description - Описание исполняемого файла.
MainWindowTitle - Заголовок главного окна процесса, если окно конечно есть.
Modules - Модули используемые процессом.
MainModule - Главный модуль процесса.
StartTime - Время запуска процесса.
Priority - Приоритет процесса.
Company - Компания создавшая исполняемый файл процесса.
ProductVersion - Версия исполняемого файла процесса.
UserProcessorTime - То же что и CPU (использованное процессорное время), но только в более удобном формате.
Threads -

Составим из этих полей свою версию вывода информации о процессах.


Пользователь Запустивший Процесс

Если вы обратили внимание, то скорее всего заметили, что среди дополнительных полей нет информации о пользователе запустившем конкретный процесс. Вывести данную информацию можно выполнив командлет Get-Process с ключом -IncludeUserName .


Сортировка Вывода

Выполнить сортировку вывода командлета Get-Process можно передав его вывод по конвейеру командлету Sort-Object . К примеру, сортировка по имени процесса, в алфавитном порядке.


Теперь, отсортируем вывод по полую WS, в порядке убывания. Так мы сможем определить самый прожорливый процесс, он будет первым в списке.


Вывод Процессов по Условию

Условия, позволяют выбрать из списка всех процессов, те, что удовлетворяют определенным критериям. К примеру выберем из списка процессов, все, объем выделенной памяти для которых больше 50 МБ.


Вся выборка осуществляется с помощью командлета Where-Object . Если вкратце, данный командлет принимает на вход указанный параметр, и выполняет его сравнение. В данном случае, в качестве параметра выступает поле WS, значение которого должно быть больше или равно 50MB. Данное равенство указывается с помощью параметра -ge (Greater than or equal).

Существуют и другие параметры сравнения: -gt больше, -lt меньше, -eq равно, -ge больше/равно, -le меньше/равно. Подробнее все параметры сравнения, можно посмотреть в справке по командлету Where-Object .

Вывод Взаимосвязанных Служб

За запущенными процессами, могут скрываться службы. То есть, какой-то из процессов может быть на самом деле запущенной службой. Попробуем вывести такие службы.


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


Закрытие Процессов

Научившись фильтровать необходимые процессы, можно с ними можно выполнять различные действия. К примеру можно их закрыть.

Допустим в системе запущено 4 процесса notepad и 1 notepad++.


Закрыть 4 обычных блокнота, можно передав отфильтрованный список командлету Stop-Process .


Вывод Взаимосвязанных Модулей

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


Если внимательно посмотреть на список модулей, то можно увидеть загруженные библиотеки DLL находящиеся в одной папке с исполняемым файлом.

Читайте также: