这完全取决于您是在进行顺序还是随机I / O,以及您需要/需要刷新到磁盘的频率......
对于今天的硬件,20 KB / s和100 KB / s都可以忽略不计。从CrystalDiskMark屏幕截图和您的担忧我怀疑您正在处理旋转磁盘......为什么不使用SSD?
在驱动器节流之前最大同时写入并变慢
这不是驱动器节流的问题,而是头部的物理运动需要时间来完成。对于随机I / O,随着每个写入块的大小缩小,写入之间的寻道时间增加,这会加剧。
让我们假设操作系统,文件系统或应用程序不是瓶颈的一部分
如果不知道文件系统在碎片和可用空间方面的状态,你就不能假设这一点,你肯定不能在产品或安装的整个生命周期中承担它。
如果您遇到性能问题,那么您将需要使用缓冲的I / O - 即:在将较大的块一次写入磁盘之前,写入文件实际上会将数据收集到缓冲区中。
写入100 KB / s持续10秒的时间可以作为以下任何一个(或更宽)呈现给存储器:
- 每10毫秒一块1 KB
- 每100毫秒一块10 KB
- 每1秒100 KB的块
- 每10秒一块1,000 KB
我们是在讨论常规(红色)还是不常见(绿色)?每种颜色将在同一时间帧内“ 写入 ”相同数量的数据。
一次编写更大的块将有助于吞吐量和文件系统碎片,但需要考虑权衡。
- 更少写入更大的块 - 将提高吞吐量,但需要更多RAM,并且在断电或崩溃的情况下,大部分数据将丢失
- 更频繁地编写更小的块 - 将降低吞吐量,但需要更少的RAM,并且在易失性存储器中保存的数据更少。
文件系统或操作系统可能会规定有关文件高速缓存写入磁盘的频率的规则,因此您可能需要在应用程序中管理此高速缓存...首先使用缓冲的I / O,如果不切断它,请查看情况。
让我们假装有1,000个用户以20KB /秒的速度上传1GB文件
用户可以在大约14.5小时内上传1 GB文件吗?所有问题都会导致失败(即:从头开始重新上传)。