Skip to content

nelturion/Informatics-lab-6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Лабораторная работа: мониторинг ресурсов

Разминка:

Для начала разберемся с тем, как получить данные о процессах.

С помощью утилиты htop можно подробно узнать обо всех запущенных процессах

   sudo apt install htop
   htop

Теперь мы видим диспетчер задач аналогичный всем нам так знакомому. Но как получать отсюда данные, которые можно было бы автоматически отслеживать и в зависимости от них управлять своей системой? Воспользуемся другой утилитой ps

  ps -eo pid,%cpu,command --sort=-%cpu

Эта команда вывела нам данные обо всех ныне работающих процессах - их PID, нагрузку на CPU и команду, которой они были вызваны. Процессы были отсортированы по убыванию используемых ресурсов процессора.

Задание

  1. Напишите программу на Python, которая будет съедать большое количество вычислительных ресурсов вашей виртуальной машины. Протестируйте её.
  2. Напишите bash скрипт, который будет анализировать нагрузку на систему и выводить PID процесса, занимающего больше 50% памяти или процессора. Если таких процессов нет, то пусть выводит три самых тяжелых процесса (по памяти и по нагрузке на CPU)

Подсказка про поиск данных в ps:

Данные из ps будут приходить нам в формате текста, поэтому для их фильтрации стоит использовать команду awk. Синтаксис команды awk:

фильтрация по шаблону:

awk '/шаблон/ {действия;}'

Пример:

   array="10 25 55" # допустим, у нас есть некоторый массив.
   # NF - не рэпер, а встроенная переменная awk, которая хранит количество полей в строке
   echo $array | awk '{for(i=1; i<=NF; i++) if($i > 40) print $i}

Соответственно, этот скрипт выведет 55 в терминале (все числа массива, которые >40).

Как успешно сдать работу?

Знать как писать скрипты на bash. Знать немного python. Шарить.

Ресурсы и справочная литература:

  1. самый достоверный источник:
   man ps
   ps --help
  1. Что такое htop
  2. Другие средства мониторинга системы
  3. Про язык программирования awk

About

Homework assignment for ITMO Informatics 1sem

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published