我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL大量使用swap文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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访问内存要慢啊。这就会造成内存还没用光,但数据库疯狂刷盘的现象了。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL大量使用swap文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用java如何实现大量导出excel文件

使用java如何实现大量导出excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.传统的导出方式会消耗大量的内存,2003每个sheet页最多65536条数据,200
2023-05-31

怎么在Linux系统上使用交换文件扩展swap空间

本篇内容主要讲解“怎么在Linux系统上使用交换文件扩展swap空间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux系统上使用交换文件扩展swap空间”吧!想像一种情景,当我们的L
2023-06-12

linux如何启用一个新的swap文件系统

本指南详细介绍了如何在Linux系统中启用一个新的Swap文件系统,从而显著提高系统性能。步骤包括:创建Swap文件、格式化、启用,并将其永久启用。最佳实践建议为Swap文件使用两到三倍的物理内存大小,并在SSD磁盘上创建以提高性能。故障排除提示有助于解决常见错误。启用Swap文件系统是提高Linux系统稳定性和性能的有效方法。
linux如何启用一个新的swap文件系统
2024-04-02

如何使用brotli压缩大文件

本篇文章给大家分享的是有关如何使用brotli压缩大文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。大文件问题函数计算对上传的 zip 代码包尺寸限制为 50M。某些场景中代
2023-06-04

使用 MySQL 程序的选项文件?选项文件的使用

让我们了解如何将选项文件与 MySQL 程序一起使用 -大多数 MySQL 程序可以从以下位置读取启动选项选项文件,也称为配置文件。选项文件提供了一种简单的方法来指定常用选项,这样就不必每次都在命令行中输入它们用户运行程序。要了解程序是否读
2023-10-22

Python实现遍历包含大量文件的文件夹

在处理大模型的训练数据时,经常需要遍历大型文件夹,其中,可能包括数千万或数亿个文件,所以本文为大家整理了Python遍历包含大量文件的文件夹的方法,希望对大家有所帮助
2023-05-15

plsql怎么导出大量csv文件

在PL/SQL中导出大量CSV文件可以通过以下步骤来实现:创建一个存储过程来生成CSV文件的内容,例如:CREATE OR REPLACE PROCEDURE export_to_csv (file_path IN VARCHAR2) IS
plsql怎么导出大量csv文件
2024-04-09

python对大文件的增量读取

欢迎关注我的豆瓣http://www.douban.com/note/484517776/  对于很多大文件的增量读取,如果遍历每一行比对历史记录的输钱或者全都加载到内存通过历史记录的索引查找,是非常浪费资源的,网上有很多人的技术博客都是写
2023-01-31

怎么在Centos中利用文件实现一个swap功能

怎么在Centos中利用文件实现一个swap功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。创建swap文件mkdir/var/swap#创建一个文件夹用于存放交换分区文件,
2023-06-10

如何使用bat得到文件大小

小编给大家分享一下如何使用bat得到文件大小,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先来点简单的一句话代码:for /f %i in (dir /b c:\
2023-06-08

怎么使用java socket传输大文件

要使用Java Socket传输大文件,可以使用以下步骤:1. 创建一个ServerSocket对象来监听某个端口号,等待客户端连接。2. 客户端使用Socket对象连接到服务器的IP地址和端口号。3. 服务器端接受客户端的连接请求,使用`
2023-09-23

如何使用vue+springboot上传大文件

这篇文章主要介绍“如何使用vue+springboot上传大文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用vue+springboot上传大文件”文章能帮助大家解决问题。逻辑需要做大文件
2023-07-06

mysql怎么导入大sql文件

在MySQL中,可以使用以下两种方法导入大SQL文件:使用命令行:在命令行中使用以下命令导入大SQL文件:mysql -u username -p database_name < file.sql其中,username是数据库的用户名,d
mysql怎么导入大sql文件
2024-05-10

编程热搜

目录