linux物理内存没用完swap占用大,Linux占用swap分区过高,物理内存还有剩余
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分区过高,物理内存还有剩余相关推荐
- linux线程调用完类就退出,linux下 c中怎么让才能安全关闭线程 和 linux线程退出时执行的程序(线程清理处理程序)简单例子...
多线程退出有三种方式: (1)执行完成后隐式退出: (2)由线程本身显示调用pthread_exit 函数退出: pthread_exit (void * retval) ; (3)被其他线程用pth ...
- linux c 获取进程 cpu占用率 内存占用情况
实例如下: #include <stdio.h> #include <unistd.h> #include <sys/time.h> #include <st ...
- Linux查看进程是否占用,Linux 下查看哪个进程占用swap空间
#!/bin/bash echo -e "PID\t\tSwap\t\tProc_Name" # 拿出/proc目录下所有以数字为名的目录(进程名是数字才是进程,其他如sys,ne ...
- linux 程序占内存,linux概念之程序占用内存
1.在linux下,查看一个运行中的程序,占用了多少内存,一般的命令有 (1). ps aux: 其中 VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存 ...
- Linux 交换内存空间原理(swap)(Linux内存管理)(cgroups)
文章目录 什么是swap? 为什么需要swap? swap的缺点? 到底要不要swap? 内存不够用 内存勉强够用 内存充裕 桌面环境 服务器环境 swap大小配置多少比较合适? 怎么配置swap? ...
- 物理内存不够用,临时增大Linux交换分区的方法
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么 操作的程序,这些被释放的空间被临时保存到Swap空间中,等到 ...
- linux 程序占内存,linux下,一个运行中的程序,究竟占用了多少内存
1. 在linux下,查看一个运行中的程序, 占用了多少内存, 通常的命令有php (1). ps aux:html 其中 VSZ(或VSS)列 表示,程序占用了多少虚拟内存.linux RSS列 ...
- linux下的缓存机制及清理buffer/cache/swap的方法梳理
1)缓存机制介绍 在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果 ...
- Linux内核虚拟地址空间,-3G的由来。各个进程的虚拟内存4G,内核总在3-4G。内核的虚拟空间地址-3G,总是指向物理内存的0-1G地址,各个进程的虚拟内核共享这个物理内存
Linux内核地址空间划分 通常 32 位 Linux 内核地址空间划分 0~3G 为用户空间,3~4G 为内核空间.64 位内核地址空间划分是不同的. Linux内核高端内存 当内核模块代码或线程访 ...
最新文章
- 人人都是作曲家:基于深度神经网络的音乐风格迁移
- 小白们应当知道的配置系统变量PATH 的小技巧。
- 【坑爹微信】微信JSSDK图片上传问题和解决
- ORIG1和ORIG2的运用
- mapreduce编程实例(3)-求平均值
- 不扯淡学数据库实践联系理论-课程
- java怎么清空一个文件内容_如何从文本文件中删除特定内容? - java
- python计算现场得分_浅谈用 Python 计算文本 BLEU 分数
- MySQL在windows的my-default.ini配置
- 数据分析20大基本分析方法技术总结【分析目的、分析案例、分析方法与思路】
- NOIP2018普及T2暨洛谷P5016 龙虎斗
- Java使用ffmpeg将视频转为Mp4格式
- led数字字体_led电视质量排行榜
- unity 常见的置灰处理
- Java各版本的区别
- Django - 应用及分布式路由
- CVE PoC的精选列表(三)
- 英文词典中的那些词性缩写字母的原型
- C语言学习必看的N本书-续(一定要看呵)
- FreeType之字形分析(一)
热门文章
- 计算机维修工初级题库网盘,初级计算机维修工技能试卷.pdf
- keil设置c语言字体大小,Keil uVision4怎么放大字体?放大字体和关键字标注颜色方法介绍...
- 王家林老师Spark学习第一课
- s3c24xx的时钟初始化
- MySQL学习笔记_03
- 全球与中国高氧潜水电脑市场深度研究分析报告
- Jenkins版本升级指南
- js技术输入框中输入身份证号自动带出年龄,生日,性别
- Python实现QQ定时回复(附源码exe)
- PyTorch笔记 - MAE(Masked Autoencoders) PyTorch源码