磁盘瓶颈磁盘瓶颈性能调优选项

磁盘子系统通常是服务器性能的最重要方面,是瓶颈问题的高发部件。但是,磁盘问题表现的有时候并不是那么直接,比如说可能是内存不足。如果CPU周期浪费在等待I/O任务完成,应用程序可能被认为是I/O密集型。

最常见的磁盘问题是磁盘太少。大多数磁盘配置是基于容量需求,而非性能。最廉价的办法可能是购买大空间磁盘。然后,这样每张盘上都存放了更多的用户数据,磁盘上会产生更大的I/O速度和风险。

第二常见的问题是在一个整列中划分太多的罗辑分区,会增加寻道时间,降低性能。

找到磁盘瓶颈

服务器表现出如下的症状,可能是磁盘出现了瓶颈:磁盘慢的表现:内存缓冲中填满了写数据(或者在等待读数据),因为没有可用的空闲内存缓冲供写(或者是在等待磁盘队列中的读数据响应),拖慢了所有请求。

内存不足,在没有可以为网络请求分配足够内存缓冲的时候,会产生同步磁盘I/O。

磁盘或者控制器使用率变高。

大多数网络传输都是在磁盘I/O完成之后。表现形式为极长的响应时间和非常低的网络利用率。

磁盘I/O花费相当长的时间,并且磁盘队列变满,因为处理请求时间变长,所以CPU利用率变得很低。

磁盘子系统可能是最难配置的子系统。除了查看磁盘接口速度和磁盘容量,还要理解磁盘负载。访问磁盘是随机的还是顺序的?I/O是大还是小?为了充分利用磁盘,需要回答上面的这些问题。

厂商会一般会给你展示它们设备的吞吐量上限。但是,花时间来了解你的工作负载吞吐量将会帮你找到你所需要的磁盘子系统。

下表展示不同驱动在8KB I/Os下的真实吞吐。磁盘速度延时寻道时间完全随机访问时间单盘每秒I/O8 KB I/O的吞吐15000 RPM2.0 ms3.8 ms6.8 ms1471.15 Mbps

10000 RPM3.0 ms4.9 ms8.9 ms112900 KBps

7200 RPM4.2 ms9 ms13.2 ms75600 KBpsa. 如果处理命令 + 传输数据 < 1ms,完全随机访问 = 延时 + 寻道时间 + 1ms

b. 以1/随机访问时间为吞吐量。

随机读写负载通常需要多个磁盘决定。SCSI或者光纤的带宽不太要关注。大量随机访问负载的数据库最好有多块磁盘。大的SMP服务器最好配置多块磁盘。通常磁盘可以简单的平均划分为70%的读和30%的写,RAID10的性能比RAID5要高出50%到60%。

顺序读写需要看重磁盘子系统的总线带宽。需要最大吞吐量的时候,需要特别关注SCSI总线或者光纤控制器的数量。在阵列中,为每个盘指定相同的数量,RAID-10、RAID-0和RAID-5的读写吞吐流很相似。

分析磁盘瓶颈的办法:实时监控和跟踪.在问题发生的时候一定要做实时监控。在动态系统负载和问题不可重现的情况下,这可能是不实际的。然而,如果问题是可重现的,通过这个办法就可以增加对象和计数器使问题更清晰。

跟踪是通过收集一段时间的性能数据来诊断问题。这是远程性能分析的好办法。缺点是在问题不可重现的时候,需要分析大量的文件,如果没有跟踪到所有的关键对象和参数,必须等待下一次问题出现来获取额外的数据。

vmstat命令

跟踪磁盘的一种办法是使用vmstat工具。vmstat中关于I/O最重要的列是bi和bo。这两个字段监控了各个时刻进出磁盘的块。设置了基线就可以找到随着时间的变化。

iostat命令

在反复同时打开、读、写、关闭太多文件的时候可能遇到性能问题。这可能会以寻道时间(把磁头移动到数据存储位置的时间)变长的现象表现出来。使用iostat工具,可以监控I/O设备的实时负载。不同的选项可以帮你挖掘到更深更多有用的数据。

下图展示了在/dev/sdb1设备上潜在的I/O瓶颈。输出显示平均等待时间(await)是2.7秒,服务时间(svctm)是270ms。

更多字段的详细信息,参考iostat(1)的man手册。

下一章中会有如何修改elevator算法和avgrq-sz(average size of request,平均请求大小),以及qvgqu-sz(average queue length,平均队列长度)的内容。修改elevator设置使得延时变低,avgrq-sz会变小。 通过监控rrqm/s和wrqm/s的变化,可以看出调优对磁盘能管理的读写合并数产生的影响。

性能调优选项

在确定磁盘子系统瓶颈之后,有如下可能的解决方法:如果负载是顺序的,压力在控制器带宽上,办法就是添加更快的磁盘控制器。然而,如果负载是随机的,瓶颈可能在磁盘上,增加更多多的磁盘可以帮助增加性能。

在RAID中添加更多的磁盘,把数据分散到多块物理磁盘,可以同时增强读和写的性能。增加磁盘会提升每秒的读写I/O数。另外,请使用硬件RAID而不是Linux提供的RAID软件。如果是硬件RAID,RAID级别对操作系统是不可见的。

考虑使用Linux逻辑卷分区,而不是没有分区的单块大磁盘或者逻辑卷。

