每周大约有两到三次,azure vm 停止响应。当这种情况发生时,磁盘读取字节数急剧增加,我不知道为什么。我的应用程序没有读取磁盘功能(仅写入日志)。 如图所示,读取字节数和磁盘操作数暂时增加,导致服务器卡住。我必须重新启动虚拟机,并且需要将近 15 分钟才能再次可用。
我使用的是 Azure Ubuntu 16.04 VM,大小为标准 B1(1 个 vcpu、1 GiB 内存)。
我已经检查过这些条件
- 我的应用程序可能存在内存泄漏
- 观察应用程序的所有源代码是否存在磁盘读取功能(我的应用程序没有任何磁盘就绪操作)
- 我已将 ubuntu %60 的默认虚拟内存大小更改为 %1
- 我正在使用 docker 来运行我的应用程序,并且我在虚拟机上仅使用 1 个 docker 镜像实例
- 我删除了所有虚拟机并再次创建了它(包括所有资源,即磁盘/网络等)
我想知道为什么会发生这种情况以及如何调查导致此问题的原因。当它发生时,我没有在 ubuntu 上看到任何可疑的运行进程。
最佳答案
此问题已由 Azure 技术支持工程师解决(感谢 Micah_MSFT)
Azure VM 似乎内存不足。当发生这种情况时,VM 表现不稳定,因此磁盘操作迅速增加,VM 卡住(他们正在调查问题的详细信息并向 Linux 技术人员报告)。
As clarified by Azure Technical Support Engineer, There is a feature named Swap Space which helps the saver to reserve storage space as processing memory.
这是配置
- 打开位于 /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"
- 重新启动服务以应用更改
sudo systemctl restart walinuxagent.service
That's it
我认为,内存不足限制导致磁盘使用量不必要的增加将导致 Azure VM 性能下降。
关于azure - VM 无响应后 Azure Ubuntu VM 服务中的未知磁盘读取字节和磁盘操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57014220/