iis服务器助手广告
返回顶部
首页 > 资讯 > 操作系统 >LinuxSwap空间利用率过高问题
  • 527
分享到

LinuxSwap空间利用率过高问题

LinuxSwapSwap空间利用率Swap空间利用率过高 2023-05-14 15:05:41 527人浏览 独家记忆
摘要

目录什么是swap?为什么需要swap?swap的缺点?到底要不要swap?内存不够用内存勉强够用内存充裕那我们的Mysql的服务器为什么会发生swap呢?InnoDB的缓冲池缓存什

在单独部署的mysql数据库服务器中发现,在高并发的情况下发现内存不够用,进一步发现swap的利用率很高。

公司的DBA提了两点建议:

  • 1、建议先减小数据库缓冲池(buffer pool)的大小;
  • 2、进行数据库内存扩容

1、首先,不是内存不够用吗?swap利用率为什么高呢?swap是什么呢?

什么是swap?

swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。

简单点说,当系统物理内存吃紧时,linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问swap上存储的内容时,再将swap上的数据加载到内存中,这就是我们常说的swap out和swap in。

为什么需要swap?

要回答这个问题,就需要回答swap给我们带来了哪些好处。

对于一些大型的应用程序(如LibreOffice、video editor等),在启动的过程中会使用大量的内存,但这些内存很多时候只是在启动的时候用一下,后面的运行过程中很少再用到这些内存。有了swap后,系统就可以将这部分不这么使用的内存数据保存到swap上去,从而释放出更多的物理内存供系统使。

很多发行版(如ubuntu)的休眠功能依赖于swap分区,当系统休眠的时候,会将内存中的数据保存到swap分区上,等下次系统启动的时候,再将数据加载到内存中,这样可以加快系统的启动速度,所以如果要使用休眠的功能,必须要配置swap分区,并且大小一定要大于等于物理内存。

在某些情况下,物理内存有限,但又想运行耗内存的程序怎么办?这时可以通过配置足够的swap空间来达到目标,虽然慢一点,但至少可以运行。

虽然大部分情况下,物理内存都是够用的,但是总有一些意想不到的状况,比如某个进程需要的内存超过了预期,或者有进程存在内存泄漏等,当内存不够的时候,就会触发内核的OOM killer,根据OOM killer的配置,某些进程会被kill掉或者系统直接重启(默认情况是优先kill耗内存最多的那个进程),不过有了swap后,可以拿swap当内存用,虽然速度慢了点,但至少给了我们一个去debug、kill进程或者保存当前工作进度的机会。

如果看过Linux内存管理,就会知道系统会尽可能多的将空闲内存用于cache,以加快系统的I/O速度,所以如果能将不怎么常用的内存数据移动到swap上,就会有更多的物理内存用于cache,从而提高系统整体性能。

swap的缺点?

上面介绍了swap的优点,那swap的缺点呢?swap是存放在磁盘上的,磁盘的速度和内存比较起来慢了好几个数量级,如果不停的读写swap,那么对系统的性能肯定有影响,尤其是当系统内存很吃紧的时候,读写swap空间发生的频率会很高,导致系统运行很慢,像死了一样,这个时候添加物理内存是唯一的解决办法。

由于系统会自动将不常用的内存数据移到swap上,对桌面程序来说,有可能会导致最小化一个程序后,再打开时小卡一下,因为需要将swap上的数据重新加载到内存中来。

到底要不要swap?

上面介绍了什么是swap以及它们的优缺点,那么到底要不要配置swap呢?答案是:看情况。

下面分别讨论内存不够用、内存勉强够用和内存很充裕这三种情况下服务器和桌面环境对swap的选择。

内存不够用

不管是桌面还是服务器,当物理内存明显不够用,而又想跑程序的话,添加swap是唯一的选择,慢点总比不能工作强。

内存勉强够用

建议配置swap,这样内核会将不常用的数据从内存移到swap上,从而有更多的物理内存供系统调用,提升系统性能,同时也避免因偶尔的物理内存不够造成进程异常退出,提升系统稳定性,但对服务器来说,一定要限制或者监控swap空间的使用情况,当出现swap空间使用超预期或者swap in/out频繁时,要及时采取措施,不然对性能影响很大

内存充裕

理论上来说,如果物理内存足够多并且不需要休眠功能,那swap就没什么用,可关键问题是我们很难保证物理内存在任何情况下都够用,因为总有意想不到的情况发生,比如某些进程耗内存超预期,服务器压力超预期,内存泄漏等。

