Linux占用swap分区过高,物理内存还有剩余

问题分析

Swap配置对性能的影响

分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程(或线程),如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。

通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器,随着访问量的增加,对Swap空间的要求也会增加,一般来说对于4G 以下的物理内存,配置2倍的swap,4G 以上配置1倍。

另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的。

故障现象

问题解决

1.关闭swap分区,在关闭swap分区的过程中是一个很漫长的过程。需要等待一段时间。

# swapoff -a && swapon -a

2.swap配置优化:

swappiness参数

表示意义

swappiness=0

最大限度使用物理内存,然后才是 swap空间

swappiness=100

的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

swappiness=60

linux的基本默认设置为60

一般默认值都是60 cat /proc/sys/vm/swappiness

也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。

调整方法

1.临时调整

[[email protected] ~]# sysctl vm.swappiness=0

vm.swappiness = 0

[[email protected] ~]# cat /proc/sys/vm/swappiness

0

# 重启后会回到默认设置的

2.永久调整

[[email protected] ~]# cat>>/etc/sysctl.conf<

vm.swappiness=0

EOF

# 生效

[[email protected] ~]# sysctl -p

vm.swappiness = 0

# 表示最大限度的使用物理内存

原文:https://www.cnblogs.com/gshelldon/p/14703859.html

linux物理内存没用完swap占用大,Linux占用swap分区过高,物理内存还有剩余相关推荐

  1. linux线程调用完类就退出,linux下 c中怎么让才能安全关闭线程 和 linux线程退出时执行的程序(线程清理处理程序)简单例子...

    多线程退出有三种方式: (1)执行完成后隐式退出: (2)由线程本身显示调用pthread_exit 函数退出: pthread_exit (void * retval) ; (3)被其他线程用pth ...

  2. linux c 获取进程 cpu占用率 内存占用情况

    实例如下: #include <stdio.h> #include <unistd.h> #include <sys/time.h> #include <st ...

  3. Linux查看进程是否占用,Linux 下查看哪个进程占用swap空间

    #!/bin/bash echo -e "PID\t\tSwap\t\tProc_Name" # 拿出/proc目录下所有以数字为名的目录(进程名是数字才是进程,其他如sys,ne ...

  4. linux 程序占内存,linux概念之程序占用内存

    1.在linux下,查看一个运行中的程序,占用了多少内存,一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存 ...

  5. Linux 交换内存空间原理(swap)(Linux内存管理)(cgroups)

    文章目录 什么是swap? 为什么需要swap? swap的缺点? 到底要不要swap? 内存不够用 内存勉强够用 内存充裕 桌面环境 服务器环境 swap大小配置多少比较合适? 怎么配置swap? ...

  6. 物理内存不够用,临时增大Linux交换分区的方法

    当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么 操作的程序,这些被释放的空间被临时保存到Swap空间中,等到 ...

  7. linux 程序占内存,linux下,一个运行中的程序,究竟占用了多少内存

    1. 在linux下,查看一个运行中的程序, 占用了多少内存, 通常的命令有php (1). ps aux:html 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存.linux RSS列 ...

  8. linux下的缓存机制及清理buffer/cache/swap的方法梳理

    1)缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果 ...

  9. Linux内核虚拟地址空间,-3G的由来。各个进程的虚拟内存4G,内核总在3-4G。内核的虚拟空间地址-3G,总是指向物理内存的0-1G地址,各个进程的虚拟内核共享这个物理内存

    Linux内核地址空间划分 通常 32 位 Linux 内核地址空间划分 0~3G 为用户空间,3~4G 为内核空间.64 位内核地址空间划分是不同的. Linux内核高端内存 当内核模块代码或线程访 ...

最新文章

  1. 人人都是作曲家:基于深度神经网络的音乐风格迁移
  2. 小白们应当知道的配置系统变量PATH 的小技巧。
  3. 【坑爹微信】微信JSSDK图片上传问题和解决
  4. ORIG1和ORIG2的运用
  5. mapreduce编程实例(3)-求平均值
  6. 不扯淡学数据库实践联系理论-课程
  7. java怎么清空一个文件内容_如何从文本文件中删除特定内容? - java
  8. python计算现场得分_浅谈用 Python 计算文本 BLEU 分数
  9. MySQL在windows的my-default.ini配置
  10. 数据分析20大基本分析方法技术总结【分析目的、分析案例、分析方法与思路】
  11. NOIP2018普及T2暨洛谷P5016 龙虎斗
  12. Java使用ffmpeg将视频转为Mp4格式
  13. led数字字体_led电视质量排行榜
  14. unity 常见的置灰处理
  15. Java各版本的区别
  16. Django - 应用及分布式路由
  17. CVE PoC的精选列表(三)
  18. 英文词典中的那些词性缩写字母的原型
  19. C语言学习必看的N本书-续(一定要看呵)
  20. FreeType之字形分析(一)

热门文章

  1. 计算机维修工初级题库网盘,初级计算机维修工技能试卷.pdf
  2. keil设置c语言字体大小,Keil uVision4怎么放大字体?放大字体和关键字标注颜色方法介绍...
  3. 王家林老师Spark学习第一课
  4. s3c24xx的时钟初始化
  5. MySQL学习笔记_03
  6. 全球与中国高氧潜水电脑市场深度研究分析报告
  7. Jenkins版本升级指南
  8. js技术输入框中输入身份证号自动带出年龄,生日,性别
  9. Python实现QQ定时回复(附源码exe)
  10. PyTorch笔记 - MAE(Masked Autoencoders) PyTorch源码