Go 1.28 снижает память HTTP/2-сервера на ~40% при 5000 простаивающих соединений
В черновике релиз-нотов Go 1.28 обнаружен механизм parking: горутина обслуживания HTTP/2-соединения завершается при отсутствии работы и заменяется новой при поступлении запросов. Замеры на одном бинарнике Go 1.28 показали снижение RSS на 84,7–92,6 МиБ (около 39–41%) при 5000 простаивающих соединений и уменьшение числа горутин ровно на 5000.
- RSS при 5000 idle-соединений: ~130 МиБ с parking против ~220 МиБ без него
- Число горутин: 5007 с parking против 10007 без него
- StackInuse упал с ~99 МиБ до ~21 МиБ, экономия около 78 МиБ
- При 1000 соединений экономия RSS составила 15,7–16,6 МиБ
Читать дальше
Безопасность