> 文章作者:亚马逊云科技加油站/罗技123
亚马逊云的 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 大多数都是虚拟机,那么必然会用到各种各样的虚拟化技术,在早些的时间里用的是 Xen,后来使用了亚马逊自研的 Nitro 技术,据说是基于 KVM 做了一些修改。
那么,从 Xen 升级到 Nitro,需要开启一些设置,比如增强联网,EBS 优化还有安装 NVME 驱动,做完这些操作之后,才能把一个 Xen 实例的机型升级为 Nitro 机型。
### 增强联网
大多数虚拟机都有一个通病,因为所有东西都是虚拟化出来的,所以高负载的时候速度会比较慢,并且会消耗大量的主机 CPU。在 Vmware 和 virtualbox 上默认就是这中,每次网络测速都跑不满带宽,虚拟机和硬件之间始终隔着一层操作系统。
后来,亚马逊云推出了增强联网,其实也就是 SR-loV 技术。这个可以把物理硬件直通到虚拟机中而不再需要宿主机的转发,这种端到端的通信,就不会消耗大量的主机 CPU。
### EBS 优化
EBS 优化给实例分配了单独的带宽来连接 EBS,众所周知 EBS 是通过网络与实例挂载的,而每个实例类型都有不同的网络带宽。那么在没有优化的情况下,EBS 就会和应用负载共享带宽,如果恰好当时的磁盘吞吐量比较高,那么应用的网络是一定会受到波动的。在开启 EBS 优化之后,就可以分给 EBS 单独的带宽,这样无论磁盘负载,都不会对实例的网络进出造成影响。
在大多数常用的机型中,EBS 优化是免费的,而且 Nitro 实例默认支持这个功能,少部分实例支持这个功能但是需要额外收取费用。
### NVME 驱动
想要获得 NVME EBS 全部的性能,也需要单独安装驱动程序。
对于 windows 来说:
```
Invoke-WebRequest https://s3.amazonamazon.com/ec2-windows-drivers-
downloads/NVMe/Latest/AmazonNVMe.zip -outfile \$env:USERPROFILE\\nvme_driver.zip
Expand-Archive \$env:userprofile\\nvme_driver.zip -DestinationPath
\$env:userprofile\\nvme_driver
.\\install.ps1 -EnableSCSIPersistentReservations \$true
```
对于 Linux,
```
sudo apt-get update -y
sudo apt-get install --only-upgrade -y linux-amazon
sudo reboot
```
这个 linux-amazon 的除了会安装 NVME 驱动之外,也会安装增强联网的 ENA 驱动。
### 参考
1. 增强联网:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/enhanced-networking-ena.html?trk=cndc-detail
2. EBS 优化:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ebs-optimized.html?trk=cndc-detail
3. NVME 驱动 for windows:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/aws-nvme-drivers.html?trk=cndc-detail
4. NVME 驱动 for linux:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html#install-nvme-driver?trk=cndc-detail
[![5.png](https://dev-media.amazoncloud.cn/ad1e4fab145844f490968eb0dc855f0d_5.png "5.png")](https://summit.amazoncloud.cn/2024/register.html?source=DSJAVfG2GS7gEk2Osm6kYXAa+8HnSEVdbCVjkuit7lE= )