Ubuntu 14.04 在 Hyper-V 下间歇性挂起

Ubuntu 14.04 在 Hyper-V 下间歇性挂起

我在 Windows 2012 R2 主机上的 Hyper-V 虚拟机中运行 Ubuntu Server 14.04.1 LTS。

运行一段时间后,Ubuntu 服务器似乎冻结了(至少是部分冻结)。它在 nginx 下托管的网站停止工作。我可以通过 Putty 连接并输入我的用户名和密码,但会话立即挂起:

登录挂起

当我尝试从控制台登录时,也会发生同样的事情(这使得检查日志/排除故障变得困难)。但是,我确实注意到控制台窗口中有这样的输出:

控制台窗口

如果存在已登录的本地或远程控制台会话,我仍然可以与其交互。但是,任何写入磁盘的尝试都会冻结会话。

我设法抢到了dmesg 转储以及最新内容内核日志。以下是之前的部分 dmesg屏幕截图以防有用。

我认为该问题可能与磁盘 I/O 堆栈有关:

[16209.927138] hv_storvsc vmbus_0_13: cmd 0x35 scsi status 0x2 srb status 0x82
[16209.927142] hv_storvsc vmbus_0_13: stor pkt ffff88003b203100 autosense data valid - len 18
[16209.927144] storvsc: Sense Key : Unit Attention [current]
[16209.927146] storvsc: Add. Sense: Changed operating definition
[16209.927151] sd 0:0:0:0: Warning! Received an indication that the operating parameters on this target have changed. The Linux SCSI layer does not automatically adjust these parameters.
[45841.680551] INFO: task rs:main Q:Reg:882 blocked for more than 120 seconds.
[45841.680580]       Not tainted 3.13.0-32-generic #57-Ubuntu
[45841.680596] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

安装相当新,几乎所有设置都采用默认设置。虚拟机使用 Hyper-V 的“第二代”客户机架构,并禁用安全启动。

我的症状似乎与报告的症状相似这里这里这里,但这些线程已有几年历史了,并且指的是旧版本的客户机和主机。

服务器仍然响应 ping。另请注意,我们在安装 nginx 之前看到了冻结行为。

我认为这不是资源问题。虚拟机有 1GB 的 RAM 和足够的磁盘空间。以下是冻结之前的情况:

  System information as of Sun Aug  3 16:03:30 EDT 2014

  System load:  0.08              Processes:           231
  Usage of /:   3.6% of 96.59GB   Users logged in:     1
  Memory usage: 29%               IP address for eth0: 172.22.0.26
  Swap usage:   0%

我在找:

  1. 如何有效率的解决此问题

  2. 关于如何关闭 Ubuntu 安装中自带的任何磁盘相关功能(例如省电)的说明。

  3. 建议在哪里可以找到可以远程聘请的 Linux + Hyper-V 天才来帮助解决这个问题(也许还有其他偶尔的 Linux 工作)

答案1

我在法国 Ubuntu 论坛上找到了其他遇到 Ubuntu 死机问题的用户的信息:这可能是由“动态滴答”引起的。

他们的解决方案:

cd /etc/default
sudo vi grub

添加nohz=true行的参数GRUB_CMDLINE_LINUX_DEFAULT。然后执行

sudo grub-update

答案2

我想我也遇到了这个问题——你发现了吗:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1470250

相关内容