Проблемы с высокой загрузкой процессора Cassandra (3.11.1)
Нужна помощь, чтобы решить мои проблемы с высоким использованием ЦП cassandra.
У нас есть 12-ти узловый кластер Cassandra со следующими характеристиками.
- 8 ядер
- 16 ГБ HEAP/32 ГБ ОЗУ с G1GC
Внезапно я начал видеть некоторую высокую загрузку процессора (которая составляет около 18-24 на 8 основных узлах)
Трассировка стека cassandra показала множество работоспособных потоков, как показано ниже.
sun.nio.ch.FileDispatcherImpl.read0(Native Method)
MessagingService-Incoming-/10.xx.xx.xx
MessagingService-Incoming-/10.xx.xx.xx
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:192)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at org.apache.cassandra.io.util.NIODataInputStream.reBuffer(NIODataInputStream.java:66)
at org.apache.cassandra.io.util.RebufferingInputStream.readByte(RebufferingInputStream.java:144)
at org.apache.cassandra.io.util.RebufferingInputStream.readPrimitiveSlowly(RebufferingInputStream.java:108)
at org.apache.cassandra.io.util.RebufferingInputStream.readInt(RebufferingInputStream.java:188)
at org.apache.cassandra.net.IncomingTcpConnection.receiveMessages(IncomingTcpConnection.java:179)
at org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:94)
а также
"epollEventLoopGroup-2-9": running
at io.netty.channel.epoll.Native.epollWait0(Native Method)
at io.netty.channel.epoll.Native.epollWait(Native.java:117)
at io.netty.channel.epoll.EpollEventLoop.epollWait(EpollEventLoop.java:226)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:250)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:748)
Первый упомянутый выше поток имеет 35 вхождений и 24 вхождения для 2-го потока.
Может кто-нибудь понять, что здесь не так??
Со стороны кластера,
- Нет ожидающих уплотнений / задач.
- & GC паузы ниже 100 мс
Спасибо
1 ответ
Я также внезапно почувствовал высокую загрузку ЦП Кассандрой, даже не имея операций чтения/записи. Дальнейшее расследование показало, что это было вызвано неправильной настройкой сборщика метрик Prometheus. Свою историю, как я это узнал, я описал здесь: https://dev.to/stasberkov/cassandra-high-cpu-load-can-be-caused-by-prometheus-misconfiguration-oc0
TLDR: я использовал jvm-tools.