CentOS 手动增加或删除虚拟内存swap区

那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的。它类似于Windows中的虚拟内存。在Windows中,只可以使用文件来当作虚拟内存。而linux可以文件或者分区来当作虚拟内存。

首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M):

free -m

此处可以看到总内存是503M,SWAP不存在。

查看swap信息,包括文件和分区的详细信息

# swapon -s或者

# cat /proc/swaps如果都没有,我们就需要手动添加交换分区。注意,OPENVZ架构的VPS是不支持手动添加交换分区的。

添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用, 则添加交换文件。

一、增加swap交换文件

1、使用dd命令创建一个swap交换文件

dd if=/dev/zero of=/home/swap bs=1024 count=1024000这样就建立一个/home/swap的分区文件,大小为1G。

2、制作为swap格式文件:

mkswap /home/swap3、再用swapon命令把这个文件分区挂载swap分区

/sbin/swapon /home/swap我们用free -m命令看一下,发现已经有交换分区了。

但是重启系统后,swap分区又变成0了。

4、为防止重启后swap分区变成0,要修改/etc/fstab文件

vi /etc/fstab在文件末尾(最后一行)加上

/home/swap swap swap default 0 0这样就算重启系统,swap分区还是有值。

删除swap交换文件

1、先停止swap分区

/sbin/swapoff /home/swap2、删除swap分区文件

rm -rf /home/swap3、删除自动挂载配置命令

vi /etc/fstab这行删除

/home/swap swap swap default 0 0这样就能把手动增加的交换文件删除了。
注意:
1、增加删除swap的操作只能使用root用户来操作。
2、装系统时分配的swap分区貌似删除不了。
3、swap分区一般为内存的2倍,但最大不超过2G

 
二、使用分区来做SWAP(虚拟内存).

1  使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)
2 使用 mkswap 命令来设置交换分区:

# mkswap /dev/sdb23 启用交换分区:

# swapon /dev/sdb24 写入/etc/fstab,以便在引导时启用:

/dev/sdb2 swap swap defaults 0 0删除交换分区
步骤如下:

1、先停止swap分区

/sbin/swapoff /dev/sdb22、删除自动挂载配置命令

vi /etc/fstab这行删除

/dev/sdb2 swap swap defaults 0 0这样就能把手动增加的交换分区删除了。

总结
    其实可以认为,程序使用的内存,都是用的虚拟内存,因此也就没有了物理内存的限制(但还是限制于计算机的寻址位数,比如32位和64位,因为虚拟内存系统需要使用到物理内存)。他可以把自己的一部分放在物理内存中,还有一部分当做缓存放到磁盘中。另外,虚拟内存有相应的虚拟地址,因此,他就可以做到对于每一个程序来说,使用的都是相同的虚拟地址,这些虚拟地址,则可以映射到不同的物理地址,也就是说每个程序都可以把自己想象成自己拥有整台机器的内存。

时间: 2024-10-25 21:20:30

CentOS 手动增加或删除虚拟内存swap区的相关文章

阿里云ECS Linux增加或删除虚拟内存swap

一.增加swap 1.使用如下命令,创建1G的swap空间. dd if=/dev/zero of=/tmp/swap bs=1MB count=1024 2.制作一个swap文件 mkswap /tmp/swap 3.启动swap分区. swapon /tmp/swap 4.此操作只对当前有效,重启服务器后失效.如果想持续保持.可以编辑/etc/fstab文件: vim /etc/fstab 并在其添加以下内容,保存后即可确保增加的虚拟内存swap永久生效. /tmp/swap swap sw

怎么运用asp.net制作图片上传,修改,增加,删除,和手动播放,和自动播放。

问题描述 怎么运用asp.net制作图片上传,修改,增加,删除,和手动播放,和自动播放. 解决方案 解决方案二:参考解决方案三:这是要做毕业设计了吗解决方案四:给啥啊,让他自生自灭解决方案五:引用2楼我本良人的回复: 这是要做毕业设计了吗 课程设计,不是毕业,解决方案六:引用1楼EdsionWang的回复: 参考 可以私聊呢.1076616683解决方案七:引用1楼EdsionWang的回复: 参考 可以私聊呢,1076616683

