磁盘 I/O 和大小性能

磁盘 I/O 和大小性能

我有一个进程需要执行大量磁盘写入但不需要读取。我可以写入大量小文件(~1,000,000,000 个文件,我目前正在执行此操作)或写入几个大文件。

小文件平均约为 2Kb,但由于我的块大小为 4096b,因此我的磁盘容量损失了大约一半。

但是,由于很多线程需要同时写入,大文件不会成为瓶颈吗?因为每个线程都需要打开文件、写入,然后关闭它?

总而言之,对于 I/O 和空间优化来说,哪个最好:

  • 很多小文件
  • 一些大文件

答案1

最简单的方法可能是写缓存确定频率实际的进行 HDD(或 SSD)写入。您可以在操作系统级别打开或关闭写入缓存,或尝试各种hd参数设置。这样无需更改应用程序即可进行调整。请参阅Unix StackExchange 上的调优

另一种可能性是写入 RAM 磁盘,并定期将数据移动到 HDD。

警告:增加写入延迟会增加数据丢失的可能性,但如果您使用的是带有 UPS 的笔记本电脑或 PC,这可能不是问题。

相关内容