如何排查导致我的 Lightsail 实例无响应的常见问题?

上次更新时间:2021 年 10 月 12 日

我的 Amazon Lightsail 实例没有响应。造成这种情况的常见原因有哪些?如何对其进行问题排查?

简短描述

如果您的实例没有响应,请检查状态检查实例指标以确定问题排查步骤。Amazon Lightsail 使用两种状态检查来监控每个实例的运行状况:

系统状态检查:系统状态检查用于检测运行实例的底层主机存在的问题。如果底层主机因网络、硬件或软件问题而没有响应或无法访问,则此状态检查将会失败。

实例状态检查:实例状态检查失败表示实例因操作系统级别的错误而出现问题。操作系统级别的错误包括以下方面:

  • 未能启动操作系统。
  • 未能正确挂载卷。
  • 文件系统问题。
  • 驱动程序不兼容。
  • 内核崩溃。

实例状态检查也可能因资源利用率过高而失败。下面是因资源利用率过高而可能导致运行状况检查失败的三个最常见原因:

  • 当负载较重时,您的实例可能处于某个可突增的区间,这可能使实例无响应或导致实例崩溃。
  • 根设备的利用率达到 100%,实例在启动时卡住。
  • 在该实例上运行的进程使用了它的全部内存,从而阻止内核运行。

解决方法

查看实例的状态检查指标,以确定实例的系统状态检查或实例状态检查是否失败。

系统状态检查失败

如果系统状态检查失败,则必须停止并启动实例以将其迁移到某个运行正常的新主机。您也可以手动停止并启动实例,以将其迁移到运行正常的新主机。

注意:停止并启动不等同于重启。必须启动才能将实例迁移到运行正常的硬件。

警告:在停止并启动实例之前,请注意实例的公有 IP 地址在每次实例停止并启动时都会更改。如果您需要在每次实例停止并启动时不会更改的公有 IP,则可以附加一个静态 IP 地址

实例状态检查失败

如果实例状态检查失败,则可能是由于操作系统级别的问题导致启动错误或实例的资源利用率过高。以下是实例状态检查失败的常见原因:

CPU 利用率过高

查看实例的 CPU 利用率指标。注意 CPU 利用率是否超过可持续的区间,这意味着您的实例处于可突增区间并且负载较重。如果是这种情况,请使用以下选项排查问题:

  • 重启实例,使其恢复正常运行状态。
    注意:如果实例的 CPU 需求高于当前实例计划可以提供的容量,重启后将会再次发生问题。
  • 考虑切换到更大的实例计划以满足您的 CPU 需求。

内存耗尽

如果内存耗尽,内核将没有足够的内存来运行。发生这种情况时,其他进程将会停止以释放内存,从而导致实例无响应。您可以尝试重启或停止并启动实例。这些操作可减少内存使用量。

磁盘已满错误

如果设备上没有剩余空间并且文件系统已达到其容量限制,则实例可能会由于根设备已满而进入紧急模式。要解决此问题,您可以升级到具有更大卷大小的 Lightsail 计划或捆绑包。

要将 Lightsail 计划升级到更大的实例,请执行以下操作:

1.    为您的实例创建一个快照

2.    利用该快照创建一个更大的实例

3.    升级 Lightsail 计划后,请连接到您的实例。

4.    运行 lsblk 命令检查磁盘布局。即使磁盘空间增加了,也可能存在可用空间不足的问题,导致无法运行可增加分区和文件系统的自动进程。如果发生这种情况,请释放一些空间,然后手动增加分区,然后增加文件系统。为此请运行以下命令:

运行 growpart 命令来增加根分区或分区 1 的大小:

$ sudo growpart /dev/xvda 1

运行 lsblk 命令来验证分区 1 已经扩大:

$ lsblk

扩展文件系统。使用以下命令验证根分区“/”的文件系统:

$ lsblk -f

下例扩展了分区1 上的 EXT2/EXT3/EXT4 文件系统:

$ sudo resize2fs /dev/xvda1

下例扩展了一个 XFS 类型的文件系统。此例中的“/”是卷挂载点。

$ sudo xfs_growfs -d /

扩展文件系统后,运行 df -h 命令以验证操作系统是否可以看到增加的空间。

$ df -h

其他操作系统级别的问题

其他问题包括启动问题、内核崩溃和网络故障。此外还可能是块储存设备错误、软件错误、任务卡滞或异常的系统问题。所有这些都可能导致实例无响应。尝试重启或停止并启动实例。如果重启或停止并启动无法解决问题,则可能需要将 Lightsail 服务器迁移到 EC2 以进一步排查问题。这是因为 Lightsail 适用于较简单的工作负载,提供的问题排查选项有限。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?