集群大小,缓冲区大小和数据包大小如何与性能相关?

我正在embedded式系统上创build一个服务器。 我有一个SD卡上的FAT文件系统,其中包含一个文件,该文件应该通过HTTP连接到系统的WiFi发送到某个客户端

起初,我试图逐字节读取文件,这是非常缓慢的。 为了改善文件阅读,我介绍了一个缓冲区。 我从文件读取到缓冲区,然后将缓冲区内容写入发送到客户端的stream:

file -> buffer -> network 

显然,有一些最佳的缓冲区大小,读取速度增加,而不会由于缓冲区膨胀而导致放缓。

我想提高数据传输率方面的总体performance。 目前我得到3Mbi / s太慢了。 我在控制缓冲区大小和集群大小。 我可以通过为这两个值做出正确的select来改善系统的性能吗?

  1. 缓冲区大小和簇大小是否理想相同? 一般来说,缓冲区大小应该是簇大小的整数倍(可能> 1)?
  2. 我是否应该以某种方式select这两者,以便与networking有效负载大小保持一致? (我对networking没有多less经验,也不知道是否有固定的有效载荷大小这样的事情)

如何决定这些尺寸以提高数据传输率?