当前位置:首页 > 数据库 > 正文内容

Mysql占用swap空间,导致mysql性能大幅降低

root4年前 (2022-01-12)数据库1631

在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。
SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN

发生SWAP的最直接可能的原因是进程向OS申请内存时,发现物理内存不足,当没有SWAP可用的话,这时可能会一直等待,也可能会触发OOM-killer机制,OS把消耗内存最多的那个进程kill掉以释放内存,这个选择取决于内核参数 vm.swappiness。该参数可选范围从 0 - 100,设为 0 就是希望最大限度使用物理内存,尽量不使用swap,设为 100 则是希望积极使用swap我们通常强烈建议这个值小于等于10(查看vm.swappiness = 10),最好是设置为 0。原因很简单,对数据库这种需要集中CPU资源、大内存、高I/O的程序而言,如果用SWAP分区代替内存,那数据库服务性能将是不可接受的,还不如直接被OOM kill(数据库进程通常占用最多内存,最容易被OOM kill)来的痛快(早死晚死都是死,还不如痛快的死,反正很快就能重生,嗯)。


现在问题:

    导入数据发现mysql性能急剧下降

    cpu、memory、disk均是正常

   通过htop 命令发现swap有使用

正常情况下有内存的时候是不使用swap,肯定是某个时间点内存不够用使用了swap


直接关闭swap空间

发现mysql的速度飞快提升



参考文档


扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://zhiqiu.top/?id=203

分享给朋友:

相关文章

电脑断电导致mysql不可用,删除ib_logfile0和ib_logfile1恢复

mysql安装在虚拟机中,公司突然断电导致mysql启动失败查看mysql的error日志2021-05-19T06:44:51.993300Z 0 [ERROR] InnoDB: Ignoring the redo log due to...

postgresql 导入导出sql 文件

pg_dump  -h localhost -U postgres -t tablename databasename >./test.sql导出 -t 表名  psql -d test1 -U...

postgresql 的安装使用

安装centos系统 9.6版本# Install the repository RPMsudo yum install -y https://download.postgresql.org/pub/repos/yum/repor...

postgresql修改数据存储位置

postgresql修改数据存储位置

最近公司提供了一台新的服务器,同时有一个盘是ssd。同时为了测试postgresql的性能,将数据放置到ssd上系统centos7.9 数据库postgresql-9.6首先停掉数据库systemctl stop pos...

centos7 快速搭建 mysql

https://blog.csdn.net/qq_36582604/article/details/80526287...

mysql数据导入es

将mysql数据取出放到elasticsearch中from datetime import datetime from elasticsearch import Elastic...