私は、ゲームコミュニティのためのゲームサーバーをホストする2つのX5650 2.7GHZプロセッサを搭載したLinuxボックスを持っています。私の質問は、ゲームサーバーに最適な1コアのパフォーマンスが必要ですが、24のvCORESと12の物理コアがあることです。 12個の物理コアを使用するようにカーネルに「指定」することは可能ですか?それでは、1つの物理コアが2VCORESを使用しますか?
ありがとう、アレックス。
ベストアンサー1
taskset
スレッドの好みを設定することで、コア間にプロセスを手動で展開できます。どのスレッドがどのコアとプロセッサに属しているかを確認するには、/proc/cpuinfo
次の点を確認します。
$ grep -E '^processor|^physical id|^core id' /proc/cpuinfo |sed 's/^processor/\nprocessor/'
processor : 0
physical id : 0
core id : 0
processor : 1
physical id : 0
core id : 1
processor : 2
physical id : 0
core id : 0
processor : 3
physical id : 0
core id : 1
$ _
processor
はスレッド数、physical id
は物理CPU数、core id
はコア数です。上記の出力は、2つのコアと4つのスレッドを持つ単一のCPUを持つシステムからのものです。
taskset
taskset --all-tasks -p <hex_mask> <pid>
既存のプロセスのすべてのスレッドの好みを変更するために使用できます。これはhex_mask
各1ビットが割り当てられたCPUスレッドを表すビットマスクで、右から番号が付けられます。たとえば、0xa
マスクは、0b1010
プロセスのスレッド#1とスレッド#3の優先度を表すバイナリを意味します。 PIDが説明を必要とすることを願っています。