CentOS添加虚拟内存(swap)教程

没想到阿里云的主机居然没有swap分区,难不成是为了让你买大内存的主机? mysql5.6.27在512M的ECS上是跑不起来,这个问题折腾了我半天 起初是mysql启动不报任何错误,但就是启动不起来,在重启主机后,终于有了报错信息. 报错是分配内存出错,如下: 2015-10-12 15:18:23 1773 [Note] InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed;

ASP.NET中数据库的操作初步----增加、删除、修改

asp.net|数据|数据库 注意:本文暂时不讲解数据库的数据调出和显示,因为他涉及的东西比较多,所以我们将另外详细讲解.本文主要要讲的是数据库的增加.删除.修改. 一.定义OleDbCommand类型变量:MyCommand 要对数据库进行增加.删除.修改的操作我们还需要根据MyConnectio的类型定义一个OleDbCommand或者SqlCommand对象(请注意如果MyConnection是OleDbConnection类型,那么只能用OleDbCommand:如果MyConnecti

增加和删除Excel图表数据

在我们建立一个图表之后,还可以通过向工作表中加入更多的数据系列或数据点来更新它.用来增加数据的方法取决我们想更新的图表的种类――内嵌图表或图表.如果要向工作表中的内嵌图表中添加数据,我们可以拖放该工作表中的数据.使用复制和粘贴是向图表中添加数据最简单的方法. 例如,我们为上例中的销售统计图增加一个"内存"栏目.增加图表数据的操作步骤如下: (1)输入"内存"行的数据. (2)单击激活图表,可以看到数据出现带颜色的线框,在Excel 2000中它们被称作选定柄.因此如

动态的在页面上增加或删除一个文本框

动态|文本框|页面 在web开发中,经常会遇到这样的问题:怎么样动态的在页面上增加或删除一个文本输入框?通常有两种方法:1.利用后台服务:比如在session中设置一个变量num,每点一次"增加"按钮num的值+1,然后页面刷新一下(返回该页面).显示的时候从session中取到num的值,然后使用循环生成input框<% for(int i;i<num;i++)){ %><input type="text" name="aaa&q

mysql中alter数据表中增加、删除字段与表名修改例子

 alter是非常强大的一个功能我们可以利用alter来修改数据表表名字体名及一些其它的操作了,下面一起来看看mysql中alter数据表中增加.删除字段与表名修改的一个例子.     修改删除mysql数据库中的数据内容: [root@hk ~]# /usr/local/mysql/bin/mysql -uroot -p'admin' #进入mysql mysql> create database gbk default character set gbk collate gbk_chines

PHP SESSION的增加、删除、修改、查看操作

 这篇文章主要介绍了PHP SESSION的增加.删除.修改.查看操作,本文直接给出操作实例,需要的朋友可以参考下     SESSION与COOKIE的不同之处首先是,cookie的文件是保存在客户端的,而session是保存在服务器的,相比而言,为了提高一定的安全性,session更具有优势. 因为session在服务器端一般情况是服务器的管理人员管理的,但cookie是在客户端的保存,任何人都可以看的,如果不指定,密码也是明文保存,安全性显而易见. 而且session相对来说更强大一些,可

JavaScript数组Array对象增加和删除元素方法总结

 这篇文章主要介绍了JavaScript数组Array对象增加和删除元素方法,实例总结了pop方法.push方法.splice方法.concat方法等的使用技巧,需要的朋友可以参考下     本文实例总结了JavaScript数组Array对象增加和删除元素方法.分享给大家供大家参考.具体分析如下: pop 方法 移除数组中的最后一个元素并返回该元素. arrayObj.pop( ) 必选的 arrayObj 引用是一个 Array 对象. 说明 如果该数组为空,那么将返回 undefined.