核心与线程:我应该在这台机器上运行多少个线程?
我应该在这台机器上运行多少个线程?
我的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
如果要计算所有用户进程的数量,可以使用以下命令之一:
-
ps -aux| wc -l
-
ps -eLf | wc -l
计算用户进程的编号:
-
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,你可以在这里找到它。