swap分区
        通常memory是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存的造价是要高于磁盘的,虽然相对来说价格一直在降低。除此之外,内存的断电丢失数据也是一个原因说不能把所有数据和程序都保存在内存中。既然不能全部使用内存,那数据还有程序肯定不可能一直霸占在内存中。当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去。但是踢到哪里去,这时候swap就出现了。swap全称为swap place,即交换区,当内存不够的时候,被踢出的进程被暂时存储到交换区。当需要这条被踢出的进程的时候,就从交换区重新加载到内存,否则它不会主动交换到真实内存中。
 
       计算机对内存分为物理内存与虚拟内存(注意虚拟内存和虚拟地址空间的区别)。物理内存就是计算机的实际内存大小,由RAM芯片组成的。虚拟内存则是虚拟出来的、使用磁盘代替内存。虚拟内存的出现,让机器内存不够的情况得到部分解决。当程序运行起来由操作系统做具体虚拟内存到物理内存的替换和加载(相应的页与段的虚拟内存管理)。这里的虚拟内存即所谓的swap。
        当用户提交程序,然后产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出swap扮演了一个非常重要的角色,就是暂存被换出的进程。内存与swap之间是按照内存页为单位来交换数据的,一般Linux中页的大小设置为4kb。而内存与磁盘则是按照块来交换数据的。
   
 
 
调整swappiness参数
 
swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60,具体如下:
一般默认值都是60   
[root@timeserver ~]# cat /proc/sys/vm/swappiness
60
也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存。
通过sysctl -q vm.swappiness可以查看参数的当前设置:
[root@admin ~]$ sysctl -q vm.swappiness
vm.swappiness = 30
 
临时调整的方法如下,我们调成10:
[root@timeserver ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@timeserver ~]# cat /proc/sys/vm/swappiness
10
这只是临时调整的方法,重启后会回到默认设置的
要想永久调整的话,需要将
需要在/etc/sysctl.conf修改,加上:
[root@timeserver ~]# cat /etc/sysctl.conf
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
vm.swappiness=10
激活设置
[root@timeserver ~]# sysctl -p
在linux中,可以通过修改swappiness内核参数,降低系统对swap的使用,从而提高系统的性能。

centos swap分区的更多相关文章

  1. CentOS增加swap分区

    使用dd命令创建一个swap分区 [root@localhost Desktop]#dd if=/dev/zero of=/home/swap bs=1024 count=1048576 count的 ...

  2. centos 手动增加swap分区

    SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...

  3. Centos扩容swap分区

    今天在vps上装了个msf,装了一半竟然被kill掉了,因为RAM只有512M,swap也只有130M.遂到网上寻求解决办法,下面是我的笔记: 查看当前swap大小: free -h 修改swap大小 ...

  4. centos系统swap设置 查看swap分区的方法

    交换分区swap,意思是“交换”.“实物交易”,它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefi ...

  5. centos/linux扩容Swap分区

    查看现在的swap容量 [root@node1 ~]# free -h total used free shared buff/cache available Mem: 15G 3.8G 2.1G 5 ...

  6. CentOS下SWAP分区建立及释放内存详解

    方法一: 一.查看系统当前的分区情况: >free -m 二.创建用于交换分区的文件: >dd if=/dev/zero of=/whatever/swap bs=block_size ( ...

  7. Centos修改swap分区大小

    1. 查看当前分区情况 free -m 2. 增加swap大小 dd if=/dev/zero of=/var/swap bs=1024 count=12288000 #增加12G空间 3. 设置交换 ...

  8. CentOS Linux安装后扩充SWAP分区

    1. 首先先查看目前swap分区大小:     free -hm    total used free shared buffers cached    Mem: 11G 801M 10G 236K ...

  9. Azure Linux VM Swap 分区

    默认情况下,Windows Azure上的Linux VM是没有Swap分区的.下面我们以Ubuntu为例,为Windows Azure上的Linux虚拟机创建Swap分区. Windows Azur ...

随机推荐

  1. PJzhang:今天才搞清身份证、银行卡……的编码规则

    猫宁!!! ​​   之前思考过常见证件的编码规则,抽空查了一下,发现挺有意思.   一般查询证件或者手机号归属地都是直接百度小工具,但是背后的查询机制如何,可能大多人不甚了解.   介绍几种生活中最 ...

  2. Linux中命令别名alias与命令替换

    当我们使用bash进行一些操作的时候,希望一些较为长的命令使用一些短的命令即可完成输入运行的话,我们就可以使用alias命令别名来帮助我们完成这个任务 alias作为一个bash的内置命令,具有一定的 ...

  3. 神经网络中batch_size参数的含义及设置方法

    本文作者Key,博客园主页:https://home.cnblogs.com/u/key1994/ 本内容为个人原创作品,转载请注明出处或联系:zhengzha16@163.com 在进行神经网络训练 ...

  4. 【机器学习】Learning to Rank入门小结 + 漫谈

    Learning to Rank入门小结 + 漫谈 Learning to Rank入门小结 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 特征抽取 3.1 人工 ...

  5. HDU 1260 Tickets (动态规划)

    Tickets Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  6. UML表示类图和对象图

    类图表示不同的实体(人.事物和数据)如何彼此相关,显示了系统的静态结构.类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类,比如摇滚乐队.CD.广播剧,或者贷款.住房抵押.汽车信贷及利率的抽 ...

  7. python-day37(正式学习)

    前景回顾 抢票系统的代码优化,使用了Lock类 from multiprocessing import Process,Lock import os,time,json with open('user ...

  8. Thinkphp5.0上传图片与运行python脚本

    这里只体现了php可以通过批处理文件调用python脚本的效果 控制器代码 访问路径为127.0.0.1/index/index/upload. index模块,index控制器,upload方法. ...

  9. 数据绑定-@RequestParam

    @PathVariable,前面已经讲过了 @RequestParam 作用:获取请求中的参数,GET请求,问号后面的请求参数,POST:请求体中的KV数据. 测试:

  10. java实现spark常用算子之join

    import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spa ...