Лекция посвящена продвинутым вопросам системного администрирования 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:11:02 Вопрос из зала: об оптимизации работы приложений с помощью NUMA
01:12:24 Планировщики ввода-вывода (элеваторы)
01:13:51 Планировщики ввода-вывода: NOOP
01:15:41 Планировщики ввода-вывода: CFQ
01:17:14 Планировщики ввода-вывода: DEADLINE
01:18:51 CGROUPS — контрольные группы
01:20:46 Иерархия CGROUPS: пример
01:22:31 CGROUPS: управляемые ресурсы
01:23:46 CGROUPS: пример управления ресурсами
01:26:13 Управление лимитами ввода-вывода
01:27:23 Ответ на вопрос из зала: об основных иерархиях CGROUPS
— О КАНАЛЕ:
Официальный канал образовательных проектов Mail.Ru Group
После того, как я упомянул АВИТО в одном из своих роликов, в комментариях развилось бурное обсуждение этого сервиса. И я решил поделиться своим опытом использования этого сервиса, рассказать о забавных случаях и предостеречь от ошибок!
промокод 7% скидка для моих любимых подписчиков в магазине www.strunki.ru/ — ZVUKVRUKAH
Привет, друзья! Меня зовут Алексей Романовский, я лидер метал группы БАУ и сооснователь сети репетиционных баз Lemooor Studio. Я занимаюсь звукозаписью, играю на электрогитаре и бас гитаре, делаю сведение треков и пытаюсь разобраться в том, как устроен звук и музыкальное оборудование. На этом канале я делюсь своими мыслями по поводу музыки и жизни музыканта, а также выпускаю обучающие видео по использованию программ для записи, сочинения и обработки музыки.
А мы пьяные, счастливые как будто по 16
Мы закружились в танце и лезем целоваться
И нас не понимают, нам нравится смеяться
Болтаем не своём, как-будто иностранцы
О-о как же ты красива
О-о губы вкуса мандарина
О-о дальше будет лучше
О-о пото потому что
Припев (х2)
Пото, пото, пото, пото, пото, потому что
Это, это, это, это, это наши чувства
Люба, Люба, Люба, Люба, Люба до безумства
Опасная ты штучка взрывная как шипучка
Куплет:
С тобой я сумасшедший
Зачем меня Манила
Теперь мы неразлучны как кола и ванила
С тобой хоть на край света
А можем здесь остаться
Нам нечего стесняться, давай поедем зайцем
раз, два, три, четыре, пять, убегаем мы опять
шесть, семь, восемь, все что хочешь
Можем даже полетать
Мы такие молодые
Хоть карманы и пустые
Но нас это и не парит
Мы с тобою ходим парой
О-о как же ты красива
О-о губы вкуса мандарина
О-о дальше будет лучше
О-о пото потому что
Припев (х2)
Пото, пото, пото, пото, пото, потому что
Это, это, это, это, это наши чувства
Люба, Люба, Люба, Люба, Люба до безумства
Опасная ты штучка взрывная как шипучка
Получить подарки в World of Tanks — tanks.ly/36Vibkj (Важно! Танк Т2LT, неделя премиум-аккаунта и 400 тыс. кредитов выдается при регистрации нового аккаунта)
Следующий выпуск: «Капитан Америка и плацкарт»
Dependency Inversion и Dependency Injection Container // PDFfiller meetup.
Внедрение зависимостей и инверсия управления ― концепции, которые нашли своё место в архитектуре всех современных PHP (и не только) фреймворках, ведь они помогают писать понятный, тестируемый, поддерживаемый и переиспользуемый код.
Как показывает опыт, эта тема чаще других вызывает сложности понимания не только у новичков, но даже у довольно опытных разработчиков.
В своём докладе Dmitry Naumenko, Yii core team, HiQDev, простым языком расскажет, что такое внедрение зависимостей, а на наглядных примерах мы вместе просмотрим метаморфозы кода на пути к использованию DI.
После доклада у вас будет понимание того, почему инверсия управления — это необходимость, и знания, чтобы сделать свой код лучше.
Если у тебя есть вопросы к спикеру, пиши прямо здесь в комментариях.
Подписывайся на наш канал, чтобы быть в курсе новостей компании PDFfiller: goo.gl/ocQzUp
Хочешь к нам присоединиться?
Ищи подходящую вакансию по ссылке goo.gl/07jhkp
Пиши нам в skype:
Анастасия Завадская — anastasia.zavadskaya
Оля Сидоренко — olya.sidorenko.94