【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. InnoDB行格式(compact,redundant)对照
  2. 【Java 注解】注解简介及作用
  3. NTU 课程: MAS714(3) DFS BFS(搜索算法)
  4. 【信息安全】ECC加密算法入门介绍
  5. string 字符串中字符无效_JavaScript中的字符串(string)到底是什么?
  6. web.py开发web 第一章 Hello World
  7. 【转载】gcc 使用中常用的参数及命令
  8. 你不知道的CSS3圆角
  9. 使用dumpbin查看dll有哪些函数
  10. Android的Context 安卓常用系统服务(当前运行包名/当前网络状态和开关网络/音频服务)...
  11. Kinect开发(如何连接电脑)
  12. 为什么有的人特别招蚊子?
  13. iOS开发基础知识--碎片37
  14. 使用Spark和Pig统计每秒钟微博数量
  15. Unity调用USB摄像头开启与关闭
  16. Delphi 如何调用 OpenCV?
  17. 有趣:Windows如何切换macOS系统 ?(MyDock+MyFinder免费工具)
  18. 开心公寓房屋出租管理系统的设计与实现(系统源码+技术文档+论文)
  19. python爬取头条好货广告_python 爬取今日头条关键词搜索
  20. 云豹直播2022带货语音聊天室三端app源码

热门文章

  1. 相比 Windows 为什么越来越多人选择Linux?
  2. Oracle 发布基于 VS Code 的开发者工具,轻松使用 Oracle 数据库
  3. matlab检查错误 函数,检查代码中的错误和警告
  4. java反汇编pdf_java反汇编探究(1)---javap.exe (转自高山仰止百度空间)
  5. python color属性_Python中类的属性、方法及内置方法
  6. 云顶之弈法机器人_云顶之弈:拳头加强机器人,6法机器人主C打法直接火了!...
  7. 计算机怎样用计算法绘制圆弧,计算机图形学圆弧生成算法具体程序实现
  8. 可以练计算机应用基础的网址,计算机应用基础(第3版)章节练习题答案
  9. python 3.6.5安装教程_Ubuntu16.04安装python3.6.5详细步骤
  10. docker swarm k8s比较_Docker 图形化管理又有更新了