在加速運算執行個體上最大化網路頻寬 EFA - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在加速運算執行個體上最大化網路頻寬 EFA

若要將下列加速執行個體類型的頻寬最大化,您可以使用多個彈性網狀架構介面卡 (EFA) 介面。

  • P5 和 P5e 執行個體最高可支援 32 張網路卡,並可提供高達 3200 Gbps 的網路頻寬。

  • G6e 執行個體最多支援四張網路卡,並可提供高達 400 Gbps 的網路頻寬

如需開始使用GPU加速執行個體的詳細資訊,請參閱GPU執行個體的效能加速

我們建議您為每張EFA網路卡定義一個網路介面卡。若要在啟動時設定這些介面,我們建議您進行下列設定:

  • 對於網路介面 0,指定裝置索引 0

  • 對於網路介面 1 至 31,指定裝置索引 1

如果您使用 Amazon EC2 主控台,請在「啟動執行個體精靈」中選擇 網路設定」區段中的「編輯」。展開進階網路組態並選擇新增網路介面以新增所需數量的網路介面。對於每個網路介面 EFA,選取啟用。對於所有網路介面 (主要網路介面除外),針對裝置索引指定 1。視需要進行其餘的設定。

如果您正在使用 AWS CLI下,使用執行個體指令,對--network-interfaces,指定所需的網路介面數目。對於每個網路介面,針對 InterfaceType 指定 efa。對於主要網路介面,針對 NetworkCardIndex 和 DeviceIndex 指定 0。對於剩餘的網路介面,針對 NetworkCardIndex 指定從 1 至 31 的唯一值,以及針對 DeviceIndex 指定 1

下列範例命令程式碼片段顯示具有 32 個EFA網路介面的要求。

$ aws --region $REGION ec2 run-instances \ --instance-type p5.48xlarge \ --count 1 \ --key-name key_pair_name \ --image-id ami_id \ --network-interfaces "NetworkCardIndex=0,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=1,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=2,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=3,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=4,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=5,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=6,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=7,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=8,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=9,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=10,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=11,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=12,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=13,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=14,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=15,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=16,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=17,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=18,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=19,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=20,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=21,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=22,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=23,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=24,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=25,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=26,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=27,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=28,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=29,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=30,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=31,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" ...

如果您使用的是啟動範本,請在啟動範本中指定所需的網路介面數量。對於每個網路介面,針對 InterfaceType 指定 efa。對於主要網路介面,針對 NetworkCardIndex 和 DeviceIndex 指定 0。對於剩餘的網路介面,針對 NetworkCardIndex 指定從 1 至 31 的唯一值,以及針對 DeviceIndex 指定 1。下面的程式碼片段顯示了一個範例,其中包含可能的 32 個網路介面中的 3 個網路介面。

"NetworkInterfaces":[ { "NetworkCardIndex":0, "DeviceIndex":0, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true }, { "NetworkCardIndex": 1, "DeviceIndex": 1, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true }, { "NetworkCardIndex": 2, "DeviceIndex": 1, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true } ...

使用多個網路介面啟動 P5 或 P5e 執行個體時,您無法自動指派公用 IP 位址。不過,您可以在啟動網際網路連線後將彈性 IP 位址附加至主要網路介面 (NetworkCardIndex DeviceIndex=0, =0)。Ubuntu 20.04 及更新版本以及 Amazon Linux 2 及更新版本均設定為在執行個體按照本頁面上的建議啟動時,將主要網路介面用於網際網路流量。

若要在 G6e 執行個體上達到最高的網路效能,您可以使用IMDS對應連接的網路介面,並在脫離的網路執行個體上使用網路執行個體進行最佳化。 NetworkCardIndexes

下列範例指令碼會將附加的詳細資訊匯集在一起 NetworkCardIndexes。

$ TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X- aws-ec2-metadata-token-ttl-seconds: 21600") count=$(ls -l /sys/class/net/eth* | wc -l) for ((i = 0 ; i < ${count} ; i++)); do mac=$(cat /sys/class/net/eth$i/address) network_card=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" "http://169.254.169.254/latest/meta-data/network/interfaces/macs/$mac/ network-card") device_number=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" "http://169.254.169.254/latest/meta-data/network/interfaces/macs/$mac/ device-number") device_bdf=$(realpath /sys/class/net/eth${i}/device) echo "eth${i} ${network_card} ${device_number} ${device_bdf}" done