目前web的应用大多都以I/O密集型为主,而存储技术的发展远没有计算机中其他系统发展迅速,尽管也有不少高端存储设备,但是价格的昂贵,不是一般大众能享受的起的。而基于现状更多是我们使用一般SAS盘结合应用使用不同的RAID组合,来实现我们平民化存储,为了得到更好的性能,那么和I/O相关的调整优化是必不可少的。
对于我们数据库调优来说,磁盘io优化是首屈一指的调优重点,我们都知道木桶原理,短板绝对整体的好坏,而数据库系统中这个短板正是由于我们使用的硬件设备里最弱的磁盘所导致。很多时候,我们会发现系统中io累得要死,而CPU却在那里空闲等待,主要是由于io执行响应时间太长,处理读写的速度远远赶落后于CPU的处理速度,这时我们会尽可能的让操作放到内存中进行,由磁盘与CPU的关系,转变成内存与CPU的关系。但是,我们始终不能回避磁盘io的弱点,优化是必须的。
对于数据库在日常应用中的特点,我们可以有很多想法。
1. 随机读写的负载可以通过增加硬盘的个数实现扩展。
2. 对于顺序读写带来的压力,可以通过选择带宽相对高一些的磁盘来解决。
3. RAID 5和RAID 10都是不错的原则对于数据库应用来说。
4. 当然,基于自身业务的关键程度与成本双重考虑,Fusion-io卡(读与写的性能俱佳)和SSD(优秀的随机读),都未尝不是一个理想的选择。
5. 在操作系统中,I/O Scheduler的调度模式选择deadline对于数据库应用是有利的。命令:echo deadline > /sys/block/
6. 操作系统中nr_requests参数,可以提高系统的吞吐量,似乎越大越好,但是该请求队列的也不能过大,因为这样会消耗大量的内存空间。该值的调整需要综合多处因素,比如: 文件系统、sheduler类型、io的特点。命令: echo xxx > /sys/block/
7. 系统目录/sys/block/
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
表征数据库性能问题的三个指标
即使数据库结构定义和SQL代码编写非常完美,应用程序性能都可能下降。如果性能问题不能得到及时纠正,那么就可能为公司带来很大的损失。
-
SAP HANA数据存储:传统硬盘的瓶颈问题
本文选自《Implementing SAP HANA》,主要探讨了基于传统磁盘的数据库性能问题,以及我们如何解决这一问题。
-
大数据查询怎样才能避免越来越慢?
随着积累的数据越来越多,内部用户和分析师会执行更多的报表和预报。这些都会导致额外的查询、分析及报表。
-
甲骨文宣布MySQL Cluster 7.4全面上市
甲骨文公司今天宣布MySQL Cluster 7.4全面上市。MySQL Cluster是一款ACID兼容的开源事务处理型数据库,具有实时内存性能和99.999%的可用性。