把处理负载转移到网络中的其它系统(用户,应用程序或者服务)。

添加RAM。添加内存会提升系统磁盘缓冲,增强磁盘响应速度。

linux 分析磁盘性能,03.分析性能瓶颈 - 3.4.磁盘瓶颈 - 《Linux性能调优指南》 - 书栈网 · BookStack...相关推荐

  1. linux tcp压测工具,02.监控和压测工具 - 2.4.压测工具 - 《Linux性能调优指南》 - 书栈网 · BookStack...

    压测工具其它有用工具 在这里,我们会讨论主要的压力测试工具,选择合适的压测工具,才能准确衡量系统性能.好的压测工具有很多,可能的功能如下: 发起压力 监控性能 监控系统使用率 生成报告 基准测试无非就 ...

  2. python3内存分析_调试和分析 - tracemalloc —- 跟踪内存分配 - 《Python 3.7 标准库》 - 书栈网 · BookStack...

    tracemalloc -- 跟踪内存分配 3.4 新版功能. The tracemalloc module is a debug tool to trace memory blocks alloca ...

  3. spark 相关性分析_基本统计 - correlations(相关性系数) - 《spark机器学习算法研究和源码分析》 - 书栈网 · BookStack...

    相关性系数 计算两个数据集的相关性是统计中的常用操作.在MLlib中提供了计算多个数据集两两相关的方法.目前支持的相关性方法有皮尔森(Pearson)相关和斯皮尔曼(Spearman)相关. Stat ...

  4. Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...

    源码分析相关面试题 Activity相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试题 与人事相关面试题现在三四月份,金三银四最好找工作时间, ...

  5. linux atop日志查看,A - atop - 监控Linux系统资源与进程的工具 - 《Linux命令大全搜索工具(旧版)》 - 书栈网 · BookStack...

    atop 监控Linux系统资源与进程的工具 补充说明 [非内部程序,需要安装]它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU.内存.磁盘和网络)使用情况和进程运行情况,并能以日志 ...

  6. linux mint 硬件配置,安装 - 硬件设置 - 《Linux Mint 学习笔记》 - 书栈网 · BookStack...

    硬件配置 tags: 驱动 安装完成之后,需要做必要的硬件配置. 功能设置 触摸板 "开始菜单" -> "系统设置" -> "鼠标和触摸板 ...

  7. px4 uavcan linux,UAVCAN总线 - UAVCAN固件升级 - 《PX4开发指南》 - 书栈网 · BookStack

    UAVCAN 固件升级 电子调速器(ESC)矢量控制代码库 (Pixhawk ESC 1.6 and S2740VC) 下载ESC代码: git clone https://github.com/th ...

  8. ucore和linux区别,附录 - 附录A—ucore历史 - 《操作系统的基本原理与简单实现》 - 书栈网 · BookStack...

    ucore历史 写一个教学OS的初衷是陈渝老师和向勇老师想参考MIT的xv6/JOS开发一个能够与OS课程教材相配套的OS实验环境.没有直接采用xv6/JOS的原因是当时(2008年)xv6没有完整的 ...

  9. 国产数据库清单;微盟《生产环境和数据恢复》;TiDB招聘;Oracle备份还原指南、GaussDB性能调优指南……墨天轮数据库周刊-第5期

    热门资讯 1.国产数据库清单(2020年第1季度)发布! modb.pro/db/22488 [摘要]本文统计了国产数据库产品清单,共58个产品仅供参考,同时在清单下方简单整理了各产品的基本介绍.应用 ...

最新文章

  1. php imap 安装_linux 下安装PHP的IMAP扩展实现邮件收发
  2. 数据库设计之从0到1 教你如何设计E-R图
  3. feedback from waic
  4. Matlab---傅里叶变换---通俗理解(一)
  5. File类获取功能的方法
  6. c语言学生成绩查询课设报告,C语言课设报告(学生考试成绩查询程序)【荐】.doc...
  7. 重磅!Vue3.0终终终于要来了!
  8. Linux进程列表巧用,Linux下的进程分析–PS
  9. Luogu P2066 机器分配(dp)
  10. 【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】
  11. 位运算(异或运算) :数组中数字出现的次数
  12. xshell 输入w 命令后报错 66 column window is too narrow
  13. Java入门到精通全教程
  14. 苹果手机清灰_手机听筒喇叭声音越来越小?来试试这三个小技巧
  15. Iperf官方andriod版iperf3
  16. nginx修改主目录、主页
  17. 被中国家长摧残的十种优秀儿童品质
  18. 英语关于计算机游戏作文,沉迷网络游戏的英语作文(精选5篇)
  19. 写代码赚钱的一些门路
  20. 组织要为每一个员工赋能

热门文章

  1. 记录理解程度、一篇至少读3遍,吴恩达建议这样读论文
  2. 子网掩码 以及 子网数为什么减去全0和全1
  3. python保存到固定文件夹的存储路径不能直接复制!
  4. 北大博士整理B站实战项目!yyds!
  5. OpenCV中图像形态学操作
  6. 第十二篇:形式语言理论与有限状态自动机
  7. Xcode10:Implicit declaration of function '' is invalid in C99
  8. 四则运算 3.0 结对
  9. 138.ssm 框架下 导出Excel
  10. Android逆向之路---Faceu的登录功能真的只提交了用户名和密码吗