linux的swap相关
linux的系统采用的内存方案一般都是 物理内存+swap。物理内存供日常使用,swap用来救急。
但在实际使用的过程中,发现有时候物理内存还没被完全占用的情况下,已经开始使用swap了。而这时候,由于I/O瓶颈问题,会导致性能的降低,这就需要我们进行一下调整,能用物理内存的情况下尽量不要使用swap。
1.内核参数的调整。
有个参数,名为vm.swappiness,值的范围大概是0-100,0表示尽量使用物理内存,100表示尽量使用swap,而我们的目的是尽量使用物理内存。
kernel的文档(https://www.kernel.org/doc/Documentation/sysctl/vm.txt)中有如下说明:
swappiness
This control is used to define how aggressive the kernel will swap
memory pages. Higher values will increase agressiveness, lower values
decrease the amount of swap. A value of 0 instructs the kernel not to
initiate swap until the amount of free and file-backed pages is less
than the high water mark in a zone.
The default value is 60.
此时我们就将值设为0。
1) 在 /etc/sysctl.conf 中添加一行:
vm.swappiness=0
2) 执行命令:sysctl -p
3) 验证是否修改成功:sysctl vm.swappiness
2.尽管我们修改了此值,但是在swap中已经有内容了,使用free命令查看swap已经被占用了一些了,那么现在我们想把swap中的内容挪到物理内存中。
已知的一种方法是先将swap关闭,让内核自动完成内容迁移,再把swap打开。
操作方法如下:
1) 查看swap所在的分区:swapon -s
例如是 /dev/sda2
2) 关闭swap分区:swapoff /dev/sda2
3) 重新打开swap分区:swapon -a
4) 验证内存占用情况:free -h
以上记录了linux对swap进行调整的常用操作,可能文章中提到的方法并不是最优的,但是总归算是一种有效的解决方案。更深层次的内容还需要大量参考内核文档。
linux的swap相关的更多相关文章
- 查看linux中swap内存的相关参数
内容主要来源于:linux的内存回收和交换 各项命令查看的linux环境是:Linux SUSE-33 2.6.32.12-0.7-defaul zone? 内存管理的相关逻辑都是以zone为单位的, ...
- [转]Linux 分区 swap
如何合理设置Linux的swap分区 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://commandos.blog.51cto.c ...
- 揭开Linux操作系统的Swap交换区之谜
揭开Linux操作系统的Swap交换区之谜 Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要.通过调整Swap ...
- 【转】【Linux】Swap与Memory
背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的话,会有非常快的读写速度.但是,内存的造价是要高于磁盘的,且内存的断电丢失数据也 ...
- 【Linux】Swap与Memory
背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的话,会有非常快的读写速度.但是,内存的造价是要高于磁盘的,且内存的断电丢失数据也 ...
- 【Linux】Linux中Swap与Memory内存简单介绍
背景介绍 对于Linux来说,其在服务器市场的使用已经占据了绝对的霸主地位,不可动摇.Linux的各种设计思想和使用也被传承(当然不乏各种黑Linux,而且黑的漂亮).Linux的很多独特的设计,对性 ...
- [svc]Linux中Swap与Memory内存简单介绍
swap区域是干嘛的 cpu 内存(不常用到的进程swap区) 磁盘 当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去.但是踢到哪里去,这时候swap就出现了. 背景介绍 对于Linux来说 ...
- linux 的swap、swappiness及kswapd原理【转】
本文讨论的 swap基于Linux4.4内核代码 .Linux内存管理是一套非常复杂的系统,而swap只是其中一个很小的处理逻辑. 希望本文能让读者了解Linux对swap的使用大概是什么样子.阅读完 ...
- Linux中Swap与Memory内存简单介绍
1.背景介绍 这篇文章介绍一下Linux中swap与memory.对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的 ...
随机推荐
- Mysql undo redo 总结
- day3_列表
一.列表 列表也通常被称为list 数组 array 1.列表定义 使用方括号([])即可 alist = [123,'abc','def',666,True] 空列表的定义:alist = [] 或 ...
- RHEL5.5的安装文档
---恢复内容开始--- 1.1 安装操作系统 (1) 按“ENTER”键,进入图形模式安装: (2) 检测CD,点击“Skip”跳过: (3) 安装界面显示,点击“Next”: (4) 选择语言为“ ...
- 《mongoDB》索引
一:基础操作 创建单列索引 语法: >db.collection.createIndex(keys, options) 语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想 ...
- 20165225《Java程序设计》第八周学习总结
20165225<Java程序设计>第八周学习总结 1.视频与课本中的学习: 第十二章学习总结 1.继承Thread类创建线程,程序中如果想要获取当前线程对象可以使用方法:Thread.c ...
- LEO原创-FMX之你不知道的ARC
LEO原创13498714 FMX加入了ARC技术,对象创建后不用释放,FMX会帮你释放,是不是这样就不用关心对象的释放了呢,非也! 写简单的代码,这个功能也许很好用,但如果你写的是一个项目,那隐藏的 ...
- tensorflow入门笔记(三) tf.GraphKeys
tf.GraphKeys类存放了图集用到的标准名称. 该标准库使用各种已知的名称收集和检索图中相关的值.例如,tf.Optimizer子类在没有明确指定待优化变量的情况下默认优化被收集到tf.Grap ...
- nodemcu使用心得1
1.简介 最近迷上了性价比超高的模块nodemcu,它是基于esp8266-12E的非常易用的模块.他可以用lua语言编程,带有丰富的库. 2.硬件 1)esp8266-12E单元模块原理图 经本人实 ...
- java JDBC (五) properties配置文件
1.在src目录下创建文件 database.properties driver = com.mysql.jdbc.Driver url = jdbc:mysql://192.168.0.207:33 ...
- vivado SDK之找不到"platform.h"
解决方法:建工程的时候不要选择empty application,而是选择hello world,里面会自动包含platform.c,platform.h等. 另外,常用的xgpio.h头文件有时候 ...