核心与线程:我应该在这台机器上运行多少个线程?

我应该在这台机器上运行多少个线程?

我的lscpu说有96个核心。 那些物理核心? 我可以在这台机器上运行的最大和最佳线程是什么?

https://stackoverflow.com/a/10670440/610569表明我可以为每个核心运行20多个线程。 这样可以吗? 这是最佳的吗?

 alvas@server:~$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 96 On-line CPU(s) list: 0-95 Thread(s) per core: 2 Core(s) per socket: 12 Socket(s): 4 NUMA node(s): 4 Vendor ID: GenuineIntel CPU family: 6 Model: 62 Model name: Intel(R) Xeon(R) CPU E5-4657L v2 @ 2.40GHz Stepping: 4 CPU MHz: 2700.000 CPU max MHz: 2900.0000 CPU min MHz: 1200.0000 BogoMIPS: 4801.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 30720K NUMA node0 CPU(s): 0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92 NUMA node1 CPU(s): 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93 NUMA node2 CPU(s): 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94 NUMA node3 CPU(s): 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63,67,71,75,79,83,87,91,95 

原谅我在核心/线程中的高傲。

这是你想知道的

 Thread(s) per core: 2 Core(s) per socket: 12 Socket(s): 4 

你有4个CPU插槽,每个CPU最多可以有12个内核,每个内核可以有两个线程。

您的最大线程数为4个CPU x 12个核心x每个核心2个线程,因此12 x 4 x 2为96.因此,最大线程数为96,最大核心数为48。

什么是更好的 ?

这取决于你想要做什么,更多的线程意味着更少的频率(即3ghz分成两部分),但更好的多任务(更multithreading)和使用完整核心(没有超线程)更适合高CPU使用任务(即游戏)。

希望这对你有所帮助。

在我的理论观点中,每个cpu核心线程(基于硬件的线程) – 你的96个核心之一有效地可以处理16个线程(基于软件的线程fe C ++ thread.h)。

您可以通过运行htop或ps命令来查找机器上可运行的线程数,该命令可返回机器上的进程数。

您可以使用有关’ps’命令的手册页。

 man ps 

如果要计算所有用户进程的数量,可以使用以下命令之一:

  1. ps -aux| wc -l
  2. ps -eLf | wc -l

计算用户进程的编号:

  1. ps --User root | wc -l

此外,您可以使用“htop” [参考] :

在Ubuntu或Debian上安装:

 sudo apt-get install htop 

在Redhat或CentOS上安装:

 yum install htop dnf install htop [On Fedora 22+ releases] 

如果你想从源代码编译htop,你可以在这里找到它。