加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 机器学习、视觉智能、智能搜索、语音技术、决策智能!
当前位置: 首页 > 编程 > 正文

MySQL运用swap文件

发布时间:2023-12-17 05:33:23 所属栏目:编程 来源:DaWei
导读: 现象:
一台高配的MySQL数据库服务器,双CPU48线程.
CentOS 7
本机磁盘是一万五千转的Raid 0.系统文件,Swap都分配在了本机磁盘.
服务器挂载了一个SSD的磁盘阵列.数据库
  现象:
    一台高配的MySQL数据库服务器,双CPU48线程.
    CentOS 7
    本机磁盘是一万五千转的Raid 0.系统文件,Swap都分配在了本机磁盘.
    服务器挂载了一个SSD的磁盘阵列.数据库文件都存放在磁盘阵列中.
    
    系统运行之后,发现系统Swap大量使用,并且本机磁盘的IO使用率持续100%.
 
权宜之计:
    我把Swap挪到了盘阵中
 
引用:
    对于单CPU,多核心的情况,每个核心访问内存的速度是一样的,这种架构称为SMP(Symmetric multiprocessing, 对称多处理器),又叫UMA(Uniform Memory Architecture,与NUMA相对,一致性内存访问架构)。
可以看到,每个CPU都有一组配套的内存槽。每个CPU访问自身的内存插槽,速度都很快,但对于主板上的其他内存插槽,访问速度就会下降。这种架构被称为NUMA。
  
    对于两个CPU的NUMA架构来说,如果一个核心分配的内存超过系统内存的一半,就会出现问题。而Linux的分配策略是,首先使用CPU 0,然后再使用CPU 1。这时候就会出现一种情况,CPU 0的内存组已经率先使用完了,但系统还有很多空闲内存,都在CPU 1上。这时候,Linux会选择将CPU 0的内存刷到磁盘上,以换取可用内存。但是,swap过程远比跨CPU访问内存要慢啊。这就会造成内存还没用光,但数据库疯狂刷盘的现象了。

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章