We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
你好, 调试中遇到一个问题, 有些疑问, 如果方便, 辛苦帮忙解答. 感谢
我在测试kafkadataset的时候, 会产生非常多线程. 但有利用率的占比不高. 随着partition数的增多, 线程数成比例增加.
(1) 单机情况下, 200个partition, 可以产生超过15000个线程. (dataset设置的并行度是3, inter_op, intra_op都默认, 在128core, 64core, 32core机器测试结果都一样线程数一样多). (2) 分布式情况下, 2个worker, 各assign 100个partition, 单worker线程数减半(7-8k个), 总数不变 同理, 扩展到4个, 8个, 随着单worker partition减少, 对应线程也是成比例减少. 根据我的模型看, 一个partition稳定对应70+个线程.
线程名为tf_data_iterato. 疑似通过unboundThreadpool创建得来, 但我发现这个线程池在过程中大小一直是2, 队列最大是2. 所以不太明白为什么会产生这么多线程.且都留存.
基于以上提出疑问 1、为什么会产生这么多逻辑线程, 且不退出, 又从哪儿创建的. 如果是unboundThreadpool创建的, 线程池大小过程中打印都很小, 为什么会有这么多线程一直不退出. 2、一个partition 稳定对应数十个线程(不全有利用率, 200个partition 有15000线程, 有利用率大概400/15000) . 对一个模型或者任务而言, 这个数实测根dataset parallel数没关系, 跟inter_op, intra_op数也没有关系. 可能跟什么有关(dataset/iterator 还是 kafka)
以上问题如能解惑, 非常感谢!
The text was updated successfully, but these errors were encountered:
已查清是rd_kafka_thread_main 和多个rd_kafka_broker_thread_main. 跟kafka相关, assign方式下产生的大量线程应该跟broker数目有关. 总线程数来自 partition_num (或者 consumer_num) * (rd_kafka_thread_main+rd_kafka_broker_thread_main)
Sorry, something went wrong.
No branches or pull requests
你好, 调试中遇到一个问题, 有些疑问, 如果方便, 辛苦帮忙解答. 感谢
我在测试kafkadataset的时候, 会产生非常多线程. 但有利用率的占比不高. 随着partition数的增多, 线程数成比例增加.
(1) 单机情况下, 200个partition, 可以产生超过15000个线程. (dataset设置的并行度是3, inter_op, intra_op都默认, 在128core, 64core, 32core机器测试结果都一样线程数一样多).
(2) 分布式情况下, 2个worker, 各assign 100个partition, 单worker线程数减半(7-8k个), 总数不变
同理, 扩展到4个, 8个, 随着单worker partition减少, 对应线程也是成比例减少.
根据我的模型看, 一个partition稳定对应70+个线程.
线程名为tf_data_iterato. 疑似通过unboundThreadpool创建得来, 但我发现这个线程池在过程中大小一直是2, 队列最大是2. 所以不太明白为什么会产生这么多线程.且都留存.
基于以上提出疑问
1、为什么会产生这么多逻辑线程, 且不退出, 又从哪儿创建的. 如果是unboundThreadpool创建的, 线程池大小过程中打印都很小, 为什么会有这么多线程一直不退出.
2、一个partition 稳定对应数十个线程(不全有利用率, 200个partition 有15000线程, 有利用率大概400/15000) . 对一个模型或者任务而言, 这个数实测根dataset parallel数没关系, 跟inter_op, intra_op数也没有关系. 可能跟什么有关(dataset/iterator 还是 kafka)
以上问题如能解惑, 非常感谢!
The text was updated successfully, but these errors were encountered: