Linux

是否可以在我的 linux 機器上執行僅使用 16 個 CPU 中的 2 個 CPU 的程序

  • April 3, 2017

是否可以在我的 linux 機器上執行僅使用 16 個 CPU 中的 2 個 CPU 的程序

我們有紅帽機器版本 6,我們有 16 個 CPU

但是因為許可證要花錢,如果我們限制只能在 2 個 CPU 上執行的腳本,那麼我們可以省錢

您可以使用taskset.

taskset 3 mycommand

3是一個位遮罩,意味著它mycommand只會在核心 0 和 1 上執行。)

但是,這不會改變程序認為您擁有的 CPU 數量。這只是對核心的一條指令,不要在位遮罩中列出的 CPU 上調度程序。因此,如果程序根據 CPU 數量進行許可證檢查,這可能無濟於事。

一個絕對可行的解決方案是在只有 2 個(虛擬)核心的虛擬機中執行該程序。但是,這可能會降低性能。

Cgroups提供了一種限制程序可能使用的資源的中間方法。我不知道它是否可以有效地隱藏程序中的 CPU,或者它是否只像taskset.

引用自:https://unix.stackexchange.com/questions/355445