MySQL大量使用swap文件
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,现象:一台高配的MySQL数据库服务器,双CPU48线程.CentOS 7本机磁盘是一万五千转的Raid 0.系统文件,Swap都分配在了本机磁盘.服务器挂载了一个SSD的磁盘阵列.数据库文件都存放在
千家信息网最后更新 2024年09月22日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安全错误
数据库的锁怎样保障安全
凤凰之神 服务器
奇偶商城哪家好 软件开发
公司有必要安装数据库吗
网站服务器如何进行安全维护
国家网络安全法的心得体会
2018网络安全管理者必读
网络安全班会体会
安装游戏时显示无法连接服务器
湖南综合软件开发价格
数据库死锁的预防机制主要有
计算网络技术真的难就业吗
王国纪元怎么退出服务器
龙哥网络技术有限公司
软件开发具体是干什么的
曲靖市召开网络安全工作会
数据库什么是构架
小学堂文字学数据库
中山采购机器人rpa软件开发
磐云网络安全大赛
数据库安全管理语言类型
微巢互联网科技
生了孩子还能做软件开发吗
数据库表字符宽度怎么设置
国服吃鸡选择哪个服务器好
无线显示程序软件开发
职业目标评估网络安全
我的世界服务器很热闹
app软件开发使用
泡泡堂为什么联不上服务器
国家网络安全产业园招聘