ユーザアプリケーションの性能評価でCPUコア数に制約を持たせたいときはCPUアフィニティを設定すれば良かった。ただ、カーネル空間で動作するアプリケーションの性能評価を取る際に困る。
初めはマシンのBIOS設定からCPUコアの一部を無効化しようと考えたが、OSを起動した状態で動的にシステムの使うCPUコア数を制限する方法があった。
動作環境はUbuntu Server 20.04 LTSである。
CPUコアの番号を
X
として、CPUコアは/sys/devices/system/cpu/cpuX/online
の値を1
で有効、0
で無効にできるCPUコアは最低1つ必要なのでcpu0/
にはonline
ファイルが存在しなかった。現状Intel CoreシリーズのPコアとEコアを任意で1つ有効化することはできなさそう。
今回の評価ではCPUコア数を1つから順に増やしてパケット処理性能がスケールすることを確認できればよかったので、以下のようにして一部のCPUコアを無効化した。
sudo echo 0 > /sys/devices/system/cpu/cpu1/online
コメント