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