マシンの割り当てが不足している場合は、メモリ消費量が多いとプロセスが停止します。このような場合は、コンテナに割り当てられたメモリを増やす必要があります。このセクションでは、コントローラをホストする仮想マシンに、より多くのメモリを割り当てる手順について説明します。
次に、NSX Advanced Load Balancer のベアメタル展開用にコントローラのメモリを増やす手順を示します。
前提条件
VMware 上の CentOS 仮想マシン (v7.6) で実行されているコントローラを使用してベアメタルを設定します。
手順
- コントローラをホストしている仮想マシンに、より多くのメモリを割り当てます。
- avicontroller.service ユニット ファイルを編集して、/etc/systemd/system にあるメモリを次のように割り当てます。
ExecStartPre=/usr/bin/docker run --name=avicontroller -m *Enter the new memory value here* --cpu-period=100000 --cpu-quota=600000 -p 5098:5098 -p 8443:8443 -p 5054:5054 -p 80:80 -p 443:443 -p 161:161/udp -d --privileged -e "CONTAINER_NAME=avicontroller" -e "MANAGEMENT_IP=*Mgmt ip*" -e NUM_CPU=6 -e NUM_MEMG=14 -e DISK_GB=20 -e CNTRL_SSH_PORT=5098 -e SYSINT_PORT=8443 -e HTTP_PORT=80 -e HTTPS_PORT=443 -v /:/hostroot/ -v /dev:/dev -v /var/run/docker.sock:/var/run/docker.sock -v /opt/avi/controller/data:/vol/ avinetworks/controller:18.2.2-9224-20190306.090737
上記のコードでは、そのために「-m」値を変更する必要があります。たとえば、24 GB のメモリを割り当てる場合は、「-m」を「24g」に置き換えます。
- ファイルを保存します。
- ファイルの保存後、systemctl daemon-reload コマンドを実行して、編集したファイルをロードします。
- systemctl restart avicontroller コマンドを使用して avicontroller.service を再起動します。
結果
再起動後、コントローラは新しいメモリが割り当てられた状態で更新されます。
注:
コントローラに追加する前に、ホスト マシンにメモリが追加されていることを確認します。大量のメモリ割り当てと空き容量が原因で、メモリが断片化された状態でサービス エンジンがホスト上で起動しようとすると、十分な連続したメモリ ブロックが使用できないためにアサートが発生する可能性があります。サービス エンジンの自動リカバリ コードによってホストが再起動され、この状況から自動的にリカバリします。
例
ディスク サイズの拡張前:
ディスク サイズの拡張後:
ディスク容量を増やすには、ユニット ファイル内の DISK_GB メトリックを変更します。CPU コアの数を変更することもできます。
コントローラ コンテナは、avicontroller.service ファイルからの NUM_MEMG パラメータからメモリを読み取ります。この場所は、/etc/systemd/system です。