Linux-需要将16核系统限制为4核,以测试运行多个程序的性能

Linux-需要将16核系统限制为4核,以测试运行多个程序的性能,linux,performance,operating-system,performance-testing,cpu-usage,Linux,Performance,Operating System,Performance Testing,Cpu Usage,我有几个程序将被放在一个内核有限的系统上。 我想在我当前的系统上测试这些程序的性能,这个系统比它将要使用的系统强大得多 完全限制适当资源的唯一方法是通过我系统上的虚拟机,还是我可以将我的系统限制为与运行程序的其他系统相同的核心限制?任务集可能会对您有所帮助 按如下方式启动应用程序您的_命令: taskset -ac 0-3 your_command # -c 0-3: your_command might run on cores 0 to 3 # a : all of the 4 co

我有几个程序将被放在一个内核有限的系统上。 我想在我当前的系统上测试这些程序的性能,这个系统比它将要使用的系统强大得多


完全限制适当资源的唯一方法是通过我系统上的虚拟机,还是我可以将我的系统限制为与运行程序的其他系统相同的核心限制?

任务集
可能会对您有所帮助

按如下方式启动应用程序
您的_命令

taskset -ac 0-3 your_command
# -c 0-3: your_command might run on cores 0 to 3
#  a    : all of the 4 cores may be used
如果应用程序已在运行:

taskset -acp 0-3 PID
# PID = process ID

有关更多详细信息,请参阅。

您实际上是有16个内核还是只有8个内核+超线程?您很可能不想使用虚拟机来模拟另一台机器的性能。另一个想法是,如果应用程序通过OpenMP并行化,您可以在启动之前设置环境变量
OMP_NUM_THREADS=X
应用程序
X
是允许运行的OpenMP线程数(例如,
OMP_NUM_threads=4
允许4个线程)。此外,您可以通过env控制内核上线程的分布。变量
KMP\U亲缘关系
(如果使用英特尔编译器编译)。其他编译套件应具有相应的env。瓦尔斯。设置。请让我知道,如果应用程序是OpenMP并行的,我会发布另一个答案。