文档章节

阿里云CentOS服务器挂载Swap分区

VictorHu
 VictorHu
发布于 2015/11/06 13:12
字数 969
阅读 60
收藏 0

环境


Linux版本:CentOS 6.5

内容


在使用阿里云CentOS服务器的时候,发现Swap分区一直为0:

top - 17:55:41 up 2 days,  3:05,  2 users,  load average: 0.61, 0.36, 0.26
Tasks:  79 total,   2 running,  77 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0%us,  3.8%sy,  0.0%ni, 34.8%id, 58.4%wa,  0.3%hi,  0.7%si,  0.0%st
Mem:   1920740k total,  1381600k used,   539140k free,     7044k buffers
Swap:        0k total,        0k used,        0k free,   269528k cached

当时还没怎么注意,后来发现不太对。原来,默认阿里云服务器并没有划分Swap分区,只能自己添加了。 添加Swap分区通常有两种方法: 1.使用未划分的磁盘空间,创建一个分区,然后格式化为swap格式,之后挂载使用。 2.使用dd命令创建一个整块文件,然后格式化为swap格式,作为swap分区使用,之后挂载使用。当然这种方法创建的swap分区性能比第一种方法差一些。

我这里因为整个磁盘在系统初始化的的时候都已经被全部使用,所以只能采取第二种方法。

1.使用dd命令创建一个4G的整块文件

使用df命令查看所有已挂载的磁盘

