Школьный код в высоконагруженной системе: какие уроки мы выучили, проводя олимпиады по программированию

Резерв

Доклад принят в программу конференции

Мнение Программного комитета о докладе

На примере платформы онлайн-олимпиад для школьников Александр расскажет про поведение ОС и приложения под стрессом: OOM killer, PID-лимиты, monotonic vs wall clock, «шумные соседи». Короткие рецепты диагностики и профилактики для backend-разработчиков.

Целевая аудитория

Backend-разработчики

Тезисы

Реализация площадки для проведения онлайн-олимпиад по программированию — крайне интересная и нестандартная задача. Мы запускаем сомнительный код в промышленной среде, заставляя её работать на пределе возможностей. В среднестатистическом приложении происходящее назвали бы инцидентом, но для нас это обычные рабочие будни. В такие моменты некоторые аспекты поведения приложения и ОС кажутся нелогичными и необъяснимыми. Между тем, понимание происходящего может оказаться крайне полезным для анализа проблем, их устранения и предотвращения.

За последние два года мы столкнулись с множеством нестандартных кейсов. В докладе раскрою самые яркие из них. На живых примерах разберём:

- в чём разница между полезной работой и временем исполнения;
- как и зачем контролировать параллелизм;
- каковы особенности работы со временем и часами;
- что определяет характер расхода оперативной памяти;
- как контролировать агрессивные процессы;
- как вся система может превратиться в "зомби".

Технический лидер команды «МЭШ: Информатика» в компании Инфиннити. Более 18 лет профессионально занимается архитектурой и разработкой backend. За это время работал с проектами из различных сфер: недвижимость, финансы, здравоохранение, образование, IoT. Систематизирует свой опыт и знания, охотно делится этим с коллегами.

Видео