Код: Выделить всё
atomic_fetch_add
Среда представляет собой модуль k8s с гарантированным классом QoS и привязан к процессорам 0–21.
Нагрузка довольно низкая, менее 400%. ОС — CentOS 7.
Я ожидал, что затраты времени на одну итерацию составят менее 22 мс (10 мс работа + 10 мс сон + 2 мс задержка). Однако задержка расписания часто достигает 10 мс.
Я использую запись расписания, чтобы зафиксировать какое-то событие расписания, и обнаружил кое-что странное:
Код: Выделить всё
1749911.876649 [0072] swapper awakened: foreground[211676/210475]
1749911.876650 [0072] 0.032 0.000 0.005
1749911.876771 [0072] foreground[211676/210475] 0.005 0.000 0.120
1749911.876792 [0072] swapper awakened: ticker[307369]
1749911.876793 [0072] 0.120 0.000 0.022
1749911.887211 [0072] ticker[307369] 10.051 0.001 10.417
В 1749911.876793 процессор простаивает.
На 1749911.887211, т. е. через 10 мс, тикер был запланировано.
Я не понимаю, почему задержка тикера по расписанию может быть такой большой. Есть идеи? Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... r-low-load