【发布时间】:2026-02-18 18:30:02
【问题描述】:
我有一个运行 Apache 和 3 个 python 脚本的自定义(1 个 vCPU,2 GB 内存)计算实例的问题,它基本上等待消息并运行一些 SQL 查询并创建报告。有时,整个实例对 Apache、SSH 甚至对串行控制台的访问都没有响应。看起来整个实例都被冻结了。唯一的解决方案是主动登录我的 Google Cloud 帐户并重新启动实例。
我已经检查了磁盘空间,因为 Google 在他们的一个页面中建议这可能会导致实例冻结,但我仍然有 6GB 可用磁盘空间,所以这应该不是问题。
我已添加来自“串行端口 1(控制台)”的日志,以防它有助于诊断问题。
有人可以帮助我找出发生这种情况的原因吗?提前谢谢你。
串行控制台日志输出:
https://pastebin.com/raw/Z9gADmCn
Nov 18 19:14:24 web-server systemd[1]: Stopping System Logging Service...
Nov 18 19:14:24 web-server systemd[1]: Stopped System Logging Service.
Nov 18 19:14:24 web-server systemd[1]: Starting System Logging Service...
Nov 18 19:14:24 web-server systemd[1]: Started System Logging Service.
Nov 18 19:14:25 web-server dhclient[558]: bound to 10.166.0.10 -- renewal in 1434 seconds.
Nov 18 19:14:25 web-server ifup[516]: bound to 10.166.0.10 -- renewal in 1434 seconds.
【问题讨论】:
-
您好,欢迎来到 *。我的建议是添加 Stackdriver 代理,以便在您的 VM 中进行日志记录和监控。下次出现挂起时,请仔细查看 Stackdriver Logging,并通过 Stackdriver 指标检查机器的历史记录。查找可能的资源中断,例如内存或文件句柄或网络连接。 Stackdriver 是您分析的好朋友。控制台日志包含启动启动信息,但不多(意见)。
-
感谢您的建议!我已经添加了它。好像我已经在我的实例上激活了某种类型的日志记录。据我所知,它们没有问题。也许你能看到一些东西? prnt.sc/pyqxykprnt.sc/pyqy7gprnt.sc/pyqyf9
-
这些日志看起来不错......但把自己想象成医生。如果患者生病并且您进行了测试(查看一组日志)并且他们没有显示任何内容,那么您继续前进。我在想内存使用和 CPU 使用可能是下一个。如果一台机器只是“放弃”经验,我会指出它已经耗尽了一些资源。您的解决方案在挂起之前运行了多长时间?我正在嗅探最终耗尽机器的资源泄漏。内存泄漏会表现为内存利用率的增加。
-
这是一个很好的类比!由于我直到现在才登录,我不确定每次重新启动之间间隔了多长时间,但每周说一次并不是一件容易的事。我检查了内存利用率,似乎可能存在缓慢的内存泄漏(在一小时内从 18% 增长到 21%),明天我会再次检查它是否真的在增长。我会告诉你发生了什么,谢谢!图片:prnt.sc/pyrrmz
标签: google-cloud-platform linux-kernel debian google-compute-engine