11. LINUX. Распределение ресурсов системы | Технострим HD
Слайды лекции: https://www.docme.ru/WQQ7 ► Другие лекции курса: https://www.youtube.com/playlist?list=PLrCZzMib1e9rx3HmaLQfLYb9ociIvYOY1 Подробнее о курсе: https://track.mail.ru/curriculum/program/discipline/81/ Описание лекции: Лекция посвящена продвинутым вопросам системного администрирования Linux. Рассматриваются следующие темы: - Ядро ОС Linux - Выделяемые ресурсы ОС - Виртуальная и резидентная память - Выделение процессорного времени - Планировщик задач CFS - NUMA(Non-Uniform Memory Access) - Планировщики ввода-вывода (элеваторы) - CGROUPS - контрольные группы Хронометраж: 00:00:05 О теме лекции 00:01:27 Ядро ОС: основные функции ядра 00:02:17 Ядро ОС: управление параметрами ядра (общий механизм) 00:02:35 Управление параметрами ядра ОС: интерфейс SYSCTL 00:04:36 Ядро ОС: модульная архитектура 00:06:06 Просмотр загруженных модулей ядра с помощью утилиты LSMOD 00:07:49 Ядро ОС: выделение ресурсов ОС приложению 00:08:11 Вопрос залу: в чем отличия между резидентной и виртуальной памятью? 00:08:42 Вопрос залу: кто из вас программировал на языках с ручным управлением памятью? 00:09:48 Выделяемые ресурсы ОС: виртуальная и резидентная память 00:12:09 Выделяемые ресурсы ОС: процессорное время 00:12:44 Выделяемые ресурсы ОС: ресурсы ввода-вывода, дескрипторы 00:13:36 Виртуальная и резидентная память: пример распределения памяти конкретного процесса 00:15:05 Виртуальная и резидентная память: использование раздела подкачки (swap) 00:16:01 Виртуальная и резидентная память: три стратегии выделения памяти 00:16:14 Стратегии выделения памяти: vm.overcommit_memory = 2 00:17:51 Стратегии выделения памяти: vm.overcommit_memory = 1 00:18:19 Событие OUT OF MEMORY 00:20:44 Стратегии выделения памяти: vm.overcommit_memory = 0 00:22:14 Виртуальная и резидентная память: единицы выделения памяти (страницы) 00:24:26 Виртуальная и резидентная память: HUGE PAGES 00:25:33 Два механизма выделения HUGE PAGES 00:34:52 Сложность решения задачи выделения процессорного времени 00:35:29 Выделение процессорного времени: немного истории 00:36:01 Выделение процессорного времени: кооперативная многозадачность 00:38:12 Выделение процессорного времени: вытесняющая многозадачность 00:39:56 Вытесняющая многозадачность: пример 00:41:22 Алгоритмы выделения процессорного времени в Linux 00:44:08 Два независимых вида приоритетов процессов в Linux 00:46:10 Каким образом работает планировщик задач (CFS)? 00:47:31 CFS: алгоритм управления процессорным временем (SCHED_NORMAL - политика по умолчанию) 00:50:54 CFS: политики планирования задач 00:51:16 Политики планирования задач: SCHED_FIFO 00:53:09 Политики планирования задач: SCHED_RR 00:54:42 Работа с приоритетами: практика, команда NICE 00:57:40 Назначение реалтаймовых приоритетов: команда CHRT 00:59:29 NUMA(Non-Uniform Memory Access) 01:04:00 Работа с NUMA: практический пример 01:06:59 Работа с NUMA: утилита NUMACTL 01:08:54 Вопрос из зала: об архитектурах процессоров 01:1