s3fs 是否使范围请求为每个文件默认为 10mb 大小?此外,我使用来自 s3fs 的数据训练了一个模型,因此与 ebs 相比的时间随纪元数线性增加。为什么会这样?
默认情况下,s3fs 会发出范围请求。 您可以通过运行发出 HTTP 请求和响应的s3fs -f -o curldbg
来观察这一点。 40MB 文件的示例输出:
> GET /filename HTTP/1.1
Range: bytes=131072-10616831
< HTTP/1.1 206 Partial Content
< Content-Range: bytes 131072-10616831/40776154
> GET /filename HTTP/1.1
Range: bytes=10616832-21102591
> GET /filename HTTP/1.1
Range: bytes=31588352-40776153
> GET /filename HTTP/1.1
Range: bytes=21102592-31588351
< HTTP/1.1 206 Partial Content
< Content-Range: bytes 21102592-31588351/40776154
< HTTP/1.1 206 Partial Content
< Content-Range: bytes 31588352-40776153/40776154
< HTTP/1.1 206 Partial Content
< Content-Range: bytes 10616832-21102591/40776154
> GET /filename HTTP/1.1
Range: bytes=0-131071
< HTTP/1.1 206 Partial Content
< Content-Range: bytes 0-131071/40776154
请注意,请求是无序发出的。
对于您的使用案例,s3fs 可能比 EBS 慢;s3fs 适用于批量数据传输,但不适用于随机访问。