技术控

    今日:58| 主题:49101
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] 找到MySQL服务器发生SWAP罪魁祸首

[复制链接]
细软跑 发表于 3 天前
75 1

立即注册CoLaBug.com会员,免费获得投稿人的专业资料,享用更多功能,玩转个人品牌!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
0、导读

  MySQL数据库服务器发生SWAP相信很多人都遇到过,如何找出元凶,又如何应对呢?
  1、写在前面

   在昨晚的知数堂公开课中,其实用的就是本次的案例。本次公开课的PPT、视频已上传到百度云盘,链接: https://pan.baidu.com/s/1eR53Qd8 ,欢迎转存及转发(扫描下方二维码识别)
找到MySQL服务器发生SWAP罪魁祸首-1 (罪魁祸首,罪魁祸首,英文,罪魁祸首造句)

   知数堂培训全新MySQL DBA课程第九期和Python运维开发班第三期正在招生中,扫描下方二维码加入QQ群 529671799 (加群暗号:知数堂) 获得最新信息。
  关于知数堂
  http://zhishuedu.com
  “知数堂培训”是由资深MySQL专家叶金荣、吴炳锡联合推出专业优质在线培训课程,主要有MySQL DBA实战优化和Python运维开发两个课程,是业内最有良心、最有品质的培训课程。
  2、问题交代

  我的朋友小芳(这次不是小明了,hoho),最近遇到了一个郁闷的问题:明明OS还有大量的空闲内存,可是却发生了SWAP,百思不得其解,她就来找我搬救兵了(嗯,我可不是派来的)。
  先看下SWAP是干嘛的,了解下它的背景知识。
  在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。
   SWAP意思是交换,顾名思义, 当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT 。 当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN 。在vmstat的输出结果中,分别表现为 si\so 两列,如下图.1

找到MySQL服务器发生SWAP罪魁祸首-2 (罪魁祸首,罪魁祸首,英文,罪魁祸首造句)
图1
   看到这里我们就知道了, 发生SWAP的最直接可能的原因是进程向OS申请内存时,发现物理内存不足 ,当没有SWAP可用的话,这时可能会一直等待,也可能会触发OOM-killer机制,OS把消耗内存最多的那个进程kill掉以释放内存,这个选择取决于内核参数 vm.swappiness 。该参数可选范围从 0 – 100, 设为 0 就是希望最大限度使用物理内存,尽量不使用swap,设为 100 则是希望积极使用swap 。在运行数据库进程的服务器上,我们通常 强烈建议这个值小于等于10,最好是设置为 0 。原因很简单,对数据库这种需要集中CPU资源、大内存、高I/O的程序而言,如果用SWAP分区代替内存,那数据库服务性能将是不可接受的,还不如直接被OOM kill(数据库进程通常占用最多内存,最容易被OOM kill)来的痛快(早死晚死都是死,还不如痛快的死,反正很快就能重生,嗯)。
  先介绍完这么多信息,大家肯定已经不耐烦了,我们就来看看现场并进行排查吧。
  3、现场排查

  首先,看下系统整体的状况,如下图.2所示
1234下一页
友荐云推荐




上一篇:[iOS] Swift 中的 Functions
下一篇:源码推荐:快速集成仿QQ弹出菜单 流畅的转场实现
酷辣虫提示酷辣虫禁止发表任何与中华人民共和国法律有抵触的内容!所有内容由用户发布,并不代表酷辣虫的观点,酷辣虫无法对用户发布内容真实性提供任何的保证,请自行验证并承担风险与后果。如您有版权、违规等问题,请通过"联系我们"或"违规举报"告知我们处理。

只是沒有結果 发表于 前天 10:00
加关注!
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

我要投稿

推荐阅读

扫码访问 @iTTTTT瑞翔 的微博
回页顶回复上一篇下一篇回列表手机版
手机版/CoLaBug.com ( 粤ICP备05003221号 | 文网文[2010]257号 )|网站地图 酷辣虫

© 2001-2016 Comsenz Inc. Design: Dean. DiscuzFans.

返回顶部 返回列表