为Linux配置SWAP文件

由于未知原因,开发服务器没有配置swap(交换分区)。 

虽然有4GB物理内存撑场面,但还是架不住多个tomcat+jetty的啃食,服务器频频死机!  

这时候增加SWAP物理分区是不可能了,但我们可以通过增加swap文件的方式增加swap! 

先看看我们当前的内存占用情况: 
Shell代码   收藏代码
  1. free  

引用
             total       used       free     shared    buffers     cached 
Mem:       4194304    4183512      10792          0      18588    1047644 
-/+ buffers/cache:    3117280    1077024 
Swap:            0          0          0


当前,交互分区设置为0: 
引用
Swap:            0          0          0


通过dd命令增加swap: 
Shell代码   收藏代码
  1. dd if=/dev/zero of=/var/swap bs=1024 count=4096000  

引用
4096000+0 records in 
4096000+0 records out 
4194304000 bytes (4.2 GB) copied, 31.4589 seconds, 133 MB/s


我们将swap文件写在 /var/swap! 

参数: 
  • if 输入
  • of 输出
  • bs 块大小
  • count 总大小


一般SWAP通常是物理内存的1.5~2倍,这里的物理内存达到4GB以上,分配4GB即可! 

这里的服务器物理内存为4194304,也就是4.2GB,我们把swap设置4GB,故count=4096000 

同时,我们需要创建该文件: 

Shell代码   收藏代码
  1. mkswap /var/swap  

引用
Setting up swapspace version 1, size = 4194299 kB


加载该文件: 
Shell代码   收藏代码
  1. swapon /var/swap  


看看swap是否生效: 

Shell代码   收藏代码
  1. free  

引用
             total       used       free     shared    buffers     cached 
Mem:       4194304    4172128      22176          0       5268    1048536 
-/+ buffers/cache:    3118324    1075980 
Swap:      4095992          0    4095992


当前,交互分区设置为4095992: 
引用
Swap:      4095992          0    4095992


查看swap当前状态: 

Shell代码   收藏代码
  1. cat /proc/swaps  

引用
Filename                                Type            Size    Used    Priority 
/var/swap                               file            4095992 0       -1


每次开机执行swap加载命令太烦人了,通过修改/etc/fstab,启动时自动加载SWAP! 
在该文件末尾中追加: 
引用
/var/swap               swap                    swap    defaults        0 0


如果不再需要swap,可以清理该分区: 
Shell代码   收藏代码
  1. swapoff /var/swap  


注:top命令下,想关参数含义 

    * %mem 内存使用率 
    * virt  虚拟内存 
    * res  常驻内存 
    * shr  共享内存 

VIRT:virtual memory usage。Virtual这个词很神,一般解释是:virtual adj.虚的, 实质的, [物]有效的, 事实上的。到底是虚的还是实的?让Google给Define之后,将就明白一点,就是这东西还是非物质的,但是有效果的,不发生在真实世界的,发生在软件世界的等等。这个内存使用就是一个应用占有的地址空间,只是要应用程序要求的,就全算在这里,而不管它真的用了没有。写程序怕出错,又不在乎占用的时候,多开点内存也是很正常的。 

RES:resident memory usage。常驻内存。这个值就是该应用程序真的使用的内存,但还有两个小问题,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。 
SHR:shared memory。共享内存。就是说这一块内存空间有可能也被其他应用程序使用着;而Virt - Shr似乎就是这个程序所要求的并且没有共享的内存空间。 

DATA:数据占用的内存。如果top没有显示,按f键可以显示出来。这一块是真正的该程序要求的数据空间,是真正在运行中要使用的。 



继续top,等待swap产生作用……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值