博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运行预构建 Linux 映像的 Windows Azure 虚拟机中的交换空间 – 第 1 部分
阅读量:6233 次
发布时间:2019-06-21

本文共 1573 字,大约阅读时间需要 5 分钟。

本文章由 Azure CAT 团队的 撰写。

随着基础结构服务(虚拟机和虚拟网络)近期在 Windows Azure 上正式发布,越来越多的企业工作负荷正在向公共云迁移,以利用云经济效益、规模和速度。我最近参与了其中一种企业工作负荷 - 云中的大数据。在此,我将与您分享一些提示和最佳做法。

该项目要求使用预构建 Linux 映像在 Windows Azure 中部署多节点 Hadoop 群集。我使用 Windows Azure 镜像库中的 CentOS 6.3 映像配置了一个中型虚拟机 (VM),并继续部署单节点核心 Hadoop。一切都很正常,只是当我开始测试稍繁重的工作负荷时,我发现 VM 会经常冻结或变得反应迟钝。

不难看出,这与中型 VM 的资源有关 – 毕竟它只有 2 个 CPU 核及 3.5 GB 内存。但是,我没想到整个 VM 会变得反应迟钝甚至开始掉线。在与我的朋友和同事讨论此问题之后,我们确信是因为 VM 根本没有配置交换空间(即,Windows 上所说的页面文件)。因此,当内存压力增加时,其虚拟内存系统无法交换至磁盘。

您可以检查系统如何通过在 Linux shell 提示符下运行“free”命令来查看系统如何使用内存,尤其是,您可以使用“cat /proc/swaps”查看交换空间的状态 – 配置的内存大小,以及正在使用中的内存大小。请参阅下面的屏幕截图。

默认情况下,对于在 Windows Azure 虚拟机中配置的 Linux VM,根本未配置交换空间, 因此“cat /proc/swaps”不会返回任何内容,同样,“free”命令不会显示任何正在交换的活动。

一个有趣的问题是,为什么使用 Linux 库映像(即来自 Windows Azure 镜像库的映像)的 VM 配置不会自动配置交换空间。我们思考了一下发现这是因为用户应该决定交换空间的大小和位置并进行后期配置。但是,很有可能出现这种情况:某位用户持续使用从未配置交换空间的 VM,直到进程开始崩溃或 VM 冻结。

也就是说,一旦我们意识到我们需要做的就是配置交换空间,便立即按照一系列简单步骤在资源磁盘上配置基于文件的交换空间;Windows Azure 中的中型虚拟机配备 135 GB 的资源磁盘,安装为“/mnt/resource”。下面介绍在 VM 上配置基于文件的交换空间的步骤。

·   使用“fallocate”命令分配适当大小的交换文件,如在资源磁盘上分配 5GB。语法为:“fallocate -l 5g /mnt/resource/swap5g”,其中“swap5g”是文件名

·   使用“chmod”命令更改文件的权限,确保只有root用户具有交换文件的读/写权限。语法为:“chmod 600 /mnt/resource/swap5g”

·   使用“mkswap”命令将文件设置为交换区域。语法为:“mkswap /mnt/resource/swap5g”

·   使用“swapon”命令启用交换文件。语法为:“swapon /mnt/resource/swap5g”

·   现在,交换空间可供使用,并且通过“cat /proc/swaps”命令应该可以进行确认。向“/etc/fstab”文件添加条目,这样即使 VM 在 Azure 中进行回收,仍可保留交换设置。语法为:echo “/mnt/resource/swap5g  none  swap  sw  0 0” >> /etc/fstab

下图是在我的 VM 上执行上述命令的记录。

鸣谢:感谢我的同事 Amit Srivastava 帮助我排查和解决交换问题。

 

本文翻译自:

 

转载于:https://www.cnblogs.com/wuwa/p/6192054.html

你可能感兴趣的文章
IP、UDP初探
查看>>
分布式系统中常见技术解决的问题是什么?
查看>>
WWDC 2018:理解崩溃以及崩溃日志
查看>>
「 iOS知识小集 」2018 · 第 40 期
查看>>
太极越狱重大安全后门
查看>>
一步一步学ROP之linux_x86篇
查看>>
【译】Ruby2.6的JIT功能,编译和解释型语言的相关说明
查看>>
架构设计知识梳理(2) Flux
查看>>
Android当内存监控到阈值时应该怎么办?
查看>>
阿里云宣布与国内规模最大的汽车企业上汽集团合作
查看>>
调试js碰到循环断点(debugger),应该怎么做?
查看>>
JB的测试之旅-网站的响应式与自适应
查看>>
图解 SQL 里的各种 JOIN
查看>>
2018 总结
查看>>
网页图标的优雅使用与总结
查看>>
iOS 录制视频时,添加水印
查看>>
工厂模式 抽象模式
查看>>
搞懂“分布式锁”,看这篇文章就对了
查看>>
1 序言 [全栈攻城师的技术札记]
查看>>
LeetCode之DI String Match(Kotlin)
查看>>