我的 Amazon Elastic Compute Cloud (Amazon EC2) macOS 实例在调用、更新或呈现数据或运行应用程序时处理速度很慢。或者,我用 Amazon Elastic Block Store (Amazon EBS) 快照启动的 macOS 实例的性能很慢。
解决方法
检查您的 APFS 配置
基于 ARM 的 M1 和 M2 芯片等硅芯片设备使用 Apple 文件系统 (APFS)、高性能内核(P 核)和高效能内核(E 内核)来优化性能。这些设备使用 P 内核来处理仅消耗大量电能或资源的高强度工作负载。E 内核适用于要求较低的工作负载,以减少资源使用并处理轻型应用程序或 Web 浏览等任务。有关详细信息,请参阅 Apple 网站上的 Optimize for Apple Silicon with performance and efficiency cores。请直接使用 APFS 来优化您的工作站。有关详细信息,请参阅 Apple 网站上的 Tuning your code's performance for Apple Silicon。
启动实例时,选择符合您的性能要求的专属主机
在分配专属主机时,请确保选择最能满足架构需求的资源。使用 mac1 和 mac2 处理标准工作负载,使用 mac2-m1ultra.metal、mac2-m2.metal 和 mac2-m2pro.metal 来获得额外的处理能力。
启动实例时,选择符合您的性能要求的 Amazon EBS 设备
您的 Amazon EBS 设置会影响 APFS 的整体性能。作为 macOS 的默认文件系统,APFS 针对 SSD 存储进行了优化。因此,最佳做法是使用支持 SSD 的 EBS 卷,例如 gp3 或 io。或者,查看每种 EBS 卷类型以确定满足您的环境需求的卷。最佳做法是从使用 5000 IOPS 和 200 吞吐量的配置开始。
恢复实例后,初始化该实例以避免延迟加载
当您使用快照恢复 EBS 卷时,Amazon EBS 会从 Amazon Simple Storage Service (Amazon S3) 提取您的数据。Amazon EBS 预热磁盘时的初始化周期取决于磁盘大小、EBS 容量和数据类型。通过延迟加载,Amazon EBS 从快照中读取数据并根据需要进行恢复。如果您访问新启动的磁盘上卸载的数据,则会遇到高延迟。为避免延迟加载,请手动初始化卷并运行 fio 或 dd 命令:
fio --filename=/dev/device --rw=read --bs=128k --iodepth=32 -- ioengine=libaio --direct=1 --name=volume-initialize
**注意:**最佳做法是使用 fio。但是,如果您的设备上没有 fio,请使用 dd。
-或-
dd if=/dev/deviceName of=/dev/null bs=1M
**注意:**将 device 或 deviceName 替换为磁盘名称。
或者,使用快速快照恢复 (FSR)。
手动初始化过程可能需要几个小时,具体取决于磁盘大小和数据类型。但是,该过程比 Amazon EBS 初始化您的磁盘时要快。手动初始化完成后,磁盘已“预热”并可供使用。