Наше приложение Scala (развертывание в Kubernetes) постоянно испытывает задержки сердцебиения кластера Akka ≈3 с.
Однажды у нас даже была задержка в 200 с, что также проявилось на следующем графике:
Может кто-нибудь предложить вещи для дальнейшего изучения?
Спецификации
requests.cpu = 16
# limits.cpu not set
- Scala 2.12.7
- Java 11.0.4 + 11
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+AlwaysPreTouch
-Xlog:gc*,safepoint,gc+ergo*=trace,gc+age=trace:file=/data/gc.log:time,level,tags:filecount=4,filesize=256M
-XX:+PerfDisableSharedMem
Java Flight Recording
Пример:
timestamp delay_ms
06:24:55.743 2693
06:30:01.424 3390
07:31:07.495 2487
07:36:12.775 3758
Было 4 подозрительных момента времени, когда множество потоков Java Thread Park были зарегистрированы одновременно для потоков Akka (актеры иудаленное взаимодействие), и все они связаны с проблемами сердцебиения:
Вокруг 07:05:39
не было "сердцебиения"было отложено "журналы, но был этот:
07:05:39,673 WARN PhiAccrualFailureDetector heartbeat interval is growing too large for address SOME_IP: 3664 millis
Во время Ja корреляции с событиями остановки или заблокированными потоками не былоva сеанс записи полета, только два начала безопасной точки событий в непосредственной близости от задержек:
регулирование CFS
Загрузка ЦП приложения невелика, поэтому мы подумали, что это может быть связано с тем, как K8 планирует наш узел приложения для ЦП .Но отключение лимитов ЦП не сильно улучшило ситуацию, хотя метрика kubernetes.cpu.cfs.throttled.second
исчезла.
Отдельный диспетчер
Использование отдельного диспетчера кажется ненужным, поскольку задержки возникают даже при отсутствии нагрузкиМы также создали явное приложение, похожее на наше, которое не делает ничего, кроме пульса, и все еще испытывает эти задержки.
Кластер K8s
Из наших наблюдений это происходит гораздо чаще на паре К8узлы в большом кластере K8s используются совместно со многими другими приложениями, когда наше приложение не загружается сильно.
У отдельного выделенного кластера K8s, где наше приложение тестируется под нагрузкой, почти не возникает проблем с задержками пульса.