@inponomarev
Иван Пономарёв, КУРС/МФТИ
Как так вышло, что чем «оптимальнее» загружен процессор, тем медленнее идёт процесс?
И почему всё настолько плохо возле точки 100% загрузки процессора?
Очередь из сообщений в топике Kafka,
очередь задач в вашей Жире,
очередь на кассу в магазин,
Cредняя частота возникновения событий — λ,
Средняя пропускная способность обработчика — μ
Загруженность обработчика — \(\rho=\frac{\lambda}{\mu}\)
События становятся в очередь в случайные моменты времени с распределением Пуассона,
Обработчик событий затрачивает случайное время с экспоненциальным распределением,
Система может находиться в счётном количестве состояний:
\[\huge
\begin{array}{rcl}
0 & = & - \lambda p_0 + \mu p_1,\\
0 & = & \lambda p_{n-1} - (\lambda +\mu) p_n + \mu p_{n+1},\\
1 & = & \sum\limits_{n=0}^{\infty}p_n
\end{array}\] |
Любая система с очередью может находиться в одном из трёх режимов
μ < λ или μ = λ (нам конец)
μ >> λ (очереди нет, но и процессор часто простаивает)
μ > λ, но ненамного!
Оптимизация процессора и оптимизация потока — это «качели»: оптимизируя поток, мы должны лимитировать загрузку процессора.
@inponomarev