1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > linux 分析磁盘性能 03.分析性能瓶颈 - 3.4.磁盘瓶颈 - 《Linux性能调优

linux 分析磁盘性能 03.分析性能瓶颈 - 3.4.磁盘瓶颈 - 《Linux性能调优

时间:2018-12-01 00:51:31

相关推荐

linux 分析磁盘性能 03.分析性能瓶颈  -  3.4.磁盘瓶颈  - 《Linux性能调优

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

磁盘子系统通常是服务器性能的最重要方面,是瓶颈问题的高发部件。但是,磁盘问题表现的有时候并不是那么直接,比如说可能是内存不足。如果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...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。