美文网首页
转载:如何提升磁盘IO性能

转载:如何提升磁盘IO性能

作者: 微微笑_198111 | 来源:发表于2019-01-05 11:27 被阅读0次

目前,磁盘是机械操作的,主要是在读取和写入磁盘之前查找磁道的过程中。磁盘附带的读写缓存大小对磁盘读写速度至关重要。具有快速读写的磁盘通常具有较大的读写缓存。磁盘的查找过程是机械的,它确定其随机读写速度将明显低于顺序读写。当我们进行系统设计和实现时,我们需要考虑磁盘的这个特性。

FastDFS是一个开源且高效的分布式文件系统。它的初始实现,文件以散列模式随机分布到多个目录,后来又添加了顺序存储实践。通过比较测试,发现文件按目录顺序存储,写文件的效率明显高于目录随机存储的效率。

目前,磁盘顺序读取的速度还不错。例如,普通硬盘的IO可以达到每秒40~60MB,更好的硬盘可以达到每秒100MB左右。在多进程或多线程并发读取磁盘的情况下,随着并发数量的增加,磁盘IO效率将大大降低。主要是因为每次读取和写入,轨道可能具有大的偏移,并且轨道寻址时间增加,导致磁盘IO的性能急剧下降。对于此方案,优化方案是最小化并发读取和写入的进程或线程的数量。您可以使用锁定机制或专用磁盘IO线程来读取和写入磁盘。在FastDFS 2.x版本中,磁盘读取和写入是使用专用线程完成的。

为了充分利用多个磁盘的效率,建议不要使用传统的RAID方法。一个好的做法是分别安装每个磁盘,并通过程序控制多个磁盘的并发读写。使用单个磁盘安装,可以使用多台计算机实现文件备份和冗余。

在大量文件(例如数千万个文件)之后,当随机访问许多文件时,文件系统的性能将急剧下降。业界流行的做法是通过将多个小文件组合成一个大文件来减少文件数量。 FastDFS 3.0支持将多个小文件合并和存储到一个大文件中。发展进度相对平稳。预计3.0版将于5月发布。

改进磁盘IO的另一个技巧是尽可能多地写入或尽可能多的读取。换句话说,将程序的读写缓冲区设置得尽可能大。例如,日志或重做日志写入,不是每次都直接写入磁盘,而是先缓存到内存中,然后在缓冲区满时写入磁盘,也可以定期写入磁盘。

操作系统和C库函数通常会缓存写入文件的内容,以减少实际写入文件的次数。直接调用系统函数fsync或C函数fflush将使系统的缓存机制无效,这将强制将内容刷新到磁盘。除非必要,否则不要执行强制刷牙操作。如果在操作过程中不慎将重要的数据弄丢了,可以用闪灵数据恢复找回数据;如果有重要的资料不希望别人进行查看等操作,可使用闪灵文件夹锁进行加锁。

相关文章

  • 转载:如何提升磁盘IO性能

    目前,磁盘是机械操作的,主要是在读取和写入磁盘之前查找磁道的过程中。磁盘附带的读写缓存大小对磁盘读写速度至关重要。...

  • ClickHouse性能提升 -- SQL使用规范

    不要用select * 反例: 正例: 理由:只查询需要的字段可以减少磁盘io和网络io,提升查询性能 不要在大结...

  • JavaWeb之四——IO调优

    磁盘IO调优 网络I/O调优 磁盘IO调优 性能检测 注: IO wait= (cpu idle time)/(a...

  • 并发写大文件的优化

    优化思路 1. 让磁盘IO和网络IO时间重叠 见【性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百...

  • 2018-11-05

    10.6监控io性能 iostat -x 磁盘使用 iotop 磁盘使用 yum install -y sysst...

  • 监控io性能、free、ps、查看网络状态和linux抓包工具

    监控io性能、free、ps、查看网络状态和linux抓包工具 一、监控io性能 1、iostat -x 磁盘使用...

  • 关于磁盘io性能

    计算机主要由CPU、总线、I/O设备、内存、硬盘等组成,见下图: cpu由控制器(CU)和运算器(ALU)组成,相...

  • 性能分析--磁盘IO

    iostat命令产生三类数据报表: cpu使用率、设备使用率、网络文件系统使用。下面先看一下前面两个数据指标的定义...

  • B树 B+树 B*树 Tire树 skiplist

    这些树主要用于提升磁盘IO的效率,磁盘IO一般以磁盘页为单位,树上每个节点对应一个磁盘页,使用二叉查找树会增加IO...

  • 跟踪IO请求

    1 目的 跟踪IO请求,分析磁盘读写性能瓶颈 2 工具 2.1 磁盘 geometry 2.2 读写请求 打开裸块...

网友评论

      本文标题:转载:如何提升磁盘IO性能

      本文链接:https://www.haomeiwen.com/subject/ryjrrqtx.html