返回顶部
首页 > 资讯 > 操作系统 >Linux Swap空间利用率过高怎么解决
  • 338
分享到

Linux Swap空间利用率过高怎么解决

2023-07-05 22:07:36 338人浏览 八月长安
摘要

今天小编给大家分享一下linux Swap空间利用率过高怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么

今天小编给大家分享一下linux 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的内存消耗分为:

    • 会话级别的内存消耗:如sort_buffer_size等,每个会话都会开辟一个sort_buffer_size来进行排序操作

    • 全局的内存消耗:例如: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去算一下可以再减少点内存. 把那些内存用到别用呢

    以上就是“Linux Swap空间利用率过高怎么解决”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网操作系统频道。

    --结束END--

    本文标题: Linux Swap空间利用率过高怎么解决

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

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

    猜你喜欢
    • Linux Swap空间利用率过高怎么解决
      今天小编给大家分享一下Linux Swap空间利用率过高怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么...
      99+
      2023-07-05
    • Linux Swap空间利用率过高问题
      目录什么是swap为什么需要swapswap的缺点到底要不要swap?内存不够用内存勉强够用内存充裕那我们的mysql的服务器为什么会发生swap呢?InnoDB的缓冲池缓存什么?有什么用?设置多大合适呢?总结在单独部署...
      99+
      2023-04-06
      Linux Swap Swap空间利用率 Swap空间利用率过高
    • LinuxSwap空间利用率过高问题
      目录什么是swap为什么需要swapswap的缺点到底要不要swap?内存不够用内存勉强够用内存充裕那我们的mysql的服务器为什么会发生swap呢?InnoDB的缓冲池缓存什么?有...
      99+
      2023-05-14
      Linux Swap Swap空间利用率 Swap空间利用率过高
    • linux怎么扩容swap空间
      要扩展Linux的swap空间,可以按照以下步骤进行操作: 首先,使用 free -h 命令检查当前系统的swap空间使用情况。...
      99+
      2024-04-09
      linux
    • UNDO表空间使用率过高
      维护的一个库,最近发现undo表空间的使用率已经到了95%。让undo表空间的自动扩展,或新建undo表空间进行切换都可以解决这个问题。undo表空间自动扩展,可能会导致undo不释放,undo表空间的增大...
      99+
      2024-04-02
    • Linux怎么检查Swap交换空间
      要检查Linux系统中的Swap交换空间,可以使用以下命令: 使用free命令查看Swap交换空间的使用情况: free -h ...
      99+
      2024-04-15
      Linux
    • linux系统怎么增加swap分区空间
      这篇文章主要介绍“linux系统怎么增加swap分区空间”,在日常操作中,相信很多人在linux系统怎么增加swap分区空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux系统怎么增加swap分区空间...
      99+
      2023-06-12
    • win10 gpu占用率过高怎么解决
      这篇“win10 gpu占用率过高怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win10 gpu占用率过高怎么解决...
      99+
      2023-07-01
    • win102004内存占用率过高怎么解决
      这篇文章主要介绍“win102004内存占用率过高怎么解决”,在日常操作中,相信很多人在win102004内存占用率过高怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win102004内存占用率过高怎...
      99+
      2023-07-01
    • mysql内存使用率过高怎么解决
      如果MySQL内存使用率过高,可以尝试以下方法来解决: 优化数据库配置:检查MySQL配置文件,根据实际情况调整缓冲区大小、连接...
      99+
      2024-04-09
      mysql
    • 数据库中crfclust.bdb占用巨大空间导致磁盘空间利用率较高怎么办
      这篇文章将为大家详细讲解有关数据库中crfclust.bdb占用巨大空间导致磁盘空间利用率较高怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。收到告警日志,提示数据库...
      99+
      2024-04-02
    • mongodb 利用率高如何解决
      本篇文章为大家展示了mongodb 利用率高如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Step1: 分析数据库正在执行的请求db.currentOp()...
      99+
      2024-04-02
    • 服务器CPU占用率过高怎么解决
      服务器CPU占用率过高解决的方法:1、关闭不常用端口和多余启动项,以免消耗系统资源和内存;2、不要安装和运行多余的软件,以免出现CPU内存占用率高的情况;3、安装合适的杀毒软件,以免额外增加系统的负担;4、设置应用程序池的回收时间,可以及时...
      99+
      2024-04-02
    • java堆内存使用率过高怎么解决
      Java堆内存使用率过高可能是由于程序中存在内存泄漏、内存分配不合理或者程序存在大量的GC问题等原因导致的。下面是一些解决方法:1....
      99+
      2023-09-27
      java
    • linux程序cpu占用率太高怎么解决
      如果 Linux 程序的 CPU 占用率过高,可以采取以下几个步骤解决:1. 使用 top 或 htop 命令查看占用 CPU 的进...
      99+
      2023-08-08
      linux
    • oracle 11g sysaux表空间使用率非常高的问题解决
      今天发现有个数据库的sysaux表空间暴涨,快要100%了,如图: 查看一下是什么内容占用了空间: 是awr的相关内容,需要重建awr来释放空间,具体重建步骤,请参考我的另一篇博文:http...
      99+
      2024-04-02
    • 怎么在Linux系统上使用交换文件扩展swap空间
      本篇内容主要讲解“怎么在Linux系统上使用交换文件扩展swap空间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux系统上使用交换文件扩展swap空间”吧!想像一种情景,当我们的L...
      99+
      2023-06-12
    • 使用海外linux空间不足怎么解决
      1、升级空间可以联系海外Linux空间提供商,升级空间,以获得更多的资源和更大的存储空间。2、优化网站可以通过优化网站代码、图片压缩...
      99+
      2023-05-21
      海外linux空间 海外空间 空间
    • linux中tmp空间不够怎么解决
      本文小编为大家详细介绍“linux中tmp空间不够怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux中tmp空间不够怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。解决方法:1、利用“vim...
      99+
      2023-07-02
    • linux删除未释放空间怎么解决
      在Linux上,当删除文件或目录后,磁盘空间并不会立即释放。相反,它们被放入一个特殊的回收站,称为“垃圾箱”或“垃圾桶”。这样做是为...
      99+
      2024-04-09
      linux
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作