我们运行移动游戏后端的计算引擎今天(2018 年 8 月 3 日)随机关闭,日志无法告诉我哪个用户或 IP 地址启动了它。
我已经进行了一些挖掘并进入了 Syslog,其中显示以下内容:
Mar 8 10:58:10 redis-prod-vm systemd[1]: Started Synchronise Hardware Clock to System Clock.
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping Session 5 of user redis.
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping User Manager for UID 999...
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopping Default.
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping Graphical Interface.
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopped target Graphical Interface.
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping Entropy daemon using the HAVEGE algorithm...
Mar 8 10:58:10 redis-prod-vm haveged[369]: haveged: Stopping due to signal 15
Mar 8 10:58:10 redis-prod-vm haveged[369]: haveged starting up
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping Multi-User System.
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopped target Multi-User System.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopped target Default.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopping Basic System.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopped target Basic System.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopping Paths.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopped target Paths.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopping Timers.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopped target Timers.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopping Sockets.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Stopped target Sockets.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Starting Shutdown.
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Reached target Shutdown.
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping Deferred execution scheduler...
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping vsftpd FTP server...
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping LSB: bitnami init script...
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping Regular background program processing daemon...
Mar 8 10:58:10 redis-prod-vm systemd[7558]: Starting Exit the Session...
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping Google Compute Engine user shutdown scripts...
Mar 8 10:58:10 redis-prod-vm systemd[1]: Stopping OpenBSD Secure Shell server...
这种情况一直持续到虚拟机关闭完成,以下是日志:
2018-03-08 10:59:46.073 GMT compute.instances.stop {
"event_timestamp_us":"XXX",
"actor":{"user":""},
"resource":{
"name":"redis-prod-vm",
"type":"instance",
"zone":"us-central1-f","id":"XXX"
},
"event_type":"GCE_OPERATION_DONE",
"trace_id":"XXX",
"operation":{"type":"operation",…
为了安全起见,我已将一些可能很重要的数字替换为 XXX。有人能帮忙解释一下发生了什么吗?
答案1
我发布此答案是为了提出建议@Taher在评论部分更明显:
请查看文档可抢占的虚拟机实例:
抢占式虚拟机是一种可以以比普通实例低得多的价格创建和运行的实例。但是,如果 Compute Engine 需要访问这些资源来执行其他任务,则可能会停止(抢占)这些实例。可抢占实例是 Compute Engine 的剩余容量,因此其可用性随使用情况而变化。
如果您的应用具有容错能力,并且可以承受可能的实例抢占,那么抢占式实例可以显著降低 Compute Engine 成本。例如,批处理作业可以在抢占式实例上运行。如果其中一些实例在处理过程中停止,作业会变慢但不会完全停止。抢占式实例可以完成您的批处理任务,而不会给现有实例带来额外的工作量,也不需要您为额外的普通实例支付全价。
请检查您的实例是否可抢占。
另外,你可以关注文档查看串行端口输出并检查是否有任何有用的日志信息。
此外,请考虑使用使用日志浏览器收集更多故障排除信息。