昨天将一台机器上的数据转移(备份)到另一台机器上,花了差不多一个晚上,传输了100G左右的数据。
感觉数据源机器的硬盘越来越不行了,读写性能下降的很历害。
这些年来写软件的时候很少去考虑硬盘的读写性能优化,今天网上搜索了一些资料,看了一下,有一些收获。
往磁盘写文件,如何保证文件在物理磁盘上连续 就是没有磁盘碎片
之前写的一个软件,主要负责图片存储和展示,用户上传图片保存时会生成一个4KB左右的小图片,也就是缩略图。
之前我把原图和缩略图都保存在同一个硬盘分区下,并且图片上传的图片经常会删除一部分。
用户上传的原图一般大小在 1K - 2M,缩略图一般小于 4K,如果把原图和缩略图放在一起,经过一段时间后(写入、删除),会产生大量的碎片。
应该把大图存放在一个分区,比如:D盘,缩略图由于大小基本差不多,存放到E盘。
这样效果应该会好一些。
至于在多个线程下,每个线程都在写入文件,如何避免产生大量的文件碎片,谁能告诉我?
2014-03-06