目前,我们是明显内存不够用了,是什么导致内存不够用了呢?为什么mysql会直接导致服务器内存不够了

那我们的mysql的服务器为什么会发生swap呢?

假设我们的物理内存是16G,swap是4G。如果MySQL本身已经占用了12G物理内存, 而同时其他程序或者系统模块又需要6G内存,这时候操作系统就可能把MySQL所拥有的一部分地址空间映射到swap上去。

说白了,就是系统认为你mysql占用的空间太大了,不允许你搞特殊,必须腾出空间让那个我的其它必要的进程区使用内存,所以你就去比较慢的swap去玩吧!

而mysql中占内存最大的就是innodb_buffer_pool_size了,所以第一时间应考虑到这个值是不是设置的不合理?

MySQL的内存消耗分为:

  • 1.会话级别的内存消耗:如sort_buffer_size等,每个会话都会开辟一个sort_buffer_size来进行排序操作
  • 2.全局的内存消耗:例如:innodb_buffer_pool_size等,全局共享的内存段

这也是我觉得我们DBA不专业的地方,并没有考虑第一种情况,去查看回话级别的内存消耗情况,而是直接跟我说要调小innodb_buffer_pool_size

InnoDB的缓冲池缓存什么?有什么用?设置多大合适呢?

缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘io,起到加速访问的作用。

给 Buffer Pool 分配越大的内存,MySQL 的并发性能就越好。那是不是都应该将百分之九十九的机器的内存都分配给 Buffe Pool 呢?

当然不是!先不说操作系统内核也需要几个G内存,MySQL 除了 Buffer Pool 还有很多别的内存数据结构呢,这些都是需要内存的,所以说,上面的想法是绝对不行的!

比较合理的比例,应该是 Buffer Pool 的内存大小占机器总内存的 50% ~ 60%。

可以通过show engine innodb status\G; 查看命中情况. 当命中没达到97%以上,都可以考虑加内存,当然这个和业务也有关例如对一个master的写入量大,读少就是特例.

其它情况如果没达到97%以上,对于读取多的情况,如果没达到98%以上,都说明buffer不够.可以扩. 再从另一方面来讲如果给分了20%的内存命中都能达到100%了,而且还有大量的free page那说明,那就够用了,另外也可以跟据free page去算一下可以再减少点内存. 把那些内存用到别用呢

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: LinuxSwap空间利用率过高问题

