zoukankan      html  css  js  c++  java
  • linux磁盘读写性能优化

    在LINUX系统中,如果有大量读请求,默认的请求队列或许应付不过来,我们可以
    动态调整请求队列数来提高效率,默认的请求队列数存放在/sys/block/xvda/queue/nr_requests 文件中,
    注意:/sys/block/xvda ,这里 xvda 写的是你自己的硬盘名,因我的是vps所以是xvda,有可能的参数是 sda hda....等等。
    如果你不清楚可以,fdisk -l查看一下自己的物理磁盘名称。

    [root@leda03 public_html]# fdisk -l

    Disk /dev/xvdd: 117 MB, 117549056 bytes
    255 heads, 63 sectors/track, 14 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Disk /dev/xvdd doesn't contain a valid partition table

    Disk /dev/xvda: 21.4 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
    /dev/xvda1   *           1          13      104391   83  Linux
    /dev/xvda2              14        2610    20860402+  8e  Linux LVM
     
    Centos系统


    查看磁盘的默认请求队列
    # cat /sys/block/xvda/queue/nr_requests
    128
    默认请求队列数为:128。
     
    现在我们来测试请求一个1G大小的文件:

    # time dd if=/dev/zero of=test bs=1M count=1000 
    1000+0 records in 
    1000+0 records out 

    1048576000 bytes (1.0 GB) copied, 60.2789 seconds, 17.4 MB/s
    real    1m0.553s

    user    0m0.043s 

    sys     0m6.363s


    由此看出,共花了1分55秒,现在把 nr_requests 的 128 改成 512 再试下:
    # echo 512 > /sys/block/xvda/queue/nr_requests 
    # cat /sys/block/hda/queue/nr_requests 
    512 

    # rm -f  test 
    # time dd if=/dev/zero of=test bs=1M count=1000 
    1000+0 records in 
    1000+0 records out 

    1048576000 bytes (1.0 GB) copied, 28.298 seconds, 37.1 MB/s
    real    0m28.787s
    user    0m0.040s
    sys     0m5.982s

    同样大小的文件,改成 512 后只需要 28  秒钟,由此可以结论出,通过适当的调整
    nr_requests 参数可以大幅提升磁盘的吞吐量,缺点就是你要牺牲一定的内存。

    建议:通过适当的调整nr_requests 参数可以大幅提升磁盘的吞吐量,缺点就是你要牺牲一定的内存。但是这个牺牲的比例,目前 我还没有一个比较严格的数字,所以大家还是要慎重的去更改为好,最后先做一个压力测试,再去进行更改。当然如果你服务器的内存很足,就不必有此顾虑了。
  • 相关阅读:
    SQL操作符的优化
    Oracle 模糊查询 优化
    Mysql中的语句优化
    SQL优化
    Pro Git读书笔记
    前端工程化
    前端工程化
    前端工程化
    前端工程化
    前端工程化
  • 原文地址:https://www.cnblogs.com/qmfsun/p/6116883.html
Copyright © 2011-2022 走看看