`
san_yun
  • 浏览: 2594355 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

MySQL如何避免使用swap

阅读更多

原文:

http://www.taobaodba.com/html/552_mysql_avoid_swap.html

 

Linux有很多很好的内存、IO调度机制,但是并不会适用于所有场景。对于DBA来说Linux比较让人头疼的一个地方是,它不会因为MySQL 很重要就避免将分配给MySQL的地址空间映射到swap上。对于频繁进行读写操作的系统而言,数据看似在内存而实际上在磁盘是非常糟糕的,响应时间的增 长很可能直接拖垮整个系统。这篇blog主要讲讲我们作为DBA,怎样尽量避免MySQL惨遭swap的毒手。

首先我们要了解点基础的东西,比如说为什么会产生swap。假设我们的物理内存是16G,swap是4G。如果MySQL本身已经占用了12G物理内存, 而同时其他程序或者系统模块又需要6G内存,这时候操作系统就可能把MySQL所拥有的一部分地址空间映射到swap上去。

cp一个大文件,或用mysqldump导出一个很大的数据库的时候,文件系统往往会向Linux申请大量的内存作为cache,一不小心就会导致L使用swap。这个情景比较常见,以下是最简单的三个调整方法:
1、/proc/sys/vm/swappiness的内容改成0(临时),/etc/sysctl.conf上添加vm.swappiness=0(永久)
这个参数决定了Linux是倾向于使用swap,还是倾向于释放文件系统cache。在内存紧张的情况下,数值越低越倾向于释放文件系统cache。
当然,这个参数只能减少使用swap的概率,并不能避免Linux使用swap。
2、修改MySQL的配置参数innodb_flush_method,开启O_DIRECT模式。
这种情况下,InnoDB的buffer pool会直接绕过文件系统cache来访问磁盘,但是redo log依旧会使用文件系统cache。值得注意的是,Redo log是覆写模式的,即使使用了文件系统的cache,也不会占用太多。
3、添加MySQL的配置参数memlock
这个参数会强迫mysqld进程的地址空间一直被锁定在物理内存上,对于os来说是非常霸道的一个要求。必须要用root帐号来启动MySQL才能生效。

还有一个比较复杂的方法,指定MySQL使用大页内存(Large Page)。Linux上的大页内存是不会被换出物理内存的,和memlock有异曲同工之妙。具体的配置方法可以参 考:http://harrison-fisk.blogspot.com/2009/01/enabling-innodb-large-pages- on-linux.html

 

更多参考:http://robbin.iteye.com/blog/461382

分享到:
评论

相关推荐

    检查mysql服务器的资源使用及服务状态并告警

    linux平台数据库服务,监测mysql 3306端口服务是否启动着,监测磁盘空间使用,监测swap空间使用。如果到阀值会发邮件告警

    mysql_role_swap:(近)零中断mysql维护脚本

    mysql_role_swap mysql_role_swap是用Ruby编写的脚本,用于执行将从属数据库升级为主数据库时通常执行的所有任务。 它执行所有必要的检查,以确保过渡尽可能平滑。 它使用mysql和activerecord库执行这些任务。 设计...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...

    101个MySQL的配置和优化的提示

    MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的...2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。3. 使用电池供电的RAM(注:RAM即随机存储器)。4. 使用高级的RAID

    关于MySQL 优化的100个的建议

    MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们... 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。  3. 使用电池供电的RAM(注:RAM即随机存储器)。  4

    MySQL OOM(内存溢出)的解决思路

    通常我们会添加对内存的监控报警,例如:当memory或swap使用超过90%时,触发报警通知,需要及时介入排查。 如果已经出现OOM,则可以通过dmesg命令查看,CentOS7版本以上支持 -T选项,能将时间戳转成时

    101个MySQL优化技巧和提示

    MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的...2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAI

    分享101个MySQL调试与优化技巧

    MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的...2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAI

    101个MySQL 的调节和优化的提示

    MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们一直... 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。  3. 使用电池供电的RAM(注:RAM即随机存储器)。

    Ubuntu添加swap分区的方法

    前段时间上车了腾讯云 360 买三年多的学生机的活动,加上降配总共获得 6 年,然而内存降到 1G 后,跑个 mysql 时间长了内存都不够。而且腾讯云的 ubuntu 不知道什么原因 1G 内存实际只有 800+M,更加雪上加霜。 终于...

    淘宝大牛传授MySQL十大经典案例

    1.InnoDB表如何设计主键索引 2.字符串索引隐式转换 3.表数据被莫名清空 4.InnoDB表更新锁问题 5.客户端连接被中断 6.核心数据库被同时关闭 7.Slave事件Loop 8.Slave更新操作找不到对应记录 ...10.数据库服务器Swap

    InnoDB 1.1 for MySQL 5.5 User’s Guide

    Beginning with MySQL version 5.1, it is possible to swap out one version of the InnoDB storage engine and use another (the “plugin”). This manual documents the latest InnoDB plugin, version 1.1, ...

    Linux运维日常巡检脚本 - 可自行修改

    swap使用率 √ swap使用情况 √ 显卡型号 √ 显卡显存 √ 显卡风扇转速 √ 显卡温度 √ 显卡最高支持cuda版本 √ 显卡驱动版本 √ 显卡当前显存 √ 显卡剩余显存 √ 显卡的使用率(循环) √ 显卡的...

    mysql源码安装脚本分享

    SysName=””SysBit=””CpuNum=””RamTotal=””RamSwap=””FileMax=””MysqlVersion=”Percona-Server-5.6.15-rel63.0″MysqlLine=”http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source”...

    mysql innodb的监控(系统层,数据库层)

    mysql innodb的监控(系统层,数据库层) 关于MySQL 的监控,mysql提供了数据采集的命令,比如show status命令...1、系统层面包括系统的load、cpu、内存是否有swap、磁盘IO如何、网络。 vmstat -w 1 iostat -x -k 1

    MySQL OOM 系统二 OOM Killer

    前面一节重点分享了Linux的内存分配策略,基于上述的分配策略,为了规避超售的风险,Linux采了一种OOM Killer的机制,即系统可用内存(包括Swap)即将使用完之前,选择性的Kill掉一些进程以求释放一些内存

    iprober PHP探针 v0.021.rar

    1、服务器环境探测:CPU、在线时间、内存使用状况(支持LINUX、FreeBSD系统,需系统支持),操作系统、服务器**、IP地址、解释引擎等 2、PHP基本特征探测:版本、运行方式、安全模式及常规参数 3、PHP组件支持探测:...

    iProber PHP探针 v0.021

    整数运算能力、浮点数运算能力、数据IO能力 5、自定义探测:MYSQL连接测试、MAIL发信测试、函数支持情况及PHP配置参数 v0.021 更新:1、修正UNIX系统在无SWAP分区时程序报错的BUG2、页面改用div+css布局,...

    lnmpcheck:lnmp环境检测工具,检测linux,nginx,php,mysql的各种问题

    lnmpcheck lnmp环境检测工具,检测部署linux,nginx,php,mysql...inode使用 CPU 包括CPU idle,CPU负载,CPU在I/O时花费的时间比 内存 包括内存占用比,swap交换数 I/O I/O所消耗的CPU时间比 I/O总共花费时间与实际I/O操

    zabbix-models:zabbix模板ansible api

    2)内存和交换监控,包括:总内存,合法内存,使用内存,使用内存百分比,swap体积大小,swap体积百分比。 3)系统进程监控,包括:当前进程总数,当前正在运行的进行。 4)磁盘容量监控,包括:总大小,已经使用...

Global site tag (gtag.js) - Google Analytics