针对云主机卡死问题的定位分析方法

勿忘初心2018-10-30 11:10

此文已由作者杨延亮授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


问题背景

云主机在运行或者启动的过程中,可能会存在卡死的情况。往往在云主机重启之后又恢复正常,但是问题现场得不到保留,不利于问题的分析定位。本文提供了一种方法,可以通过在云主机所在的物理节点(宿主机)上执行相关命令,来获取云主机卡死时的内存栈信息,以便分析定位(本文只针对Linux虚拟机)。

方法步骤

  1. 假如卡住的云主机UUID为:d1467712-a022-41c9-9963-8f41c6a4b2bd,在宿主机上执行如下命令,可以获取云主机对应的宿主机信息(pubbeta1-nova63.yq.163.org

  2. 登录云主机对应的宿主机,执行如下命令,来生成对应的core文件。
    virsh dump d1467712-a022-41c9-9963-8f41c6a4b2bd d1467712-a022-41c9-9963-8f41c6a4b2bd.core 或者
    virsh dump d1467712-a022-41c9-9963-8f41c6a4b2bd d1467712-a022-41c9-9963-8f41c6a4b2bd.core --memory-ony
    ——需要指出的是,core文件生成的路径需要保留至少和虚拟机内存大小相当的空间,以防core文件生成失败,或生成core文件不完整。此处生成的core文件即包含了云主机卡死时的内存调用栈信息。

  3. 执行crash vmliux vmcore命令即可对生成的core文件进行分析定位
    ——其中vmliux需要云主机对应的kernel-debuginfo和kernel-debuginfo-common这两个包,vmcore即为步骤2中生成的core文件。



免费体验云安全(易盾)内容安全、验证码等服务

更多网易技术、产品、运营经验分享请点击


相关文章:
【推荐】 Clojure基础课程2-Clojure中的数据长啥样?
【推荐】 手把手教你创建私有podspec
【推荐】 活动预告丨易盾CTO朱浩齐将出席2018 AIIA大会,分享《人工智能在内容安全的应用实践》