MySQL大量使用swap文件
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,现象:一台高配的MySQL数据库服务器,双CPU48线程.CentOS 7本机磁盘是一万五千转的Raid 0.系统文件,Swap都分配在了本机磁盘.服务器挂载了一个SSD的磁盘阵列.数据库文件都存放在
千家信息网最后更新 2025年11月08日MySQL大量使用swap文件现象:
一台高配的MySQL数据库服务器,双CPU48线程.
CentOS 7
本机磁盘是一万五千转的Raid 0.系统文件,Swap都分配在了本机磁盘.
服务器挂载了一个SSD的磁盘阵列.数据库文件都存放在磁盘阵列中.
系统运行之后,发现系统Swap大量使用,并且本机磁盘的IO使用率持续100%.
权宜之计:
我把Swap挪到了盘阵中
原因:
swap insanity
NUMA架构
引用:
对于单CPU,多核心的情况,每个核心访问内存的速度是一样的,这种架构称为SMP(Symmetric multiprocessing, 对称多处理器),又叫UMA(Uniform Memory Architecture,与NUMA相对,一致性内存访问架构)。
可以看到,每个CPU都有一组配套的内存槽。每个CPU访问自身的内存插槽,速度都很快,但对于主板上的其他内存插槽,访问速度就会下降。这种架构被称为NUMA。
对于Linux来说,加载的时候就会检测内存,计算CPU到内存的访问开销,将CPU和内存分成一组组的。每个进程和线程,都会继承父进程的NUMA策略,这种策略包括这个进程/线程会在哪个CPU上运行,分配的内存应该用哪组插槽的。
面对内存分配,只要一经分配到指定的CPU-内存槽,就不会再挪动了。对于数据库这类应用,理想情况下是一个单一的多线程进程,吃掉了几乎所有的系统内存,并尽可能多的消耗其余的系统资源例如IO。
对于两个CPU的NUMA架构来说,如果一个核心分配的内存超过系统内存的一半,就会出现问题。而Linux的分配策略是,首先使用CPU 0,然后再使用CPU 1。这时候就会出现一种情况,CPU 0的内存组已经率先使用完了,但系统还有很多空闲内存,都在CPU 1上。这时候,Linux会选择将CPU 0的内存刷到磁盘上,以换取可用内存。但是,swap过程远比跨CPU访问内存要慢啊。这就会造成内存还没用光,但数据库疯狂刷盘的现象了。
参考:
http://www.cnblogs.com/Lifehacker/p/database_swap_insanity_on_Linux.html
https://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
https://yq.aliyun.com/articles/50933
一台高配的MySQL数据库服务器,双CPU48线程.
CentOS 7
本机磁盘是一万五千转的Raid 0.系统文件,Swap都分配在了本机磁盘.
服务器挂载了一个SSD的磁盘阵列.数据库文件都存放在磁盘阵列中.
系统运行之后,发现系统Swap大量使用,并且本机磁盘的IO使用率持续100%.
权宜之计:
我把Swap挪到了盘阵中
原因:
swap insanity
NUMA架构
引用:
对于单CPU,多核心的情况,每个核心访问内存的速度是一样的,这种架构称为SMP(Symmetric multiprocessing, 对称多处理器),又叫UMA(Uniform Memory Architecture,与NUMA相对,一致性内存访问架构)。
可以看到,每个CPU都有一组配套的内存槽。每个CPU访问自身的内存插槽,速度都很快,但对于主板上的其他内存插槽,访问速度就会下降。这种架构被称为NUMA。
对于Linux来说,加载的时候就会检测内存,计算CPU到内存的访问开销,将CPU和内存分成一组组的。每个进程和线程,都会继承父进程的NUMA策略,这种策略包括这个进程/线程会在哪个CPU上运行,分配的内存应该用哪组插槽的。
面对内存分配,只要一经分配到指定的CPU-内存槽,就不会再挪动了。对于数据库这类应用,理想情况下是一个单一的多线程进程,吃掉了几乎所有的系统内存,并尽可能多的消耗其余的系统资源例如IO。
对于两个CPU的NUMA架构来说,如果一个核心分配的内存超过系统内存的一半,就会出现问题。而Linux的分配策略是,首先使用CPU 0,然后再使用CPU 1。这时候就会出现一种情况,CPU 0的内存组已经率先使用完了,但系统还有很多空闲内存,都在CPU 1上。这时候,Linux会选择将CPU 0的内存刷到磁盘上,以换取可用内存。但是,swap过程远比跨CPU访问内存要慢啊。这就会造成内存还没用光,但数据库疯狂刷盘的现象了。
参考:
http://www.cnblogs.com/Lifehacker/p/database_swap_insanity_on_Linux.html
https://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
https://yq.aliyun.com/articles/50933
内存
系统
磁盘
分配
架构
数据
数据库
线程
进程
情况
核心
策略
速度
插槽
本机
文件
服务器
现象
磁盘阵列
阵列
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库修改A列的数据
天津便宜服务器cpu 虚拟主机
国产sql实时数据库批发
9i数据库误删了表
局安排网络安全工作
硚口区信息网络安全维护报价表
支持微软格式的媒体服务器
山西惠普服务器续保维修
公司云服务器内存
网络安全密匙怎么获取视频
互联网月饼黑科技
ftp与ftp服务器
武汉枫欧网络技术开发公司
qq数据库的打开方法
网络安全论文范文3000字
评论员文章网络安全
上海网络安全工资一般多少
电子支付网络安全试卷
网络安全儿歌手抄报二年级
联想服务器管理网口设置
数据库中的选择查询特点
软件开发付费课程
深圳电脑软件开发哪家正规
财务软件服务器
创建tcp服务器的条件
什么云服务器安全
铁威马f2221有服务器吗
网络技术时代行政主体义务
绝地服务器缩写
手机app软件开发如何收费