Aiven-Open / Aiven-Open/tiered-storage-for-apache-kafka

[Alert] Discussion about indicators for scaling up Kafka

Đang mở
#608 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
239
Fork
59
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

# What can we help you with?

This will be just a place for discussing what should we monitor for scaling up the Kafka.

# Where would you expect to find this information?

This is just the case of our own when we need to scale up our Kafka clusters.
In normal case, we would just scale up the cluster when the disk is growing and might hit the 100%, or in the case when the CPU/Memory are not sufficient to handle the traffic.
And in our case is that we have this [issue](https://github.com/Aiven-Open/tiered-storage-for-apache-kafka/issues/596) that sometimes one or more broker just stopped clean up the out-of-date segments(one or two). Then the local disk would be filled up quickly with these uncleaned segments and restarting the brokers "seems" to resolve the issue temporarily. However, this can happen every day and we just can't keep doing the "restart", especially when the traffic continues to grow, there's be more of these brokers whose local segments can't be cleaned up.
![image](https://github.com/user-attachments/assets/177b089d-ce20-4e53-a0c2-2a76b80768f4)

# Details

After trying various ways, we found that scaling up the cluster(adding more brokers) can greatly alleviates the issue(although we still have partition with uncleaned segments), then easily there's question about when should we scale up? Which indicator can show us when to scale up before we have to "restart" to resolve the issue first? In our case, our CPU and memory doesn't seem to change much by the scaling up, but the IO wait drops from about 35% to 25% and that looks like an indicator that we can use. Other than this one, we didn't show any other indicator that can help us in this case.

# Discussion

So based on the description above, if IOWait is really the indicator that we can use, why sometimes the broker doesn't delete the segments when the IOWait is high? What is the normal range for the IOWait to make sure that the system can work well? Is there some other indicator that can be used in this case? Maybe the throughput? The IOPS? Any idea is welcomed for discussion. Thank you!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

The issue names no source files, tests, or entry points. Start by reviewing issue 596 and the reported Kafka broker disk, I/O-wait, and segment-cleanup behavior; done would require an agreed set of scaling indicators and documented evidence for when they should trigger action.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Lĩnh vực
distributed-systems, observability-sre
Loại issue
Lỗi
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.