http - 通过网络传输文件的最快方式是什么(FTP、HTTP、RSync 等)

标签 http networking file-upload ftp rsync

<分区>

我正在尝试找出在两个系统之间通过网络传输大量数据的最佳方式。我目前正在研究 FTP、HTTP 或 RSync,我想知道哪个最快。我在网上查找了一些答案并找到了以下网站:

问题是这些都是旧的,更多的是谈论协议(protocol)如何通信之间的理论差异。我对实际基准测试更感兴趣,可以说对于特定设置,当传输不同大小的文件时,一种协议(protocol)比其他协议(protocol)快 x%。

有没有人测试过这些并将结果发布在某处?

最佳答案

好的,所以我设置了以下测试:

  • 硬件:2 台台式机 Intel Core Duo CPU @ 2.33GHz,4G RAM。
  • 操作系统:两台机器上的 Ubuntu 11.10
  • 网络:100Mb 专用交换机,两台机器都连接到它。
  • 软件:

我将以下文件组上传到每个服务器:

  1. 1 个 100M 文件。
  2. 10 个 10M 文件。
  3. 100 个 1M 文件。
  4. 1,000 个 100K 文件。
  5. 10,000 个 10K 文件。

我在多次运行中得到了以下平均结果(以秒为单位的数字):

|-----------+---------+----------|
| File Size | FTP (s) | HTTP (s) |
|-----------+---------+----------|
|      100M |       8 |        9 |
|       10M |       8 |        9 |
|        1M |       8 |        9 |
|      100K |      14 |       12 |
|       10K |      46 |       41 |
|-----------+---------+----------| 

所以,好像FTP在大文件上稍微快一点,而HTTP在很多小文件上快一点。总而言之,我认为它们具有可比性,服务器实现比协议(protocol)重要得多。

关于http - 通过网络传输文件的最快方式是什么(FTP、HTTP、RSync 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9707900/

相关文章:

json - 在 Swift 中保存 http 请求的响应

networking - 如何从microk8s容器内部访问在主机操作系统上运行的Web服务器?

c# - DataAnnotations 的 FileExtensions 属性在 MVC 中不起作用

ruby-on-rails - Rails 验证错误后如何保留文件上传字段

java - 如何将图像从java-app发送到python?

java - 从外部应用程序登录 Content Navigator

python - 跨平台的 urllib 问题

php - PHP中如何上传多个文件

Apache 不在目录列表中显示 README.TXT 文件。我怎样才能启用它?

c# - 如何检测来自远程主机的连接关闭