本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Snowball 的性能
在接下来的内容中,您将了解有关 Amazon Snowball性能的信息。在这里,我们笼统地讨论性能,因为每个本地环境都有不同的做事方式——不同的网络技术、不同的硬件、不同的操作系统、不同的程序等等。
下表概述了网络的传输速率如何影响在 Snowball 中填充数据所需的时间。如果小文件未事先批处理成大文件即进行传输,则会因增加开销而减慢您的传输速度。
速率 (MB/s) | 42-TB 传输时间 | 72-TB 传输时间 |
---|---|---|
800 | 14 小时 | 1 天 |
450 | 1.09 天 | 1.8 天 |
400 | 1.16 天 | 2.03 天 |
300 | 1.54 天 | 2.7 天 |
277 | 1.67 天 | 2.92 天 |
200 | 2.31 天 | 4 天 |
100 | 4.63 天 | 8.10 天 |
60 | 8 天 | 13 天 |
30 | 15 天 | 27 天 |
10 | 46 天 | 81 天 |
以下内容介绍如何确定何时使用 Snowball 而不是通过互联网传输数据,以及如何加快从数据源到 Snowball 的传输。
加快数据传输速度
通常,您可以通过以下方式提高从数据源到 Snowball 的传输速度,按对性能的正面影响从最大到最小的顺序排列:
-
使用最新的 Mac 或 Linux Snowball 客户端 — 适用于 Mac 和 Linux 的最新 Snowball 客户端均支持 x86 指令集架构的高级加密标准新指令 (AES-NI) 扩展。此扩展可提高在 Snowball 与 Mac 或 Linux 工作站之间传输期间加密或解密数据的速度。有关 AES-NI (包括支持的硬件) 的更多信息,请参阅 Wikipedia 上的 AES 指令集
。 -
Batch 小文件-由于加密,每个复制操作都会产生一些开销。因此,相比传输大型文件中的相同数据,对独立文件执行多次传输可能会降低整体性能。您可以大大加快小文件的传输速度,方式是通过一个
snowball cp
命令批处理小文件。在导入 Amazon S3 的过程中,这些批处理文件会自动解压缩到其原始状态。有关更多信息,请参阅snowball cp 命令的选项: -
一次执行多个复印操作-如果您的工作站足够强大,则可以同时执行多个
snowball cp
命令。为此,您可以从单独的终端窗口运行每条命令,在 Snowball 客户端的不同实例中,所有命令都连接到同一 Snowball。 -
从多个工作站复制 — 您可以将单个 Snowball 连接到多个工作站。每个工作站可以托管一个单独的 Snowball 客户端实例。
-
传输目录,而不是文件 — 由于每条
snowball cp
命令都有开销,因此我们不建议您将大量的单个复制命令排入队列。排列许多命令会对传输性能产生严重的负面影响。例如,假设你有一个名为 C:\\ 的目录MyFiles ,它只包含三个文件,file1.txt、file2.txt 和 file3.txt。假设您发起以下三个命令。
snowball cp C:\\MyFiles\file1.txt s3://mybucket snowball cp C:\\MyFiles\file2.txt s3://mybucket snowball cp C:\\MyFiles\file3.txt s3://mybucket
在这种情况下,您的开销是使用以下复制命令传输整个目录的三倍。
Snowball cp –r C:\\MyFiles\* s3://mybucket
-
传输期间@@ 不要对文件执行其他操作 — 在传输过程中重命名文件、更改其元数据或在复制操作期间将数据写入文件会对传输性能产生显著的负面影响。我们建议您在传输文件时将文件保持静态。
-
减少本地网络的使用 — 您的 Snowball 通过本地网络进行通信。因此,减少 Snowball、它所连接的交换机以及托管数据源的工作站之间的其他本地网络流量可以提高数据传输速度。
-
消除不必要的跳跃 — 我们建议您设置 Snowball、数据源和工作站,使它们成为唯一通过单个交换机进行通信的机器。这样做可大大提高数据传输速度。
通过试验获得更好的性能
您的性能结果将因您的硬件、网络、文件数量和大小以及文件的存储方式而异。因此,如果您未获得理想的性能,建议您对您的性能指标进行试验。
首先,尝试多次复制操作,直到总体传输性能降低。执行多个副本操作可以立刻对您的整体传输性能产生显著的正面影响。例如,假设您正在一个终端窗口中运行单个 snowball cp
命令,并且您发现数据正在以 30 MB/秒的速度传输。您打开另一个终端窗口,并对要传输的另一组文件运行另一个 snowball cp
命令。您将看到这两条命令都以 30 MB/秒的速度执行传输。在此情况下,您的总体传输性能为 60 MB/秒。
现在,假设你从一个单独的工作站连接到 Snowball。您可以从该工作站运行 Snowball 客户端,对要传输的另一组文件执行第三条snowball cp
命令。当您查看性能时,您发现所有三个 snowball cp
命令实例的运行性能均为 25 MB/秒,总体性能为 75 MB/秒。在此示例中,虽然每个实例的性能已降低,但总体性能已提高。
按照这种方法使用加快数据传输速度中列出的技术进行试验,可帮助您优化数据传输性能。