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