- 主题:有没高效率的线程池实现?
os在调度器那里实现的。
【 在 freecutelei 的大作中提到: 】
: 用户态的限制cpu使用,没啥好的方式啊。还得用户自己估算一下计算复杂度,然后谨慎coding
--
FROM 114.241.228.*
不靠谱啊。。。。os又不知道app的业务逻辑
【 在 z16166 的大作中提到: 】
: os在调度器那里实现的。
:
--
FROM 58.246.3.*
靠谱得很,调度器不给分配时间片就行了。业务层只要自己设定百分比即可。
【 在 freecutelei 的大作中提到: 】
: 不靠谱啊。。。。os又不知道app的业务逻辑
:
--
FROM 114.241.228.*
【 在 freecutelei 的大作中提到: 】
: 用户态的限制cpu使用,没啥好的方式啊。还得用户自己估算一下计算复杂度,然后谨慎coding
6楼的方法不行吗?
--
FROM 221.218.60.*
那只适合集中式研发。比如有统一全局的架构师有话语权进行相关设计。
现实研发情况,基本都是各自为政分别甩锅。没人承诺跑到对应百分比的,都甩锅抱怨分配不合理。
【 在 z16166 的大作中提到: 】
: 靠谱得很,调度器不给分配时间片就行了。业务层只要自己设定百分比即可。
:
--
FROM 58.246.3.*
各自需求不同。
我只需要保证比如我的产品最多占用80%,给别人的产品留20%。
至于我的产品里哪个进程/线程占得多,内卷吧,自己优化去。
【 在 freecutelei 的大作中提到: 】
: 那只适合集中式研发。比如有统一全局的架构师有话语权进行相关设计。
: 现实研发情况,基本都是各自为政分别甩锅。没人承诺跑到对应百分比的,都甩锅抱怨分配不合理。
--
FROM 114.241.228.*
6楼的办法省事,不需要特别的操作。控制比较粗糙,但是基本可以满足需求。
我遇到的一个项目,计算密集型,对速度要求很高,同时又要求CPU不超过75%。(原因是,当CPU达到100%后,系统无法监控,不响应其他管理命令。)
就是用6楼方法,看起来是50%,实际上是100%。充分利用了所有的核。同时对系统监控管理不受影响。
我这个任务,虽然CPU占的多,但是优先级低,不影响那些优先级高的小任务的运行。
当没有别的任务时,CPU都是我的。
【 在 z16166 的大作中提到: 】
: 各自需求不同。
: 我只需要保证比如我的产品最多占用80%,给别人的产品留20%。
: 至于我的产品里哪个进程/线程占得多,内卷吧,自己优化去。
: ...................
--
修改:ylh1969 FROM 221.218.60.*
FROM 221.218.60.*
这个应该是因为你用的是古代的牙膏厂 CPU,现代的 CPU,比如农企最新的 ryzen 5700g 这样的 CPU,它的计算核心提供两个译码器,开启超线程以后能够提升 20%-40%,你这样用是很浪费的。
顺便说一下,很多人喷牙膏厂的小核,但其实吧,不管是农企还是牙膏厂的大核,被分裂成两个超线程使用的时候,性能都还不如小核呢。
不过为啥我不喷农企呢,因为农企直接给 16 个大核,比牙膏厂给 8 个大核,16 个小核良心多了。
【 在 ylh1969 的大作中提到: 】
: 尤其是在有超线程的时候,把线程数定义为实核数,这样,看起来CPU使用率很低,实际已经用满了。
: 这办法我用过。
: 例如,8核16线程,你就设置8线程,CPU利用率看起来就在50%以下,实际性能可以达到100%。
: ...................
--
FROM 110.84.122.*
这种需求,多半是跑在 linux 服务器的需求是吧?
或许不要在自己应用层去处理,而是使用 linux 的 docker,可以配置使用的 CPU 时间比例,它底层使用的是 cgroups 来控制。
【 在 z16166 的大作中提到: 】
: 各自需求不同。
: 我只需要保证比如我的产品最多占用80%,给别人的产品留20%。
: 至于我的产品里哪个进程/线程占得多,内卷吧,自己优化去。
: ...................
--
FROM 110.84.122.*
你说的我有点听不懂。
我的测试是8核16超线程。
放8个线程,性能是单线程的8倍,CPU50%。放16线程性能还是8倍,CPU100%。如果需要75%,放12个线程,性能还是8。
计算密集型任务,线程间没有互相干扰。
当线程间互相干扰时,超线程或许在性能上有用。
我的实验,超线程仅提供空闲的CPU。
【 在 hgoldfish 的大作中提到: 】
: 这个应该是因为你用的是古代的牙膏厂 CPU,现代的 CPU,比如农企最新的 ryzen 5700g 这样的 CPU,它的计算核心提供两个译码器,开启超线程以后能够提升 20%-40%,你这样用是很浪费的。
: 顺便说一下,很多人喷牙膏厂的小核,但其实吧,不管是农企还是牙膏厂的大核,被分裂成两个超线程使用的时候,性能都还不如小核呢。
: 不过为啥我不喷农企呢,因为农企直接给 16 个大核,比牙膏厂给 8 个大核,16 个小核良心多了。
: ...................
--
修改:ylh1969 FROM 221.218.60.*
FROM 221.218.60.*