3

每周近两三次,azure vm 停止响应。当它发生时,磁盘读取字节急剧增加,我不知道为什么。我的应用程序没有读盘功能(只写日志)。正如您在图中看到的,读取字节数和磁盘操作数暂时增加,导致服务器冻结。我必须重新启动 VM,并且需要将近 15 分钟才能再次可用。

Azure Ubuntu 虚拟机统计信息

我正在使用 Azure Ubuntu 16.04 VM,大小是标准 B1(1 vcpus,1 GiB 内存)。

我已经检查过这些条件

  • 我的应用程序可能存在内存泄漏
  • 观察应用程序的所有源代码是否存在磁盘读取功能(我的应用程序没有任何磁盘准备操作)
  • 我已将 ubuntu %60 的默认虚拟内存大小更改为 %1
  • 我正在使用 docker 运行我的应用程序,并且我在 vm 上仅使用 1 个 docker 映像实例
  • 我删除了所有虚拟机并再次创建它(包括所有资源,即磁盘/网络等)

我想知道为什么会这样,我该如何调查是什么导致了这个问题。当它发生时,我没有在 ubuntu 上看到任何可疑的运行进程。

4

1 回答 1

3

此问题已由 Azure 技术支持工程师解决(感谢Micah_MSFT

这似乎 Azure VM 内存不足。发生这种情况时,VM 动作不稳定,因此磁盘操作迅速增加,VM 冻结(他们正在调查问题的详细信息并报告给 Linux 技术人员)。

正如 Azure 技术支持工程师所阐明的,有一个名为Swap Space的功能可以帮助保护程序保留存储空间作为处理内存。

这是配置

  1. 打开位于/etc/waagent.conf下的文件,找到这些变量并相应地修改它们:
# Format if unformatted. If 'n', resource disk will not be mounted.​
ResourceDisk.Format=n​   /// change this parameter to "y"

# Create and use swapfile on resource disk.​
ResourceDisk.EnableSwap=n​   /// change this parameter to "y"
​
# Size of the swapfile.​
ResourceDisk.SwapSizeMB=0​   /// change this parameter to "1024"
  1. 重新启动服务以应用更改

sudo systemctl restart walinuxagent.service

而已

在我看来,由于内存不足限制而不必要地增加磁盘使用量会导致 Azure VM 性能下降。

于 2019-07-20T14:39:58.923 回答