[ https://issues.apache.org/jira/browse/KAFKA-18921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17934533#comment-17934533 ]
David Arthur commented on KAFKA-18921: -------------------------------------- I ran just the streams integration tests serially with one worker on GitHub Actions. The timeline can be seen here [https://develocity.apache.org/s/xxzmmrqxxaozy/timeline] Interestingly, the CPU is idle most of the time. Maybe this is normal? > Low CPU utilization during streams integration tests > ---------------------------------------------------- > > Key: KAFKA-18921 > URL: https://issues.apache.org/jira/browse/KAFKA-18921 > Project: Kafka > Issue Type: Improvement > Components: build, streams > Reporter: David Arthur > Priority: Major > Attachments: image-2025-03-04-17-05-48-768.png > > > While analyzing some build performance, I noticed that our CPU is not well > utilized during the streams integration tests. We should investigate to make > sure we're not needlessly waiting during the tests. > > Here is an example from this build scan > https://develocity.apache.org/s/rqe4e2vh5jr72/timeline?page=1&sort=longest > !image-2025-03-04-17-05-48-768.png! > Notice that the ":streams:integration-tests:test" worker is running longer > than the other works and we can see during that time that the CPU is not very > utilized. This suggests that the tests are in some idle/waiting state. > > I tried to reproduce this locally and found at 40 second pause in a random > test. > > [2025-03-04 16:56:11,606] INFO [Consumer > clientId=consumer-f2eaa005-b1e1-406f-8c52-e50c71b4d807-58, > groupId=f2eaa005-b1e1-406f-8c52-e50c71b4d807] Resetting offset for partition > outputTopic_3-0 to position FetchPosition\{offset=0, > offsetEpoch=Optional.empty, > currentLeader=LeaderAndEpoch{leader=Optional[localhost:59515 (id: 0 rack: > null isFenced: false)], epoch=0}}. > (org.apache.kafka.clients.consumer.internals.SubscriptionState:447) > [2025-03-04 16:56:55,214] INFO [Consumer > clientId=testAutoOffsetId-a426e1fb-61ad-4ce8-92ca-f0fe337c2565-StreamThread-1-consumer, > groupId=testAutoOffsetId] Successfully joined group with generation > Generation\{generationId=4, > memberId='testAutoOffsetId-a426e1fb-61ad-4ce8-92ca-f0fe337c2565-StreamThread-1-consumer-2f798603-d538-4041-a90d-2e1b922dd5af', > protocol='stream'} > (org.apache.kafka.clients.consumer.internals.ConsumerCoordinator:666) > > I grabbed a thread dump: > > at > org.apache.kafka.streams.integration.utils.IntegrationTestUtils.readRecords(IntegrationTestUtils.java:1177) > at > org.apache.kafka.streams.integration.utils.IntegrationTestUtils.readKeyValues(IntegrationTestUtils.java:1136) > at > org.apache.kafka.streams.integration.utils.IntegrationTestUtils.lambda$waitUntilMinKeyValueRecordsReceived$4(IntegrationTestUtils.java:710) > at > org.apache.kafka.streams.integration.utils.IntegrationTestUtils$$Lambda$3338/0x00000070018f4fb0.call(Unknown > Source) > at > org.apache.kafka.test.TestUtils.retryOnExceptionWithTimeout(TestUtils.java:483) > at > org.apache.kafka.test.TestUtils.retryOnExceptionWithTimeout(TestUtils.java:451) > at > org.apache.kafka.streams.integration.utils.IntegrationTestUtils.waitUntilMinKeyValueRecordsReceived(IntegrationTestUtils.java:708) > at > org.apache.kafka.streams.integration.utils.IntegrationTestUtils.waitUntilMinKeyValueRecordsReceived(IntegrationTestUtils.java:681) > at > org.apache.kafka.streams.integration.FineGrainedAutoResetIntegrationTest.shouldResetByDuration(FineGrainedAutoResetIntegrationTest.java:334) > -- This message was sent by Atlassian Jira (v8.20.10#820010)