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

Windows Azure会为每个虚拟机分配一个临时盘,这个临时盘在Windows Server操作系统中是[D:]盘,在Linux中是/dev/sdb1。值得一提的是,在D系列的虚拟机中,临时盘是SSD存储。显然,临时盘是创建Swap分区的好地方。既然是临时盘,就千万不要把应用和数据存储在上面,否则数据丢了就只能自己哭了。

查看/dev/sdb1的挂载位置

lsblk

假设查找到/dev/sdb1的挂载点是/mnt

创建Swap分区文件

sudo fallocate -l [Swap文件大小,例如:5g] [Swap文件完整路径,例如:/mnt/myswapfile]

修改Swap文件权限

sudo chmod  [Swap文件完整路径]

创建Swap文件系统

sudo mkswap [Swap文件完整路径]

启用Swap分区

sudo swapon [Swap文件完整路径]

接下来执行[free]命令就可以看到Swap分区了。

到此为止,Swap分区就创建完毕了,但是,重启之后,发现Linux系统依然没有Swap分区!没关系,只要修改fstab就可以搞定啦。

[Swap文件完整路径] swap swap defaults  

到此为止,故事貌似是结束了,但是,某天有客户反映,在CentOS 7.1中,这个办法不好使!没错呀,上面的步骤我都是在Ubuntu系统中验证通过的,为什么会这样呢?于是我重新创建了2个VM:1个CentOS 7.1,一个Ubuntu 14.04 LTS。在创建Swap文件的时候,发现Ubunt和CentOS对临时盘[/dev/sdb1]的挂载点不一样:

CentOS——/mnt/resource
Ubuntu——/mnt

除此之外,并没有发现其他不同。上述步骤在Ubuntu 14.04 LTS中依然有效,在CentOS中的确不工作!

经过一番Google,发现某大牛的一段解释:

/mnt/resource(即临时盘/dev/sdb1)是由WALinuxAgent负载挂载的,但是不清楚这个挂载动作会在什么时间完成。而通过fstab挂载Swap分区是在WALinuxAgent挂载/mnt/resource之前就完成的。

那也就是说:在fstab挂载Swap分区的时候,WALinuxAgent还没有把/mnt/resource/挂载到系统中,即:fstab挂载Swap分区是失败的!

好吧,我相信这说法是靠谱的,但是Ubuntu为什么可以呢?

先不管为什么了,那么在CentOS中到究竟应该该如何解决这个问题呢?答案是:修改WALinuxAgent的配置:/etc/waagent.conf

sudo vim /etc/waagent.conf

对以下两行代码进行修改:

# Create and use swapfile on resource disk.
ResourceDisk.EnableSwap=y # Size of the swapfile.
ResourceDisk.SwapSizeMB=[Swap文件大小,单位是MB]
#例如:ResourceDisk.SwapSizeMB=4096

保存后重新启动虚拟机,发现Swap文件已经出现在/mnt/resource中,默认的文件名是:swapfile,,执行[free -m]命令也能看到Swap分区了。至此,问题解决。

不过修改WALinuxAgent配置文件的方式在Ubuntu环境中是不好使的!

总结一下就是:

Ubuntu——手工创建Swap文件,然后修改/etc/fstab挂载Swap分区。

CentOS——修改WALinuxAgent配置文件,自动创建Swap分区。

太繁琐了,给个简单粗暴的办法如何?还真有!

只要别把Swap文件创建在临时盘里面,按照Ubunt的方式[手工创建Swap文件,然后修改fstab挂载]都是可以正常工作的!

只是这么干就没法利用Windows Azure VM的临时盘了,而且,Windows Azure VM的临时盘是不收费的。

至此,关于Windows Azure中Linux VM的Swap分区问题就告一段落啦。