本文链接: https://www.lsjlt.com/news/203203.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • LinuxSwap空间利用率过高问题
    目录什么是swap为什么需要swapswap的缺点到底要不要swap?内存不够用内存勉强够用内存充裕那我们的mysql的服务器为什么会发生swap呢?InnoDB的缓冲池缓存什么?有...
    99+
    2023-05-14
    Linux Swap Swap空间利用率 Swap空间利用率过高
  • Linux Swap空间利用率过高问题
    目录什么是swap为什么需要swapswap的缺点到底要不要swap?内存不够用内存勉强够用内存充裕那我们的mysql的服务器为什么会发生swap呢?InnoDB的缓冲池缓存什么?有什么用?设置多大合适呢?总结在单独部署...
    99+
    2023-04-06
    Linux Swap Swap空间利用率 Swap空间利用率过高
  • Linux Swap空间利用率过高怎么解决
    今天小编给大家分享一下Linux Swap空间利用率过高怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么...
    99+
    2023-07-05
  • oracle sql 表空间利用率
    SELECT nvl(t.name, 'CDB$ROOT') as DB_NAME, D.TABLESPACE_NAME, TOTAL_SPACE, (SPACE...
    99+
    2024-04-02
  • oracle 11g sysaux表空间使用率非常高的问题解决
    今天发现有个数据库的sysaux表空间暴涨,快要100%了,如图: 查看一下是什么内容占用了空间: 是awr的相关内容,需要重建awr来释放空间,具体重建步骤,请参考我的另一篇博文:http...
    99+
    2024-04-02
  • 排查WMI CPU使用率过高问题
    排查WMI CPU使用率过高问题的步骤如下:1. 确认问题:首先,确认系统的CPU使用率确实过高。可以通过任务管理器或性能监视器来查...
    99+
    2023-09-13
    CPU
  • 数据库中crfclust.bdb占用巨大空间导致磁盘空间利用率较高怎么办
    这篇文章将为大家详细讲解有关数据库中crfclust.bdb占用巨大空间导致磁盘空间利用率较高怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。收到告警日志,提示数据库...
    99+
    2024-04-02
  • redis内存空间效率问题的深入探究
    前言 在使用redis时,我们会遇到一个问题,数据删除后,数据量已经不大了,但是使用top命令查看,还会发现redis占用了很对内存。实际上,因为数据删除后,redis释放内存由内存...
    99+
    2024-04-02
  • InnoDB磁盘空间利用率的查看方法
    这篇文章主要讲解了“InnoDB磁盘空间利用率的查看方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“InnoDB磁盘空间利用率的查看方法”吧! ...
    99+
    2024-04-02
  • 使用香港高防空间会出现哪些问题
    使用香港高防空间会出现的问题有:1、香港高防空间系统重装问题,用户需要注意是否要保留D盘数据;2、香港高防空间远程登录问题,用户可用PING命令测试网络是否连通,若实在解决不了,可咨询技术人员解决;3、香港高防空间更换IP问题,需要具体分析...
    99+
    2024-04-02
  • 排查CPU使用率高Lsass.exe问题
    Lsass.exe(Local Security Authority Subsystem Service)是Windows操作系统中...
    99+
    2023-09-08
    CPU
  • Docker容器日志占用空间过大问题及解决
    目录Docker容器日志占用空间过大问题问题解决方法Docker容器日志清理使用docker-compose.yml文件部署,针对单一容器进行限制修改docker配置文件,全局生效总...
    99+
    2023-05-19
    docker 容器 日志 docker日志占用空间过大 docker日志占用空间
  • 利用 Arthas 精准定位 Java 应用 CPU 负载过高问题
    Arthas 官方社区正在举行征文活动,参加即有奖品拿哦~点击投稿作者 | 张云翔最近我们线上有个应用服务器有点上头,CPU总能跑到99%,我寻思着它流量也不大啊,为啥能把自己整这么累?于是我登上这台服务器,看看它到底在干啥!以前碰到类似问...
    99+
    2023-06-04
  • Win7 32位中audiodg进程CPU占用率过高问题解决方法
      最近有用户win7 32位操作系统下使用酷狗音乐、PPS或千千静音等等播放器时,在任务管理器中查看到audiodg.exe进程CPU占用率过高,导致系统运行缓慢甚至出现假死现象,出现这种问题该如何解决呢   Win7...
    99+
    2023-06-13
    Win7 32位 audiodg进程CPU占用率过高 问题 CPU 占用率 进程 解决
  • mysql内存占用过高的问题
    现象:在mysql运行一天之后,发现内存占用量达到总内存的百分之77,且swap被占用百分之50 问题检查如下: 第一步:开启内存使用的监控服务 mysql> UPDATE performance_schema.setup_inst...
    99+
    2023-09-01
    mysql 数据库 5.7.x linux 运维
  • 如何解决CPU占用过高问题
    这篇文章主要介绍如何解决CPU占用过高问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!电脑CPU占用过高的原因:原因一、软件方面导致CPU占用过高软件方面主要在于系统问题,如系统过于臃肿,开启了非常多的应用程序或电...
    99+
    2023-06-28
  • SUSE系统中如何优化磁盘性能和空间利用率
    优化磁盘性能和空间利用率是提高系统性能和效率的重要一环。以下是在SUSE系统中优化磁盘性能和空间利用率的一些建议: 使用LVM(L...
    99+
    2024-04-02
  • CPU资源占用过高问题解决
    内容摘要:CPU使用率高达100%。碰到这种情况,一般初学者都会选择重装系统来解决,然而其方法效果很好,但是它存在很多缺陷,如重装系统后,原来的系统设置必须重新设置,常用软件也得重新安装,非常麻烦。其实我们完全可以不重装...
    99+
    2023-05-23
    解决 问题 占用 资源 系统 软件 运行 程序
  • 解决VMware内存占用过高问题
    回顾多年的记录笔记方法,… 一、故障现象、 VMware虚拟机使用时间一段时间后,会出现开启VMware客户机内存占用过高问题。 二、故障分析 VMware cache缓存区目录占用太大空间。 2、由...
    99+
    2023-09-01
    ubuntu 服务器 运维
  • JSP空间租用应该注意两个问题
    1. 空间大小与需求匹配:在选择JSP空间租用时,要根据自己的需求来确定所需的空间大小。如果需要建立一个较大的网站,需要确保所租用的...
    99+
    2023-09-12
    JSP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作