MySQL大量使用swap文件
发表于:2025-01-30 作者:千家信息网编辑
千家信息网最后更新 2025年01月30日,现象:一台高配的MySQL数据库服务器,双CPU48线程.CentOS 7本机磁盘是一万五千转的Raid 0.系统文件,Swap都分配在了本机磁盘.服务器挂载了一个SSD的磁盘阵列.数据库文件都存放在
千家信息网最后更新 2025年01月30日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安全错误
数据库的锁怎样保障安全
网络安全病毒传播
县科技局互联网政务服务
河南省有线电视网络技术部
天命之子韩服服务器名称
软件开发社团
it网络安全报告
软件开发笔试题 答案
中国网络安全法学习心得体会
公司网络安全治理机构
泛在网是不是全新的网络技术
sql还原数据库 bak
哪个平台租服务器好
黑魂3连不上服务器能联机吗
服务器密码信封管理
数据库如何开发端口
abap修改数据库表某一字段值
长宁区大型软件开发售后保障
怎么搭建管理服务器
云服务器搭建智能家居
美国网络安全组成部分
网络技术应用图标图片
无线传感器网络技术公司
安阳超市电商软件开发价格
学校网络安全年终考核指标
服务器安装后为什么打不开网页
不同版本数据库更新
江苏数据库安全箱批量定制
魔兽世界 无尽之海服务器
软件开发的注册资本
我为网络技术点赞的事实论据