CentOS 7のovsとDPDKで使用するhugepagesを有効にしようとしています。GRUB_CMDLINE_LINUX
の/etc/default/grub
を編集しようとしました。以下のコードを参照してください。 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet hugepagesz=1G hugepages=16 hugepagesz=2M hugepages=2048 iommu=pt intel_iommu=on isolcpus=1-13,15-27"
grub2-mkconfig -o /boot/grub2/grub.cfg
:
ただし、再起動してcat /proc/cmdline
を発行した後、結果の出力に追加されたhugepageエントリが表示されません。 :
[root@localhost ~]# cat /proc/cmdline
---(
BOOT_IMAGE=/vmlinuz-3.10.0-327.36.3.el7.x86_64 root=/dev/mapper/centos-
root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb
quiet LANG=en_GB.UTF-8
[root@localhost ~]# grep Huge /proc/meminfo
:
何か足りませんか?
問題は、GRUBファイルの場所と、間違ったパスを使用していたことが原因であることがわかりました。
私はもともと使用しようとしました
grub2-mkconfig -o /etc/grub2.cfg
しかし、私は/boot/efi/EFI/centos/grub.cfgを使用するべきでした。 grubファイルへのパスとして。したがって、実際のコマンドは
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
これは、おそらくUEFIベースのシステムであるためです。 Centos wiki は、UFEIベースのシステムがデフォルトのgrubファイルへの異なるパスを使用すると述べています。
CentOS 7.4でも同じことを扱っていました。
あなたのケースで私が気付いた2つのこと:
hugepagesz
(1Gおよび2M)とhugepage
(16および2048)の2つのエントリがあります。それができるかどうかわかりません。
再起動する前に/etc/grub2.cfgに設定ファイルを生成しました:
grub2-mkconfig -o /etc/grub2.cfg
私の場合、 GRUB_CMDLINE_LINUX
in /etc/default/grub
の値は次のとおりです(1Gページ50)。
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet intel_iommu=on isolcpus=1,2,3,4,5,6,7,8,9,10,11 default_hugepagesz=1G hugepagesz=1G hugepages=50"
また、カーネルで必要なオプションが有効になっているかどうかを確認してください(これらについては DPDKマニュアル、セクション2.3.1 を参照):
grep <OPTION>= /boot/config-`uname -r`
CPUが1GBページをサポートしているかどうかを確認します(pdpe1gb cpuフラグを検索):
grep pdpe1gb /proc/cpuinfo
編集:メモリが適切にマウントされているかどうかも確認してください( DPDKマニュアル、セクション2.3.2.2 を参照)。