在搭建开发环境,但 Azure 上的 Linux 虚拟机无法启动!
首先「重启一下」,登录 Azure 管理门户,重启有问题的虚拟机。结果一台恢复正常了,另一台还是无法启动。
虽然没显示错误信息,但至少咱还有启动日志可以看看。打开启动日志,发现:
从日志中可以看到,系统任务在等待 IO 超过 120 秒后依旧没有得到响应,导致该任务被阻止。
IO 超时未响应的原因有多种,例如磁盘下线、存储有严重延迟、磁盘阵列(RAID)工作异常,或者 Linux 虚拟机本身的 CPU 和内存资源不足等。既然「重启一下」大杀器在这台机器上不好使,就再试试新建一个虚拟机吧!
首先要删除之前虚拟机但保留磁盘,然后基于该磁盘新建虚拟机,修改内核参数:
1、编辑/etc/sysctl.conf,增加(或修改)下列参数:
2、保存并退出,然后执行上述改动立即生效命令:
果然,凭我多年经验,三分钟问题成功解决。
顺便提一句:这个方案仅适用于 CentOS 和 RHEL,其他版本 Linux 略有不同,仅供参考。如果公司的业务生产对内核参数严格要求的,请参考相关参数的说明,酌情进行修改配置。