NEW
通过 NVIDIA KvikIO 增强远程 IO 的数据处理 - Blockchain.News

通过 NVIDIA KvikIO 增强远程 IO 的数据处理

realtime news Feb 27, 2025 11:22

NVIDIA 的 KvikIO 提供高性能的远程 IO 功能,通过使用 S3 和 Azure Blob Storage 等对象存储服务优化云工作负载的数据处理。

通过 NVIDIA KvikIO 增强远程 IO 的数据处理

NVIDIA 推出了 KvikIO,这是一款专为优化使用对象存储服务(如 Amazon S3、Google Cloud Storage 和 Azure Blob Storage)的工作负载远程 IO 操作而设计的工具。据 NVIDIA 所说,这一创新尤其有利于在云环境中运行的数据密集型应用程序,在这些环境中有效的数据访问对于防止瓶颈至关重要。

了解对象存储

对象存储服务旨在管理和提供海量数据。然而,要有效利用这些服务,需要理解它们的行为,因为它们与传统的本地文件系统有很大不同。一个主要的区别是,与对象存储上的读写操作相关的延迟更高且更具可变性。

优化数据传输

为了提高数据传输速度,NVIDIA 建议将计算节点放置在靠近存储服务的位置,理想情况下是在同一个云区域内。这种设置最大限度地减少了网络延迟并提高了数据传输的可靠性,因为光速最终限制了数据传输速度。

文件格式和大小

使用云原生文件格式(如 Apache Parquet 和 Cloud Optimized GeoTIFF)可以显著提高数据访问效率。这些格式支持选择性地读取元数据和下载数据,减少不必要的数据传输。此外,优化文件大小——通常在几十到几百兆字节的范围内——可以通过分摊 HTTP 请求的开销进一步提高性能。

增强性能的并发性

并发性对于最大化远程存储服务的性能至关重要。通过发出多个并发请求,用户可以增加吞吐量,因为对象存储服务旨在同时处理大量请求。这种方法在使用 Python 的线程池或 asyncio 进行并行处理时尤其有效。

NVIDIA KvikIO 的优势

KvikIO 通过自动将大请求分块为较小请求并并发执行而脱颖而出。它还促进了向主机或设备内存的高效读取,尤其是在启用 GPU 直接存储时。基准测试表明,KvikIO 在从 S3 读取数据时,比其他库(如 boto3)取得了更高的吞吐量。

基准测试见解

性能基准测试表明,KvikIO 在从 S3 到 EC2 实例读取数据时可以实现令人印象深刻的吞吐量。例如,在 g4dn.xlarge EC2 实例上读取 1 GB 文件时,随着线程数的增加,吞吐量增加,直到达到最佳点。同样,任务大小调整会影响最大吞吐量,当任务大小既不太小也不太大时,性能最佳。

在涉及由 Dask 工作进程读取的 360 个 parquet 文件的场景中,KvikIO 实现了从 S3 到单个节点近 20 Gbps 的吞吐量,显示了其处理大规模数据操作的效率。

对于希望缓解基于云的工作流程中 IO 瓶颈的数据专业人士来说,NVIDIA KvikIO 提供了一个引人注目的解决方案。通过实施这些策略,用户可以显著提高数据处理速度和整体性能。

Image source: Shutterstock