1、swappiness

禁止系统使用swap空间,配置/etc/sysctl.conf中的vm.swappiness=0

2、Scheduler调度

Scheduler调度,指的是磁盘的IO调度算法,下面聊一聊linux的几种IO调度算法

查看当前系统磁盘的sda的IO调度算法。

cat /sys/block/sda/queue/scheduler

其中:

  • noop(No Operation,电梯式调度算法):通过一个简单的FIFO(先进先出)队列将请求按先来先处理的顺序处理,但对于相邻的IO请求,noop算法会进行合并再处理。在机械硬盘读取需求需要磁头在磁道上不断地来回摆动来完成读取,而noop算法则是写优先的调度算法,所以读的性能表现不佳。但SSD磁盘不同于传统的机械硬盘,靠磁头在高速旋转的磁盘上运动来读取数据,ssd通过LBA(Logical Block Address,逻辑地址块)来访问数据,性能远远高于机械硬盘
  • cfq(Completely Fair Queuing,完全公平队列):在linux kernel 2.6.18内核之后的2.6系列内核中,cfq是默认的IO调度算法,它为每一个进程创建一个队列来处理这个进程所有的IO请求,然后再分配CPU时间来处理这些队列,这种做法可以确保每个进程都能很好地获得IO带宽。CPU处理时间片和IO请求队列的数量都是可以通过IO优先级来控制的。
  • deadline:最后期限调度算法。在RedHat 7系统开始,Deadline调度算法成为默认的磁盘调度算法,它为了保证每个IO请求都能在deadline(最后期限)之前得到处理以避免出现IO饿死的情况。deadline调度算法为读和写分别创建了一个deadline队列,默认情况下读操作的deadline时间是500ms,写操作的deadline时间是5s,并且读队列被赋予较高的优先级,因为进程通常会阻止读操作。在每个IO请求完成之后,下一次IO操作之前,deadline算法会判断两个deadline队列中是否有即将到期的请求,这些请求会被优先处理,确保该IO请求不被饿死
  • anticipatory:预测IO调度算法。在Linux Kernel2.6.0至2.6.18版本中,anticipatory是默认的磁盘调度算法,但在linux kerne 2.6.33之后不再用这种调度算法。他的原理是在每次完成IO请求,开始新的IO操作之前设置了6ms等待,如果在6ms之内收到读IO的请求,anticipatory调度算法就可以立即满足这个要求

针对DB服务器,应如何调整磁盘调度算法呢?

1)DB服务器上配置了SSD硬盘,那么这种场景下,NOOP算法是最优的,因为它读写数据不涉及磁盘转动,磁头定位。配置方法如下:

echo "Noop" >/sys/block/sda/queue/scheduler

2)DB服务器上配置的就是普通的SAS盘,这种场景下,Deadline是最优的,这也是Mysql标准调优中常用的调优参数。配置方法如下。

echo "deadline" >/sys/block/sda/queue/scheduler

DB服务器中的参数优化的更多相关文章

  1. Skype 服务器客户端策略参数优化

    1.skype通讯录原理 对于skype客户端的通讯录同步,首先说说原理,通讯簿信息是从AD同步的skype前端服务器(每天1:30),在从前端服务器同步的客户端(大概1小时内同步一次). skype ...

  2. db服务器参数优化

    1.swap分区 swap作用是在系统内存不够的情况下,当做临时的内存使用. swap是在硬盘上,性能肯定没有再内存好,当系统内存使用超过40%的时候, swap会可能被使用,而系统一旦使用swap会 ...

  3. Linux中MySQL配置文件my.cnf参数优化

    MySQL参数优化这东西不好好研究还是比较难懂的,其实不光是MySQL,大部分程序的参数优化,是很复杂的.MySQL的参数优化也不例外,对于不同的需求,还有硬件的配置,优化不可能又最优选择,只能慢慢的 ...

  4. Linux(Centos )的网络内核参数优化来提高服务器并发处理能力【转】

    简介 提高服务器性能有很多方法,比如划分图片服务器,主从数据库服务器,和网站服务器在服务器.但是硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题 ...

  5. 梯度优化算法总结以及solver及train.prototxt中相关参数解释

    参考链接:http://sebastianruder.com/optimizing-gradient-descent/ 如果熟悉英文的话,强烈推荐阅读原文,毕竟翻译过程中因为个人理解有限,可能会有谬误 ...

  6. OpenCV中的SVM参数优化

    OpenCV中的SVM参数优化 svm参数优化opencv SVMSVR参数优化CvSVMopencv CvSVM        SVM(支持向量机)是机器学习算法里用得最多的一种算法.SVM最常用的 ...

  7. 手机在线更新系统MySQL数据库服务器参数优化mycnf,16G内存8核CPU,

    业务场景: 后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器. qps: 200个左右 tps: 1个左右 一分钟50几个 sort_buffer_size = 32M 大了 ...

  8. MySQL数据库服务器参数优化mycnf,16G内存8核CPU,

    业务场景: 后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器. qps: 200个左右 tps: 1个左右 一分钟50几个 sort_buffer_size = 32M 大了 ...

  9. [转载]linux下编译php中configure参数具体含义

    编译N次了   原来这么回事 原文地址:linux下编译php中configure参数具体含义作者:捷心特 php编译参数的含义 ./configure –prefix=/usr/local/php ...

随机推荐

  1. Spring不支持依赖注入static静态变量

    在springframework里,我们不能@Autowired一个静态变量,使之成为一个spring bean,例如下面这样: 可以试一下,yourClass在这种状态下不能够被依赖注入,会抛出运行 ...

  2. 100197C

    合并果子 每一次取最小的两个合并 答案加上这两个值 因为这是一颗二叉树,我们计算一条路的长度,可以看成从叶子节点逐渐合并,直到根 #include<iostream> #include&l ...

  3. Android进程回收机制LMK(Low Memory Killer)

    熟悉Android系统的童鞋都知道,系统出于体验和性能上的考虑,app在退到后台时系统并不会真正的kill掉这个进程,而是将其缓存起来.打开的应用越多,后台缓存的进程也越多.在系统内存不足的情况下,系 ...

  4. linux下使用 du查看某个文件或目录占用磁盘空间的大小

    du -ah --max-depth=1     这个是我想要的结果  a显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小但是由于用了--max-depth选项,表示显示目录下所有 ...

  5. 【POJ 1789】Truck History(最小生成树)

    题意:距离定义为两个字符串的不同字符的位置个数.然后求出最小生成树. #include <algorithm> #include <cstdio> #include <c ...

  6. Python3 连接Mysql

    代码: #!/usr/bin/env python # encoding: utf-8 """ @author: 侠之大者kamil @file: mysql_test. ...

  7. AS技巧合集「编码技巧篇」

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254725&extra=page%3D2%26filter%3Dautho ...

  8. LINQ语法记录

    static void Main(string[] args) { List<Person> persons = new List<Person>(); persons.Add ...

  9. .net config文件 配置类的集合

    1,appconfig文件 <configSections> <section name="ToolConfig" type="DMTools.Tool ...

  10. C#读txt文件并写入二维数组中(txt数据行,列未知)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...