Proxmox VEの省電力機能に関する設定。PVEっていうかLinuxのお作法ですな。
標準で性能重視の電力チューニングとなっているところを、省電力重視に変更する。
PVE 7もといLinux kernel 5.7からintel_pstate CPUドライバが大きく変わり、hardware-managed P-states (HWP)の有無でガバナーの挙動が変化する。
HWP有効の場合、intel_pstateはアクティブモードでの動作となり、intel_pstate自体がCPUステートの調整を行う。スケーリングガバナーはCPUfreqが定義する値が有効だが一部挙動が異なり、例えばpowersaveガバナーはondemandガバナーに似た挙動となる。
HWP無効の場合、intel_pstateはパッシブモードとして動作し、その実、intel_cpufreqドライバーが動いている。powersaveガバナーが最も消費電力を抑えられるが、動作周波数が最低に固定されてしまう。実用上はondemandあたりにしておくのが良さそう。
echo ondemand | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
cpupower
コマンドで、CPUの電力ポリシーを設定する。PVEに最初から入っているコマンドではないので、yumでインストールのこと。
cpupower set -b 15
数値は0~15が指定可能で、0の方が性能優先、15の方が省エネ優先となる。処理負荷に対してCPUのクロック(やステート、電圧)をどの程度鋭敏に追従させるかの指定と思われる。数値が大きいほど消費電力の上昇は抑えられるが、その分、レスポンスが悪くなるのでバランスを見て適切な値にするのが良い。
SATAの信号リンクまわりの省電力設定。
echo min_power | tee /sys/class/scsi_host/host*/link_power_management_policy
使える値は min_power, medium_power, max_performance で、意味は名前のとおり。PVEのデフォルトはmax_performanceだった。
うちの環境では思いのほか効果があり、アイドル時で5~10W程度削減できた。
NVMe SSDの省電力設定ASPT1)の設定。
ドライブが対応している必要がある。対応してれば、以下のコマンドのように応答があるらしい。
# nvme get-feature /dev/nvme[0-9] -f 0x0c -H get-feature:0xc (Autonomous Power State Transition), Current value:0x000001 Autonomous Power State Transition Enable (APSTE): Enabled ...
うちのドライブは対応してないので未設定。
PCI-Expressの省電力設定ASPM2)の設定。
システム/デバイス/カーネルが対応している必要がある。調べてみると、問題が見つかってカーネルではデフォルト無効という情報が出てくるが、現在はどうなっているか不明。
システムの有効状況はdmesgで確認できる。
$ dmesg | grep ASPM [ 0.682087] acpi PNP0A03:02: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3] [ 0.697841] acpi PNP0A03:03: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3] [ 0.749473] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3] [ 0.779408] pci 0000:00:03.2: ASPM: current common clock configuration is broken, reconfiguring [ 0.788812] pci 0000:06:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force' [ 0.791668] acpi PNP0A08:01: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]
デバイスの状況はlspciで。
# lspci -vvs 01:00.0 01:00.0 Ethernet controller: Mellanox Technologies MT27520 Family [ConnectX-3 Pro] Subsystem: Mellanox Technologies MT27520 Family [ConnectX-3 Pro] (Mellanox Technologies ConnectX-3 Pro Stand-up dual-port 40GbE MCX314A-BCCT) Physical Slot: 1 ... Capabilities: [60] Express (v2) Endpoint, MSI 00 ... LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+ ★これ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- ...
現在の自分の環境では、有効なのか無効なのか正直なところ分からない。少なくともConnectX-3がASPM無効で動いていることだけは間違いない。