Optimization Tips | Tip #21: Minimize disk access

原版书 <<50 Tips and Tricks for MongoDB Developers>>   地址:http://oreilly.com/catalog/0636920019893

皮皮书屋下载地址:http://www.ppurl.com/2011/05/50-tips-and-tricks-for-mongodb-developers.html

本书的所有翻译地址: http://blog.csdn.net/crazyjixiang/article/category/858638

翻译目的MongoDB资料国内很少,书就更不必说了,借助对MongoDB的理解为大家做点贡献,如果有翻译有误的地方请指正,不能误入子弟,谢谢!

译者: Crazybaby 


对Tip# 22 翻译如下:

      从内存中访问数据是非常快的,相对而言从磁盘中访问数据是相当慢的.所以,最优化最大限度的基本方式是减少磁盘的访问.
模糊数学
      从磁盘中读取比从内存读取速度慢(约)一百万次.
      大多数旋转磁盘驱动器可以在10毫秒访问,也就是说,内存只需要10纳秒就可以返回.(这取决于你有什么样的硬盘驱动器,和你有什么样的内存条,但我们会做一个非常广泛的概括,多很多人来说是准确的.)这意味着磁盘的时间和RAM之比是1毫秒比1纳秒.1毫秒等于1百万纳秒,所以访问磁盘花费大约长于RAM的一百万次.因此,读磁盘需要花费很长的时间在计算方面.
    在Linux上,你可以通过运行sudo hdparm -t /dev/hdwhatever测量你的机器顺序磁盘访问的性能.这个不需要给你一个准确的测量结果.由于MongoDB是做随机读写,但是有趣的是能看到你的机器可以做什么.

所以,对此我们可以做些什么?这里有一些简单的结论:

使用SSDs(固态硬盘) 

     固态硬盘的速度在很多事情上远远超过旋转磁盘,但是他们依然很小,价格很贵,很难安全的擦除,而且速度仍然不接近内存读写.当然这不妨碍你使用它们,它们和MongoDB一起工作很好.但是它们仍然不是神奇的万灵药.

增加更多内存
     增加更多内存意味着你不得更少的访问磁盘,然而,在某方面增加内存可以这样到目前为止.你的数据不会在RAM容不下.

     问题是:我们怎么存一百万兆字节在磁盘上,一个应用程序从硬盘到内存怎么尽可能少移动数据?
如果你实时的随机访问你的数据,你只需要一个很大的内存,然后,需要应用程序不需要.最近的数据访问较久的数据,某些用户比其它人更活跃,某些区域拥有比别人更多的客户.像这些应用程序可以被保存在内存中的,减少磁盘的访问.





原文链接: http://blog.csdn.net/crazyjixiang/article/details/6680381

你可能感兴趣的:(Optimization Tips | Tip #21: Minimize disk access)