digital-garden/source/курсы/otus/Архитектор высоких нагрузок 2024/Проблемы высоких нагрузок.md
2024-06-13 21:01:37 +03:00

54 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
- Совмещаем плюсы синхронной и асинхронной модели