linux 8g内存 swap,linux可用内存足够为什么还用swap
讨论这个问题前,我们先来看当前系统状态:
1[root@localhost ~]# free -m
2 total used free shared buff/cache available
3Mem: 31768 9809 363 9601 21595 11838
4Swap: 8191 8191 0
为什么 buffer/cache 会占用这么多的内存?
buffer/cache使用过高通常是程序频繁存取文件后,物理内存会很快被用光。
当程序结束后,内存不会被正常释放,而是成为cache状态.
通常我们不需要手工释放swap,Linux会自动管理.
如果非要释放,请继续看.
如何释放占用的swap呢?
1## 将内存缓冲区数据立刻同步到磁盘
2[root@localhost ~]# sync
3## 关闭所有的swap
4[root@localhost ~]# swapoff -a
5## 启用所有swap
6[root@localhost ~]# swapon -a
7[root@localhost ~]# free -m
8 total used free shared buff/cache available
9Mem: 31768 10853 217 16740 20698 3658
10Swap: 8191 0 8191
那么回到最初的问题:
linux可用内存足够为什么还用swap?
上面可以看到服务器共有32G内存,其中buff/cache占用了21G+.
明明还有可以将近12G的内存可以使用.但系统却偏偏占用完了swap的8G内存.
可知系统并没有自动释放buff/cache最大化利用内存.
原因:
内核参数 swappiness 的值的大小,决定着linux何时开始使用swap。
swappiness=0 时表示尽最大可能的使用物理内存以避免换入到swap.
swappiness=100 时候表示最大限度使用swap分区,并且把内存上的数据及时的换出到swap空间里面.
此值linux的基本默认设置为60,不同发行版可能略微不同.
查看命令具体如下:
1[root@localhost ~]# cat /proc/sys/vm/swappiness
260
什么意思呢?
就是说,你的内存在使用率到40%(100%-60%)的时候,系统就会开始出现有交换分区的使用。
大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。
调整值
1[root@localhost ~]# sysctl vm.swappiness=10
2vm.swappiness = 10
3[root@localhost ~]# cat /proc/sys/vm/swappiness
410
重启依旧生效,需要在/etc/sysctl.conf修改:
1[root@localhost ~]# cat /etc/sysctl.conf
2vm.swappiness = 10
3[root@localhost ~]# sysctl -p
题外话
通常我们还经常看到shared占用大量内存,shared表示共享内存的占用,
起决定参数的两个分别是:
1# 定义单个共享内存段的最大值
2kernel.shmmax = 68719476736
3
4# 定义共享内存页数
5kernel.shmall = 4194304 ##(16G)
当前系统内存页大小查看:
1[root@localhost ~]# getconf PAGESIZE
24096
当前系统共享内存段大小(bytes):
1[root@localhost ~]# cat /proc/sys/kernel/shmmax
216777216000
共享内存段个数查看:
1[root@localhost ~]# ipcs -m
内存页和内存段是两种不同的内存管理方式,详细了解可以自行谷歌.
学习安排上!
linux 8g内存 swap,linux可用内存足够为什么还用swap相关推荐
- linux只能用一半的内存,linux可用内存足够为什么还用swap
原标题:linux可用内存足够为什么还用swap 讨论这个问题前,我们先来看当前系统状态: 1 [root@localhost ~]# free -m 2 total used free shared ...
- linux资源利用率检查_使用free命令查看实际内存占用(可用内存)
linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free -m方式查看内存占用情况(兆为单位).而系统实际可用内存是不是free部分呢,不是的,系统实际内存占用以及可用内 ...
- linux下使用free命令查看实际内存占用(可用内存)
linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free -m方式查看内存占用情况(兆为单位).而系统实际可用内存是不是free部分呢,不是的,系统实际内存占用以及可用内 ...
- Linux(Ubuntu)下C++获取可用内存、当前最大内存等信息
Linux(Ubuntu)下C++获取可用内存.当前最大内存等信息 使用sysconf函数获取当前可用内存大小 例程: /// @brief Get the available memory in M ...
- 计算机专业8g内存,win7系统台式机8G内存但是显示可用内存只有3.4G如何解决
有用户在购买台式机安装win7系统,发现明明电脑配置的是8G内存,但是打开计算机属性发现可用内存只有3.4G,遇到这样的问题该怎么办呢,下面给大家分享一下win7系统台式机8G内存但是显示可用内存只有 ...
- 计算机可用内存分配失败,安装内存和实际可用内存不一样什么原因
通常我们安装内存条时候都有显示具体内存,但是有时出现安装内存和实际可用内存不一致?为什么会不一样呢?下面我们一起来看看其中的原因和解决方法. 一.你安装的不是64位Win7系统 Win7 32位只能识 ...
- linux实际内存,为什么Red Hat Linux在系统上报告的可用内存少于实际可用内存?
不要将空闲内存与未使用的内存混淆. unix世界中的空闲内存是一个物理内存页面,没有映射到它的逻辑数据.未使用的内存确实有一些数据映射到它,但它当前没有被正在运行的进程使用. % free -m to ...
- java 可用内存_总可用内存java
我想知道为什么创建大表后总的可用内存没有变化.但是当我使用垃圾收集器时,总的可用内存增加了. import java.util.Random; public class Main{ public st ...
- 释放Ubuntu/Linux系统cache,增加可用内存空间
某台式机内存共3G,但free的内存只有200M,无法满足scala的jvm需求. 注意用top命令查看才能看到真正的free内存.下面是查看真正内存使用量的另一种命令. watch -n 1 cat ...
最新文章
- python框架之Flask基础篇(一)
- 电脑软件:微软Windows官方电脑管家,仅针对国内用户?看看怎么说
- 谷歌发布端到端AI平台,还有用于视频和表格的AutoML、文档理解API等多款工具
- [线段树][树上差分] Jzoj P3397 雨天的尾巴
- SQL Server 高可用方案
- 性能测试--jmeter响应数据中文乱码【12】
- 华为网络设备-FTP文件传输
- win系统的阿里云服务器部署IDEASpringBoot项目保姆级教程
- 成功的IT创始精英访谈之拉里·埃里森——甲骨文软件之父
- Mysql----关联查询
- ESMTP身份验证机制探索手记
- 计算机视觉入门 拜读
- 实验9-9 有理数比较(10 分)
- 什么是函数指针?(理解及使用)
- MapReduce中加强内容
- node readFile读html乱码,nodejs读取本地中文json文件出现乱码
- 2018网站优化人员不同阶段在做哪些事
- 海滩景色Mac高清动态壁纸
- 成功解决Component template should contain exactly one root element
- json字符串转list<对象>
热门文章
- SimBERTv2来了!融合检索和生成的RoFormer-Sim模型
- 报名 | AlphaGo Zero是如何实现无师自通的?
- 蓝桥备赛第一周2021.1.11 递归 枚举 位运算
- 计算机视觉:目标检测的发展历程与基础概念
- 路痴的单身小菡 BFS求最短路径+DFS求路径数
- ajax中return不生效
- java面试开发过程中用到的问题
- Python——OpenCV(opencv-python库)调用摄像头
- 数学好的男生适合学计算机吗,数学好的男生适合读什么专业 2021前景好吗
- 【学习笔记】Redis的geohash数据结构介绍