【IT168 技术】目前web的应用大多都以I/O密集型为主,而存储技术的发展远没有计算机中其他系统发展迅速,尽管也有不少高端存储设备,但是价格的昂贵,不是一般大众能享受的起的。而基于现状更多是我们使用一般SAS盘结合应用使用不同的RAID组合,来实现我们平民化存储,为了得到更好的性能,那么和I/O相关的调整优化是必不可少的。

对于我们数据库调优来说,磁盘I/O优化是首屈一指的调优重点,我们都知道木桶原理,短板绝对整体的好坏,而数据库系统中这个短板正是由于我们使用的硬件设备里最弱的磁盘所导致。很多时候,我们会发现系统中I/O累得要死,而CPU却在那里空闲等待,主要是由于I/O执行响应时间太长,处理读写的速度远远赶落后于CPU的处理速度,这时我们会尽可能的让操作放到内存中进行,由磁盘与CPU的关系,转变成内存与CPU的关系。但是,我们始终不能回避磁盘I/O的弱点,优化是必须的。

对于数据库在日常应用中的特点,我们可以有很多想法。

1. 随机读写的负载可以通过增加硬盘的个数实现扩展。

2. 对于顺序读写带来的压力,可以通过选择带宽相对高一些的磁盘来解决。

3. RAID 5和RAID 10都是不错的原则对于数据库应用来说。

4. 当然,基于自身业务的关键程度与成本双重考虑,Fusion-io卡(读与写的性能俱佳)和SSD(优秀的随机读),都未尝不是一个理想的选择。

5. 在操作系统中,I/O Scheduler的调度模式选择deadline对于数据库应用是有利的。命令:echo deadline > /sys/block//queue/scheduler

6. 操作系统中nr_requests参数,可以提高系统的吞吐量,似乎越大越好,但是该请求队列的也不能过大,因为这样会消耗大量的内存空间。该值的调整需要综合多处因素,比如: 文件系统、sheduler类型、io的特点。命令: echo xxx > /sys/block//queue/nr_requests,nr_requests的大小设置至少是/sys/block//device/queue_depth的两倍,所以,修改nr_requtests的时候要注意。

7. 系统目录/sys/block//queue下还有一个预读的参数read_ahead_kb,这个参数增大只会对顺序读的操作有提升,而数据库这类应用中多数是随机读;通过命令hdparm -t /dev/sda{,,}可以测试修改后预读的效果。

mysql+磁盘i+o+优化_浅析MySQL数据库磁盘I/O调整优化 | 学步园相关推荐

  1. mysql+磁盘i+o+优化_浅析MySQL数据库磁盘I/O调整优化

    [IT168 技术]目前web的应用大多都以I/O密集型为主,而存储技术的发展远没有计算机中其他系统发展迅速,尽管也有不少高端存储设备,但是价格的昂贵,不是一般大众能享受的起的.而基于现状更多是我们使 ...

  2. mysql 优化_常用MySQL优化

    1.大批量插入数据优化 (1)对于MyISAM存储引擎的表,可以使用:DISABLE KEYS 和 ENABLE KEYS 用来打开或者关闭 MyISAM 表非唯一索引的更新. ALTER TABLE ...

  3. 大于小于优化_以MySQL为例,详解数据库索引原理及深度优化

    本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接. 一.摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引 ...

  4. MySQL-性能优化_影响MySQL性能的因素分析及解决方案

    文章目录 生猛干货 官方文档 影响性能的几个因素 CPU 内存 磁盘的配置和选择 传统的机械硬盘 RAID SSD 或者 PCIe卡 网络存储SAN (光纤传输)和 NAS (带宽传输) 网络 操作系 ...

  5. mysql 线程缓存_浅析MySQL内存的使用说明(全局缓存+线程缓存)

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...

  6. mysql amp;amp;_浅析mysql交互式连接amp;非交互式连接

    交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议. 非交互式操作:就是你在你的项目中进行程序调用.比如一边是tom ...

  7. mysql inner join 长数字_关于mysql inner join 链接查询的优化

    在使用查询语句时,inner join,left join,right join等这些联接语句,想必你们并不陌生,并且常常会用到,联接达到了咱们想要的结果,但是当数据越大越大的时候,会发现查询很慢,每 ...

  8. mysql distinct多个字段_深入浅出Mysql索引的那些事儿

    一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据 ...

  9. mysql 按时间累计计算_精通MySQL索引背后的数据结构及算法原理

    本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,mysql支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree ...

最新文章

  1. easyui展示年月
  2. vue实现点击后多级标题联动变化
  3. SQL SERVER 存储过程学习笔记 (转)
  4. 什么是schema?
  5. springMVC 不扫描 controller 中的方法
  6. java自动生成代码框架_DodoFramework- 一个基于代码生成引擎的Java Web系统自动化开发框架...
  7. 目标检测的“尽头”竟是语言建模?Hinton团队提出Pix2Seq:性能优于DETR
  8. 实现Callable接口通过FutureTask包装器来创建Thread线程
  9. Seafile 开源企业云盘部署
  10. Python内置函数sorted()从入门到精通
  11. Ubuntu dpkg 常用命令教程
  12. 3个开源TTS(一)—安装使用
  13. Access2007数据库下载地址与AccessHelper
  14. 小波包8层分解与重构MATLAB代码,谐波小波包分解与重构程序谁有呢?
  15. 安卓Activity劫持与反劫持
  16. 计算机技术在中医药的应用,计算机技术在中医药领域的应用概况
  17. 锐捷交换机配置snmp版本_原创整理:锐捷S3550系列交换机基本配置命令(一)
  18. 基于VC++实现的中国象棋-双人象棋游戏
  19. 显卡的优化以提高计算机性能作用,显卡优化,教您如何设置NVIDIA(英伟达)显卡玩游戏性能更高...
  20. 校园宽带客户端认证程序无法继续初始化绑定通信接口网络地址失败_解决办法

热门文章

  1. android adb 模拟来电,在Android模拟器中模拟GPS、打电话、发短信……
  2. unity协程_[C#进阶]C#实现类似Unity的协程
  3. 计算机桌面图标有小纸张,电脑桌面图标上都有个小图标,为什么
  4. android 绘制按钮,Android:使用xml定义创建一个三角形的按钮(可绘制)
  5. mysql创建临时表 主键_MySQL中临时表的基本创建与使用教程
  6. 编写 matlab_MATLAB的SFunction编写指导
  7. python无法打开_脚本 - Python3.8突然无法运行
  8. c语言的各种类型的指针,简单总结C语言中各种类型的指针的概念
  9. canopy算法流程_Canopy聚类算法
  10. 计算机论文的写作方法有哪些,计算机专业论文的写作方法.ppt