[root@Serv105 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  1.5G   18G   8% /
tmpfs           498M     0  498M   0% /dev/shm

可以看到里面并没有Swap分区。同时,通过free -m命令看到swap为0:

[root@Serv105 ~]$ free -m
       		  total       used       free     shared    buffers     cached
Mem:          1875       1632        243          0         29        435
-/+ buffers/cache:       1167        708
Swap:         0          0       0

使用dd命令初始化一个Swap文件:

[root@Serv105 ~]$ dd if=/dev/zero of=/var/swap bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 92.0653 s, 46.7 MB/s

2.把/var/swap格式化为swap分区

[root@Serv105 ~]$ mkswap /var/swap
mkswap: /var/swap: warning: don't erase bootbits sectors on whole disk. Use -f to force.
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=7c0630eb-7c7c-4517-a566-5b2d060942c0

3.使用swapon命令开启交换分区

[root@Serv105 ~]$ swapon /var/swap

现在使用free -m命令查看,就可以看到Swap已经可以用了。

[root@Serv105 ~]$ free -m
			  total       used       free     shared    buffers     cached
Mem:          1875       1808         67          0          6       1389
-/+ buffers/cache:        412       1463
Swap:         4095          0       4095

4.设置开机自动挂载Swap分区

前面使用swapon开启交换分区的操作,在系统重启之后就会失效。所以,我们这里需要通过修改/etc/fstab文件,设置成开机自动挂载Swap分区。

[root@Serv105 ~]$ echo '/dev/swap    swap    ext3   defaults   0 0' >> /etc/fstab

5.设置Swap分区使用规则

Swap分区虽然已经启用,但是used一直为0。这是因为Swap分区的启用是有一定规则的。我们可以查看/proc/sys/vm/swappiness文件。

[root@Serv105 ~]# cat /proc/sys/vm/swappiness
0

这个值的意思就是:当内存使用100%-0%=100%的时候,采用Swap分区。当然,这个0的意思并不是绝对的当内存用完了到时候,才使用Swap,只是说尽可能不使用Swap。阿里云服务器默认这个值为0,是因为,采用Swap会频繁读取硬盘,加大IO负担。所以让程序运行尽可能的使用内存而不是Swap。当然,当内存吃紧的时候,还是要用的。这个值通常设置为40%-60%

[root@Serv105 ~]# echo "40">/proc/sys/vm/swappiness

这种修改方式只会临时有效,当系统重启之后,就会失效。想要彻底有效需要修改/etc/sysctl.conf配置文件,里面有一参数vm.swappiness = 0,把它修改为需要的值。

[root@Serv105 ~]# vi /etc/sysctl.conf
[root@Serv105 ~]# sysctl

这是因为系统启动的时候,会先读取/etc/sysctl.conf里面的参数vm.swappiness。通过这个参数来设置/proc/sys/vm/swappiness的值。

[root@Serv225 ~]# free -m
         	  total       used       free     shared    buffers     cached
Mem:          1875       1685        190          0        113        194
-/+ buffers/cache:       1377        498
Swap:         4095          5       4090

现在查看,Swap已经被使用了。

© 著作权归作者所有

共有 人打赏支持
VictorHu
粉丝 1
博文 12
码字总数 14462
作品 0
闵行
阿里云(腾讯云)Linux数据盘挂载

系统盘和数据盘 不管是在阿里云或者腾讯云上买服务器,一般每台都配有一个系统盘和数据盘。 腾讯云: 图(1) 阿里云: 图(2) 系统盘 相当于windows系统中的C盘,不用挂载即可直接使用,不过一...

Mr_OOO
2017/08/23
0
0
【教你玩转云计算】在阿里云一键安装快速部署Oracle11g

云计算时代提供了更方便可靠的IAAS,PAAS和SAAS平台。将已有或正在研发的项目迁移到云计算平台,和传统的服务器部署还是存在一些异同点。 本文手把手教你在阿里云平台快速的部署Oracle11g 环...

威卅信息
06/24
0
0
磁盘格式化、磁盘挂载、增加swap空间

Windows文件系统:NTFS、FAT32、FAT16 Linux文件系统: centos7-xfs默认 centos6-ext4 centos5-ext3 centos4-ext2 mkfs命令 用于在设备上创建Linux文件系统 mkfs.xfs /dev/sdb1 将sdb1分区格...

网虫变网工
2017/11/04
0
0
给阿里云的linux服务器添加swap分区

1、使用top命令查看当前系统是否有交换分区。 运行top命令后,可以在KiB Swap打头的那一行,看到交换分区相关信息。如果显示KiB Swap: 0 total 就说明没有交换分区。从top命令中退出使用“q...

编程老陆
05/25
0
0
Amazon EC2分区

亚马逊云主机Amazon EC2主机为开发者提供了一条免费途径不过需要信用卡申请,也蛮麻烦,公司海外业务用到过亚马逊云,个人感觉centos选镜像定制实例挂磁盘和国内差不多,不过亚马逊加的硬盘刚...

hnxy2001
2016/08/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

什么是集群、分布式、集中式、伪分布式

1. 集中式 将项目等部署到同一台机器上,对机器性能要求比较高,一般会用多台机器备份,否则,如果机器出现死机等状况,整个项目将不能运行。 eg:就好比你要盖一座房子,你房子就给一个人盖...

吴伟祥
44分钟前
1
0
微服务写的最全的一篇文章

今年有人提出了2018年微服务将疯狂至死,可见微服务的争论从未停止过。在这我将自己对微服务的理解整理了一下,希望对大家有所帮助。 1.什么是微服务 1)一组小的服务(大小没有特别的标准,...

Java烂猪皮
45分钟前
1
0
Java 并发编程原理

为什么要使用多线程? 通过多线程提高吞吐量 伸缩性比较好,可以增加 CPU 核心来提高程序性能 什么场景下使用多线程? 如:tomcat BIO Java 如何实现多线程? Thread、Runnable、ExecutorSer...

aelchao
今天
2
0
谨慎的覆盖clone方法

说在前面 有些专家级程序员干脆从来不去覆盖clone方法,也从来不去调用它,除非拷贝数组。 其他方式 可以提供一个构造函数或者工厂去实现clone功能。 相比于clone,它们有如下优势: 不依赖于...

XuePeng77
今天
1
0
什么是最适合云数据库的架构设计?

分布式数据库技术发展多年,但是在应用、业务的驱动下,分布式数据库的架构一直在不断发展和演进。 开源金融级分布式数据库SequoiaDB,经过6年的研发,坚持从零开始打造数据库核心引擎。在技...

巨杉数据库
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部