Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы терминал / Terminal_KR_Gorodetskiy_BST2154_v2 .docx
Скачиваний:
21
Добавлен:
28.10.2024
Размер:
12.75 Mб
Скачать
  1. Создание скрипта для получения статистики

Рисунок 4-4-22. Создан скрипт для получения статистики: осуществляет сбор статистики использования процессоров и статистики работы процессов средствами mpstat и pidstat, данные сохраняются в текстовый файл с именем yyyy-mm-dd_h:m:s_syslog. Показано содержимое текущей дириктории до и после запуска скрипта, а также его вывод команды ls -l для директории сохранения логов скрипта. Работа скрипта будет прекращена после ручного заврешения пользователем (ctrl+c).

Рисунок 4-4-23. Текст созданного скрипта.

Рисунок 4-4-24. Содержимое файла лога.

  1. Создание автозапускаемой службы

Рисунок 4-4-25. Код написанной новой службы logger.service.

Рисунок 4-4-26. Произведена регистрация и запуск службы при помощи команд

sudo systemctl daemon-reload

sudo systemctl start logger.service

Проверка работы службы при помощи команды sudo systemctl status logger.service покзала, что служба была успешно зарегистрирована и запущена. Вывод показывает, что она была остановлена (inactive (dead)) и завершилась успешно (code=exited, status=0/SUCCESS). Однако в логах есть предупреждение о неправильной записи в файле сервиса, это связано с тем, что в файле сервиса logger.service есть ошибочная запись, которую система игнорирует.

Рисунок 4-4-27. Созданный ранее скрипт был немного изменен: утилиты вроде mpstat и pidstat часто требуют привилегий суперпользователя для корректной работы. Поэтому было добавлено перед этими командами sudo. В прошлом скрипте logger2.sh происходил сбор статистики с использованием утилит mpstat и pidstat. Однако этот скрипт запускается как служба через systemd. Службы systemd обычно работают в фоновом режиме и без интерактивного ввода, поэтому они также были немного изменены и добавлено ограничение времени.

Рисунок 4-4-28. Появился новый файл. Удалить сразу все логи возможно при помощи команды

find . -type f -name '*_syslog' -delete

Рисунок 4-4-29. Содержимое файла *_syslog.

  1. Создание таймера

Рисунок 4-4-30. Создан таймер со следующими параметрами:

OnCalendar=*:0/1 указывает, что действие должно выполняться каждую минуту (0 минут, 1 час).

AccuracySec=60s задает точность таймера до одной минуты.

Persistent=true делает таймер постоянным, так что он перезапускается после перезагрузки системы.

Unit=logger.service указывает на сервис, который должен быть запущен этим таймером.

WantedBy=multi-user.target указывает, что этот таймер должен быть активирован при переходе в режим мультипользователя (multi-user.target).

Рисунок 4-4-31. Введены команды для активации

systemctl daemon-reload

systemctl enable logger.timer

systemctl start logger.timer

Проверить наличие нового таймера удалось при помощи команды

systemctl list-timers

Рисунок 4-4-32. Таймер остановлен и отключен командами

sudo systemctl stop logger.timer

sudo systemctl disable logger.timer

Рисунок 4-4-33. Просмотр директории выовода скрипта. Новые файлы созданы с минутным интервалом и содержат сопоставимое количество записей.

  1. Управление памятью

В данном разделе речь пойдет про механизмы виртуальной памяти, структуры данных, такие как таблицы страниц, и команды для работы с памятью. Были рассмотрены способы преобразования виртуальных адресов в физические с использованием многоуровневых таблиц страниц. Особое внимание уделено созданию и настройке файлов подкачки, включая создание файла подкачки, его подключение и настройку автоматического подключения при перезагрузке системы. Также проведение стресс-тест памяти с помощью утилиты Memtester, который позволяет выявить возможные проблемы с памятью. Изучение концепции параметра swappiness и его влияние на частоту использования подкачки памяти.

Основные используемые команды и их параметры:

  • pmap с параметром -x и для расширенного вывода карты виртуальной памяти процесса.

  • top показывает потребление ресурсов процессами в реальном времени.

  • free -h для отображения объёма свободной и используемой оперативной памяти.

  • swapon -s для показа использования и настроек файла подкачки.

  • mkswap /swapfile для разметки файла подкачки.

  • swapoff/swapon /swapfile для отключения/подключения файла подкачки.

  • cat /etc/fstab для редактирования списка устройств для монтирования.

  • tail -f /var/log/syslog для мониторинга выходных данных в реальном времени.

  • memtester для проведения стресс-тестов памяти с параметрами размера памяти и количества проходов.

Во время выполнения заданий были изучены различные аспекты управления памятью в Linux, включая:

Преобразование виртуальных адресов в физические:

  • Механизм виртуальной памяти позволяет каждому процессу иметь своё собственное закрытое виртуальное адресное пространство.

  • Трансляция виртуальных адресов в физические производится с использованием многоуровневых таблиц страниц.