此文已由做者楊延亮受權網易雲社區發佈。
web
歡迎訪問網易雲社區,瞭解更多網易技術產品運營經驗。安全
雲主機在運行或者啓動的過程當中,可能會存在卡死的狀況。每每在雲主機重啓以後又恢復正常,可是問題現場得不到保留,不利於問題的分析定位。本文提供了一種方法,能夠經過在雲主機所在的物理節點(宿主機)上執行相關命令,來獲取雲主機卡死時的內存棧信息,以便分析定位(本文只針對Linux虛擬機)。spa
假如卡住的雲主機UUID爲:d1467712-a022-41c9-9963-8f41c6a4b2bd,在宿主機上執行以下命令,能夠獲取雲主機對應的宿主機信息(pubbeta1-nova63.yq.163.org)
.net
登陸雲主機對應的宿主機,執行以下命令,來生成對應的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文件即包含了雲主機卡死時的內存調用棧信息。debug
執行crash vmliux vmcore命令便可對生成的core文件進行分析定位
——其中vmliux須要雲主機對應的kernel-debuginfo和kernel-debuginfo-common這兩個包,vmcore即爲步驟2中生成的core文件。orm
更多網易技術、產品、運營經驗分享請點擊。內存
相關文章:
【推薦】 Question|移動端虛擬機註冊等做弊行爲的破解之道
ci