Azure Linux VM Swap 分区的更多相关文章

  1. Linux占用swap分区过高,物理内存还有剩余

    Linux占用swap分区过高,物理内存还有剩余 问题分析 Swap配置对性能的影响 分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误.如果系统的物理内存用光了,系统就会跑得 ...

  2. Linux增加Swap分区

    Linux增加Swap分区 dd if=/dev/zero of=/data/swap/swapfile1 bs=4096 count=2097152 mkswap /data/swap/swapfi ...

  3. linux初学者-swap分区篇

    linux初学者-swap分区篇 swap是虚拟内存,是在硬盘中分区一块区域,当内存占满但是又急迫需要时临时当作内存使用,使用效率低于内存.本文将对linux系统中swap分区的建立做一个简要介绍. ...

  4. Linux 下 swap 分区及作用详解

    我们在安装系统的时候已经建立了 swap 分区.swap 分区是 Linux 系统的交换分区,当内存不够用的时候,我们使用 swap 分区存放内存中暂时不用的数据.也就是说,当内存不够用时,我们使用 ...

  5. 如何不让oracle使用linux的swap分区

    经常看到swap分区被使用,被缓存的内容本来是为了增加命中率,结果去不断换入换出,导致本地磁盘IO增加,影响访问速度.所以在内存充足的情况下,如果我们觉得不需要使用swap分区的时候,那就要想办法尽量 ...

  6. 。linux中swap分区

    1.swap分区的最重要的作用是防止网站流量突然增大而导致系统分配内存不够用而死机. 2.使用swap交换分区,会使服务器的性能降低很多,导致访问速度变慢. 3.交换分区.我们如果没有足够的内存,也许 ...

  7. 在不重装系统的情况下创建Linux的Swap分区

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=649 操作环境: CentOS 7 操作背景: 本文中使用的CentOS Linux系统在安装的时候没有创建Swap ...

  8. linux添加swap分区【转】

    概述 添加交换分区主要是因为安装oracle时碰到交换分区太小时无法安装的情况,这时候就需要添加交换分区了. 操作简介 增加swap分区方法: 1.新建磁盘分区作为swap分区 2.用文件作为swap ...

  9. Linux 修改SWAP分区后导致开机问题

    Linux 系统出现提示原因 扩容后,修改了SWAP,或者安装了双 Linux 系统,在安装后一种 Linux 系统时把 SWAP分区 重新格式化,导致UUID 改变,所以启动时无法加载原来对应UUI ...

随机推荐

  1. Perfect Scrollbar – 完美的 jQuery 滚动条插件

    Perfect Scrollbar 是一个很小的,但完美的 jQuery 滚动插件.滚动条不会影响原来的设计布局,滚动条的设计是完全可定制的.你可以改变几乎所有的 CSS 样式的滚动条,滚动条设计对脚 ...

  2. Mithril – 构建杰出 Web 应用的 JS MVC 框架

    Mithril 是一个客户端的 Javascript MVC 框架.它是一个工具,使应用程序代码分为数据层,UI 层和粘合层.提供了一个模板引擎与一个虚拟的 DOM diff 实现,用于高性能渲染,支 ...

  3. CSS3盒模型温故

    CSS有一种基础设计模式叫盒模型,定义了Web页面中的元素是如何看做盒子来解析的.每一个盒子有不同的展示界面,下面就来介绍盒模型,主要有一下几种盒模型:inline.inline-block.bloc ...

  4. 设置css通用字体

    font-family: "Helvetica Neue","Arial","PingFang SC","Hiragino San ...

  5. jQuery实例集合

    一.返回顶部 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  6. 【高级功能】使用Web存储

    Web存储允许我们在浏览器里保存简单的键/值数据.Web存储和cookie很相似,但它有着更好的实现方式,能保存的数据量也很大.这两种类型共享相同的机制,但是被保存数据的可见性和寿命存在区别. PS: ...

  7. CRM 2013 中业务流程的

    在CRM 2013 中有一个新功能就业务流程,它可以引导用户在既定好的业务规则下操作表单,实现业务之前的衔接.并且让衔接可以视化,能清楚定位到当前的流程在那个节点.我们在配置视图的时候可以将流程阶段放 ...

  8. yii create url (二)

    在Yii中经常要生成URL,不管是为了自动跳转还是仅仅是一个链接.下面对Yii中的URL生成做了一个总结.提示:以下controllerX代表控制器X,actionX代表方法X.在Controller ...

  9. Ubuntu 安装Samba服务器

    1.安装 sudo apt-get update sudo apt-get install samba (如果出现库依赖问题可用命令sudo apt-get install samba libwbcl ...

  10. Android SQL语句实现数据库的增删改查

    本文介绍android中的数据库的增删改查 复习sql语法: * 增 insert into info (name,phone) values ('wuyudong','111') * 删 delet ...