我在 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%
我在找:
如何有效率的解决此问题
关于如何关闭 Ubuntu 安装中自带的任何磁盘相关功能(例如省电)的说明。
建议在哪里可以找到可以远程聘请的 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