㈠ linux 清理交换区SWAP,对正在服务器上运行的其它应用有什么影响
SWAP其实就是突发内存,也被称作虚拟内存
如图是真实的内存条,SWAP是从硬盘划分过来,当作突发内存用的。当应用程序技术量过大的时候,会把一些运算放到SWAP里进行
所以如果SWAP内存有正在运行的程序,清理SWAP就会造成错误,所以在运行程序的时候不要清理SWAP分区
㈡ linux swap交换空间不足怎么办
1、使用分区:
在安装OS时划分出专门的交换分区,空间大小要事先规划好,启动系统时自动进行mount。
这种方法只能在安装OS时设定,一旦设定好不容易改变,除非重装系统。
2、使用swapfile:(或者是整个空闲分区)
新建临时swapfile或者是空闲分区,在需要时设定为交换空间,最多可以增加8个swapfile。
交换空间的大小,与CPU密切相关,在i386系中,最多可以使用2GB的空间。
在系统启动后根据需要在2G的总容量下进行增减。
这种方法比较灵活,也比较方便,缺点是启动系统后需要手工设置。
以下是运用swapfile增加交换空间的步骤:
涉及到的命令:
free ---查看内存状态命令,可以显示memory,swap,buffer cache等的大小及使用状况;
dd ---读取,转换并输出数据命令;
mkswap ---设置交换区
swapon ---启用交换区,相当于mount
swapoff ---关闭交换区,相当于umount
步骤:
1、创建swapfile:
root权限下,创建swapfile,假设当前目录为"/",执行如下命令:
# dd if=/dev/zero of=swapfile bs=1024 count=500000
则在根目录下创建了一个swapfile,名称为“swapfile”,大小为500M,也可以把文件输出到自己想要的任何目录中,
个人觉得还是直接放在根目录下比较好,一目了然,不容易误破坏,放在其他目录下则不然了;
命令中选项解释:
---of:输出的交换文件的路径及名称;
---bs:块大小,单位byte,一般为1k即1024个byte;
---count:总块数即空间总大小,单位为块即k;
---if:读取的源空闲空间,为什么是zero,不清楚,先固定这么写吧;
2、将swapfile设置为swap空间
# mkswap swapfile
3、启用交换空间,这个操作有点类似于mount操作(个人理解):
# swapon swapfile
至此增加交换空间的操作结束了,可以使用free命令查看swap空间大小是否发生变化;
4、如果不再使用空间可以选择关闭交换空间,这个操作有点类似于umount操作(个人理解)::
# swapoff swapfile
使用这种方法在每次系统启动时都需要手动设置、开启swapfile,比较麻烦,解决方法:
在 /etc/rc.d/rc.local 文件的末行下追加加以下内容:(编辑这个文件当然是用vi了~)
/sbin/swapon /swapfile
保存后退出,这样在系统启动后,swap空间就会自动加载了;
总结:在安装OS时一定要规划后swap大小,通常为内存的2倍,但是要考虑到以后增加内存的可能,所以可以考虑设的稍大一些,想在虚拟机里面安装oracle10g,发现默认的swap交换空间不满足最低要求,因为我分配的物理内存是1G,那么就按照要求需要2G的swap交换空间,默认只有1G的交换空间。
添加swap交换空间的步骤如下:
第一步:确保系统中有足够的空间来用做swap交换空间,我使用的是KVM,准备在一个独立的文件系统中添加一个swap交换文件,在/opt/image中添加2G的swap交换文件
第二步:添加交换文件并设置其大小为2G,使用如下命令
[root@sense image]# dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000
过段时间就返回如下结果:
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 272.867 seconds, 7.7 MB/s
第三步:创建(设置)交换空间,使用命令mkswap
[root@sense image]# mkswap /opt/image/swap
Setting up swapspace version 1, size = 2097147 kB
第四步:检查现有的交换空间大小,使用命令free
[root@sense image]# free -m
total used free shared buffers cached
Mem: 1011 989 21 0 1 875
-/+ buffers/cache: 112 898
Swap: 1027 0 1027
或者检查meminfo文件
grep SwapTotal /proc/meminfo
第五步:启动新增加的2G的交换空间,使用命令swapon
[root@sense image]# swapon /opt/image/swap
第六步:确认新增加的2G交换空间已经生效,使用命令free
[[root@sense image]# free -m
total used free shared buffers cached
Mem: 1011 995 15 0 4 877
-/+ buffers/cache: 113 897
Swap: 3027 0 3027
或者检查meminfo文件
grep SwapTotal /proc/meminfo
第七步:修改/etc/fstab文件,使得新加的2G交换空间在系统重新启动后自动生效
在文件最后加入:
/opt/image/swap swap swap defaults 0 0
我的操作
[root@weblogic Server]# free
total used free shared buffers cached
Mem: 1785856 1753452 32404 0 38592 1036312
-/+ buffers/cache: 678548 1107308
Swap: 2064376 116 2064260
创建交换空间文件,1000M
[root@weblogic /]# dd if=/dev/zero of=/swapfile bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 28.5423 seconds, 35.9 MB/s
[root@weblogic /]# mkswap swapfile
Setting up swapspace version 1, size = 1023995 kB
[root@weblogic /]# swapon swapfile 打开
[root@weblogic /]#swapoff swapfile 关闭
删除
swapoff swapfile
rm -rf swapfile
㈢ 如何合理设置Linux的swap分区
1、首先在linux中打开terminal命令窗口。
㈣ linux系统swap是什么意思
linux系统swap意思:
1、Swap分区,即交换区,系统在物理内存不够时,与Swap进行交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
2、众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是,“虚拟内存”是隔离每个进程的安全保护网,使每个进程都不受其它程序的干扰。
3、计算机用户会经常遇这种现象。例如,在使用Windows系统时,可以同时运行多个程序,当你切换到一个很长时间没有理会的程序时,会听到硬盘“哗哗”直响。这是因为这个程序的内存被那些频繁运行的程序给“偷走”了,放到了Swap区中。因此,一旦此程序被放置到前端,它就会从Swap区取回自己的数据,将其放进内存,然后接着运行。
㈤ Linux系统怎么调整swap分区大小
可以添加一个swap然后在将原来的那个swap关闭,来达到调整swap大小的目的。
先建立一个1G大小的内存交换空间:
1. 使用dd命令在/tmp目录下新建一个1G的文件:
dd if=/dev/zero of=/tmp/swap bs=1M count=1024
解释:1M是单位,1024M就是总大小1G
2. 格式化/tmp/swap这个文件为swap格式:(用mkswap命令)
mkswap /tmp/swap
3. 先输入swapon -s命令查看原来的swap分区情况,并记下原来的swap分区名字,然后启动新建的swap(仍然用swapon命令):
swapon /tmp/swap
4. 查看效果(用swapon的-s参数):
swapon -s
可以看到所有的swap分区,如果成功了,/tmp/swap必然在里面。
现在应该已经有两个(或两个以上)的swap了,可以使用swapoff命令关闭原来的swap,也可以不关闭原来的swap使得swap更大,反正通过free命令会看到的swap大小是所有swap的总和。swapoff命令的格式类似于这样:
swapoff /dev/hdc8
㈥ 如何解决Linux系统Swap耗尽问题
除非老机子,新机子,一般都不需要SWAP交换分区了.如果是老机子,参考如下解决方法:
1、启动应用时报内存不足,直接Linux命令行top查看下。swap used100%,0free。
2、reboot服务器能有效的释放swap,可是很多情况下是不能重启服务器的。这时就要弄明白是什么占着内存。查看下/proc目录下内容,发现很多数字命名的目录,这些就是Linux的进程了。
3、要让进程释放swap的方法只有kill掉该进程了。写个脚本来查看具体是哪些进程占着内存啦。
一、对/proc目录下所有以数字为名的目录进行遍历
二、1目录是根进程重启会导致系统重启,所以直接排除掉。
三、算出每个进程占用内存的大小,然后按照大小排序
四、输出内存占用大于1MB的进程
4、将运行结果保存到swap.log文件中
5、查看swap.log.10325这个进程内存占用最多有130几M。
6、直接kill掉,然后再top查看。ok,swap一下子释放了很多,搞定。
㈦ 如何管理配置 Linux下Swap交换分区
理解什么是swap分区
Swap是Linux下的虚拟内存分区,他的主要作用是在物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,让当前的程序来使用,这些内存释放出来的空间没有什么操作的程序,这些释放的内存将被保存到swap空间中,等到这写程序在运行的时候,再从swap虚拟空间来读取这些程序给内存来使用。这样中是在系统内存不够用的时候,进行交换。在针对Linux web服务器的时候,调整swap能提高系统很大的性能。
现在操作系统都突破了物理内存的限制,让程序可以操作大于物理内存的空间,虚拟内存想防火墙一样,让每个进程不受其他程序的干扰。
我们需要注意的是不是所以的物理内存数据都会被交换到swap中的,要是所有的内存都放在swap中肯的是不可能的,所以有一部分直接交换到文件系统。当这文件读取的时候,直接从文件系统调用不从swap调用程序文件。
早期的时候经常看见说swap不能超过128M,现在我们的服务器一般不存在这种问题最大可以swap到2048M的.swap空间文件的结构是分页的每一页的大小和内存页的大小是一样的,这样的好处是方便swap空间和内存之间的交换,旧版本的Linux实现Swap空间时,用Swap空间的第一页作为所有Swap空间页的一个“位映射”。这就是说第一页的每一位,都对应着一页Swap空间。如果这一位是1,表示此页Swap可用;如果是0,表示此页是坏块,不能使用。这么说来,第一个Swap映射位应该是0,因为,第一页Swap是映射页。
所以取消了Linux映射的方法。
一般创建swap有两种方法
第一种方法是在创建系统的时候添加swap分区
还有一种是在系统创建完之后再创建swap分区,或者创建临时的swap。我们需要注意的是,在创建系统的时候我们没有swap分区也是能正常安装部署系统的,只是当系统文件调用swa文件的的时候会发生错误,所以我们需要swap不是没有swap不一定能启动起来系统。
查看当前swap资源的使用情况:
Swapon –s free –m
㈧ linux开机自动关闭swap
修改/etc/fstab中内容,将swap哪一行用#注释掉。