对于CPU密集型任务应配置尽可能小的线程,如配置Ncpu+1个线程的线程池(CPU密集型:CPU消耗大,大量的计算,视频转码等)。
IO密集型任务线程并不是一直在执行任务,则应配置尽可能多的线程,如2*Ncpu(IO密集型:CPU消耗少)。
混合型的任务,如果可以拆分,将其拆分成一个CPU密集型任务和一个IO密集型任务。
注意:总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
查询CPU个数:
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查询核数:
cat /proc/cpuinfo| grep "cpu cores"| uniq
查询逻辑CPU总数:
cat /proc/cpuinfo| grep "processor"| wc -l