→ 1.ディスク編
2.メモリ編
ProxmoxVEには無数の設定の組み合わせがあり、公式Wikiなどの情報からベストプラクティスが得られる。但しどの程度の差があるのか等の情報は見当たらないため、各種ベンチマーク結果を記事にしてみた。
前提
ゲストOSの再インストールが必要な設定変更の検証は行わない。
環境は以下の通り
項目 | 内容 |
---|---|
ProxmoxVE バージョン | 6.4-6 |
マザーボード | ASRock AB350 Pro4 |
CPU | AMD Ryzen 5 1600 Six-Core |
メモリ | 16GB |
グラフィックボード | GeForce GTX 1050 Ti |
SSD | Samsung SSD 750 120GB |
HDD | WDC WD40EZRZ-00G |
ネットワークカード | Intel Corporation 82574L |
ゲストOS | Windows Server 2016 Essensial |
その他、開始時の設定
- ファイルシステムはext4。relatime付き。barrier解除は行っていない。ファイルシステムを壊してしまったことがあったのでやめました。
- 各種Vertioドライバーはインストール済み
- ゲストマシン用に物理ストレージを別で用意している
- 仮想マシンのディスクイメージはraw。qcow2より10%高速とのこと
Use raw disk image and not qcow2
Consider using raw image or partition for a partition, especially with Microsoft SQL database files because qcow2 can be very slow under such type of load.
結論
- キャッシュはHDDの場合、Write back
- キャッシュはSSDの場合、Write back(unsafe)
- SSDならSSD エミュレーションはON
- IO ThreadはON
- SCSIコントローラーはVirtio SCSI Single
- Barrier無効化は効果があるがリスク対効果を考えて設定
検証内容
Windows環境で各種ベンチマークソフトを動作させました。バックグラウンドで色々動作している可能性がありますので、ブレはあるかもしれません。
ストレージ編
キャッシュの設定
公式WikiによるとUnsafeが最もパフォーマンスが良い
https://pve.proxmox.com/wiki/Performance_Tweaks
HDD
既定(キャッシュなし)HDD
###### Direct sync HDD ###### Write through HDD ##### Write back HDD ##### Write back(unsafe) HDD --- ##### SSD ###### 既定(キャッシュなし)SSD ##### Direct sync SSD ##### Write through SSD ##### Write back SSD ##### Write back(unsafe) SSD 以降のベンチはWrite back(unsafe)で進めることにした ##### SSD エミュレーションを外した場合 劣化したので、以降のベンチはSSD エミュレーション有効に戻して実施 ##### IO Threadを外した場合 劣化したので、以降のベンチはIO Thread有効に戻して実施 ##### SCSIコントローラーをVirtio SCSI SingleからVirtio SCSIへ変更した場合 劣化したので、以降のベンチはVirtio SCSI Singleに戻して実施 ##### ホスト側でext4のBarrierを無効化した場合 一部向上。リスクがあるが、Barrier=0で今後はベンチを進める参考)Barrier解除の方法
fstabの各ディスクにoptionがあるので、「defaults,」の後ろあたりに追記する
vim /etc/fstab
UUID=e78ae19e-11d9-44b1-af70-2a9301ea5639 /mnt/ssd2 ext4 defaults,barrier=0,noatime,discard 0 0
ProxmoxVEのWikiによるとデフォルトの「キャッシュなし」はパフォーマンスと安全性のバランスに優れているとあるが、ベンチマークの結果を見るとWriteBackが良いのではないかと思う。
https://pve.proxmox.com/wiki/Performance_Tweaks#Disk_Cache