54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
|
---
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date:
|
|||
|
- - 2024-02-29
|
|||
|
zero-link:
|
|||
|
- "[[00 HighLoad]]"
|
|||
|
parents:
|
|||
|
- "[[Архитектор высоких нагрузок - OTUS 2024]]"
|
|||
|
linked:
|
|||
|
- "[[source/курсы/otus/Архитектор высоких нагрузок 2019/Проблемы высоких нагрузок|Проблемы высоких нагрузок]]"
|
|||
|
author:
|
|||
|
- "[[Сапогов Никита]]"
|
|||
|
next: "[[Введение в docker. Обзор docker-compose]]"
|
|||
|
---
|
|||
|
![](Проблемы_высоких_нагрузок___Презентация__Никита_Сапогов__29.02.2024-310891-2c6576.pdf)
|
|||
|
|
|||
|
## Интересные мысли лектора
|
|||
|
- У каждого своя высокая нагрузка. Для одного проекта 100 RPS уже высокая нагрузка. Например, запрос должен перелопатить терабайты данных.
|
|||
|
|
|||
|
## Заметки
|
|||
|
Обсуждали [Многозадачность ЦПУ](Многозадачность%20ЦПУ.md)
|
|||
|
|
|||
|
Память разбивается на однотипные куски одинакового размера 4 кб. Аллокация памяти происходит при первом обращении.
|
|||
|
|
|||
|
Page Fault
|
|||
|
![](Pasted%20image%2020240229204146.png)
|
|||
|
Причины возникновения
|
|||
|
- Первое обращение к памяти
|
|||
|
- ОС выгрузила страницу на HDD
|
|||
|
- Copy-on-write
|
|||
|
|
|||
|
Почему плохо:
|
|||
|
- Происходит [context switch](Переключение%20контекста.md)
|
|||
|
- В худших случаях еще и поход на HDD
|
|||
|
|
|||
|
Copy-on-write - это когда при изменении данных мы копируем исходные данные в другую ячейку, а потом записываем новые данные.
|
|||
|
|
|||
|
Модели веб серверов
|
|||
|
- Worker - многопоточный
|
|||
|
- Prefork - многопроцессорный
|
|||
|
- Асинхронный
|
|||
|
- Комбинированный
|
|||
|
|
|||
|
Worker/prefork
|
|||
|
- Просто реализовать
|
|||
|
- Неэфективность при работе с i/o
|
|||
|
- Ограничение размером пула потоков
|
|||
|
- Дорого выделять на каждого клиента по потоку
|
|||
|
|
|||
|
Концепция fiber
|
|||
|
- Совмещаем плюсы синхронной и асинхронной модели
|
|||
|
|