web-dev-qa-db-ja.com

CentOS 7の起動時にHugepagesを有効にする

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

---(enter image description here

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

hugepages values

何か足りませんか?

4
esigenesis

問題は、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ファイルへの異なるパスを使用すると述べています。

3
esigenesis

CentOS 7.4でも同じことを扱っていました。

あなたのケースで私が気付いた2つのこと:

  1. hugepagesz(1Gおよび2M)とhugepage(16および2048)の2つのエントリがあります。それができるかどうかわかりません。

  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 を参照)。

1
kubouch