Tencent / yadcc

Yet Another Distributed C++ Compiler. yadcc是一套腾讯广告自研的分布式编译系统,用于支撑腾讯广告的日常开发及流水线。相对于已有的同类解决方案,我们针对实际的工业生产环境做了性能、可靠性、易用性等方面优化。
Other
364 stars 62 forks source link

关于调度机制的问题 #49

Open gamark opened 1 year ago

gamark commented 1 year ago

我架了4个编译节点, A:50核,B:50核, C:20核, D:20核。

当我make -j80的时候, A:50核占满,B:30核,C,和D,偶尔会有占用一两核。 C和D,在这种情况下,大部分时候没有编译任务。

想问下,有没有方案,让调度更平均一点,当make -j80的时候,按比例分配到节点 比如: A:28, B:28, C:12 D:12

0x804d8000 commented 1 year ago

https://github.com/Tencent/yadcc/blob/master/yadcc/scheduler/task_dispatcher.cc#L399

目前逻辑上确实是会尽量均分负载的,观察到这个现象比较奇怪。

可以看看https://github.com/Tencent/yadcc/blob/master/yadcc/scheduler/task_dispatcher.cc#L321 这儿的逻辑在你的环境里跑到了哪些分支