赞
踩
最近一段时间的项目进入阶段性收尾,项目中由于遇到了数据需要落地的场景,因此,便需要好好整理一下。这里从几个问题开始:
1、对于传统的机械硬盘,如何让写磁盘速度更快?如何了解自己是否已经达到最优?
2、多进程写文件的时候,如何保证文件有序?
3、只有一个磁盘,多进程写文件的时候,是同时写到一个文件更快,还是多个进程写到多个文件,总体IO效率更高?
4、在某些对数据严格要求安全的场景下,有什么常用方案保证数据落地的安全?
5、写一段磁盘内容,有没有其他方式可以加速?
问题1:对于传统的机械硬盘,如果写磁盘速度更快?如何了解自己是否已经达到最优?
对于这个问题,我先插一段自己对于技术价值的理解。对于一个有志成为业界一流水准的工程师而言,你必须有一个思维方式:做事的时候,知道事情的边界在哪里,那你做起事来,便知道何事可为,何事不可为之。不至于把时间花在一些不可能的事情上。例如:对于把一堆数字排序的问题而言,计算机理论上已经能够证明出来,O(nlogn)已经是理论极限,那你就不应该想着去发明一种比快排更快的排序方法。对于数据传输而言,香农定理已经给出了传输速率的极限值,那我们而言,只能往着这个方向去接近,而不要想着去超越。
回到这个问题,我们首先应该做的是,先了解磁盘的物理特征,就是他的物理极限值是多少,那我们就对于我们的应用程序能做到什么水平,心里大概有个底。而不至于应用程序写效率到达100M/s的时候,你无法直观的感觉到,这到底是快,还是慢?
机械硬盘的读写,物理上是通过一个磁头来寻找磁道,并把数据写到磁盘上。其中,最耗时的操作便是寻找扇区的时候,这时候,自己应该有一个经验值,那就是毫秒级别。具体可以看一个博客,里面有分析磁盘的一些物理特征。磁盘IO那些事儿
从磁盘的物理特征可以看出来,磁盘最擅长的操作是顺序读写操作,因为磁头可以连续读,而不需要进行来回切换寻找磁道。这是我们面对磁盘IO工程问题中,最核心的思路。这是关于问题1中,我的理解。
那如何简单快速的测试磁盘的写速度能达到多少呢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。