作業(yè)智能診斷
本文為您介紹MaxCompute SQL作業(yè)的智能診斷功能,旨在盡可能提供診斷結(jié)果和建議,以協(xié)助您解決作業(yè)報(bào)錯(cuò)問題或提升查詢性能,包括如何查看診斷結(jié)果和建議,以及解讀分析結(jié)果。鑒于查詢性能受多種因素影響,智能診斷僅提供整體查詢性能的部分異常及建議。
有關(guān)更全面的作業(yè)診斷及調(diào)優(yōu)信息,詳情請參見Logview診斷實(shí)踐和SQL調(diào)優(yōu)。
使用限制
當(dāng)前僅支持對SQL作業(yè)進(jìn)行診斷。
查看智能診斷結(jié)果及建議
登錄MaxCompute控制臺,在左上角選擇所屬地域。
在左側(cè)導(dǎo)航欄單擊
,進(jìn)入作業(yè)運(yùn)維頁面。說明查詢作業(yè)時(shí)間范圍默認(rèn)設(shè)定為1小時(shí),您可以根據(jù)項(xiàng)目作業(yè)運(yùn)行的實(shí)際情況進(jìn)行選擇調(diào)整。
單擊目標(biāo)作業(yè)智能診斷列的診斷結(jié)果標(biāo)簽,可跳轉(zhuǎn)至作業(yè)洞察頁面,在作業(yè)概覽頁簽下查看詳細(xì)的診斷結(jié)果說明以及優(yōu)化建議指導(dǎo)。
診斷結(jié)果說明
智能診斷列為空,存在以下情形之一。
作業(yè)運(yùn)行正常,未診斷出異常項(xiàng)。
作業(yè)是在當(dāng)日運(yùn)行完成(智能診斷結(jié)果會在次日統(tǒng)一生成,并添加相應(yīng)標(biāo)簽)。
在2023年11月01日之前運(yùn)行的作業(yè)。
在中國香港、華東2金融云、華北2金融云(邀測)、華北2阿里政務(wù)云1、華南1金融云、日本(東京)、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達(dá))、德國(法蘭克福)、英國(倫敦)、美國(硅谷)、美國(弗吉尼亞)、阿聯(lián)酋(迪拜)、沙特(利雅得)以上地域運(yùn)行的SQL作業(yè)。
若要查看詳細(xì)的診斷結(jié)果,您可以在作業(yè)運(yùn)維頁面單擊目標(biāo)作業(yè)操作列的洞察,手動觸發(fā)診斷。
紅色標(biāo)簽表示作業(yè)報(bào)錯(cuò)信息診斷結(jié)果,橙色標(biāo)簽表示作業(yè)性能診斷結(jié)果。
解讀智能診斷結(jié)果
以下為您介紹SQL作業(yè)智能診斷結(jié)果的含義以及解決方案。
資源不足
當(dāng)作業(yè)使用的計(jì)算資源量持續(xù)低于請求計(jì)算資源量的95%且超過5分鐘,則被判定為資源不足。
對于使用按量付費(fèi)計(jì)算資源運(yùn)行的作業(yè),由于按量付費(fèi)資源池為共享型,計(jì)算作業(yè)無法指定用量,且按需搶占資源。若瞬時(shí)作業(yè)數(shù)量過多,存在因眾多用戶搶占而無法滿足請求的資源量,從而導(dǎo)致作業(yè)資源不足的情況。
對于使用包年包月計(jì)算資源的作業(yè),由于總體作業(yè)運(yùn)行數(shù)據(jù)量大、申請資源多,以及作業(yè)優(yōu)先級低,導(dǎo)致該作業(yè)出現(xiàn)資源等待情況。
此時(shí)您可以前往目標(biāo)作業(yè)的作業(yè)洞察頁面,在資源消耗頁簽查看作業(yè)資源消耗情況及某時(shí)刻計(jì)算Quota的資源分配情況,以判斷導(dǎo)致資源不足的具體原因。然后依據(jù)業(yè)務(wù)情況優(yōu)化任務(wù)執(zhí)行,進(jìn)行作業(yè)優(yōu)先級調(diào)整或計(jì)算資源管理。
數(shù)據(jù)傾斜
數(shù)據(jù)傾斜是大數(shù)據(jù)計(jì)算一個(gè)常見的問題,通常表現(xiàn)為作業(yè)的執(zhí)行進(jìn)度停留在99%,這使人產(chǎn)生作業(yè)執(zhí)行被卡住的印象。這一現(xiàn)象源于數(shù)據(jù)分布不均勻,導(dǎo)致部分Worker迅速完成計(jì)算,而另一些Worker卻需要運(yùn)行較長時(shí)間處理。在數(shù)據(jù)量呈爆炸式增長的大數(shù)據(jù)時(shí)代,數(shù)據(jù)傾斜問題會嚴(yán)重影響分布式程序的執(zhí)行效率。因此必須盡早識別出數(shù)據(jù)傾斜問題,進(jìn)而分析其產(chǎn)生原因并進(jìn)行排查與解決。
MaxCompute根據(jù)以下標(biāo)準(zhǔn)判定作業(yè)是否存在數(shù)據(jù)傾斜問題:
耗時(shí)最長的Worker運(yùn)行時(shí)間大于等于所有Worker平均運(yùn)行時(shí)間3倍,且平均運(yùn)行時(shí)長大于30秒。
存在輸入記錄數(shù)大于等于所有Worker平均輸入記錄數(shù)3倍的Worker。
MaxCompute提供了發(fā)生數(shù)據(jù)傾斜的節(jié)點(diǎn)(Worker)名稱,以便于您后續(xù)通過LogView進(jìn)行排查及調(diào)優(yōu),詳情請參見使用Logview查看作業(yè)運(yùn)行信息。
關(guān)于更多數(shù)據(jù)傾斜場景以及對應(yīng)的解決方案信息,詳情請參見數(shù)據(jù)傾斜調(diào)優(yōu)。
數(shù)據(jù)膨脹
當(dāng)作業(yè)的輸出記錄數(shù)超過輸入記錄數(shù)的10倍時(shí),該Fuxi Task被判定為存在數(shù)據(jù)膨脹問題。
MaxCompute提供了發(fā)生數(shù)據(jù)膨脹的Fuxi Task名稱,以便于您后續(xù)通過LogView進(jìn)行排查及調(diào)優(yōu),詳情請參見使用Logview查看作業(yè)運(yùn)行信息。
關(guān)于更多產(chǎn)生數(shù)據(jù)膨脹的原因和處理措施信息,詳情請參見數(shù)據(jù)膨脹優(yōu)化。
模式回退
MaxCompute作業(yè)運(yùn)行的模式有查詢加速(MCQA)模式和普通模式。
對于數(shù)據(jù)量較大且不需要返回查詢結(jié)果的作業(yè),僅可采用普通模式。因此,在資源和作業(yè)都正常的情況下,作業(yè)運(yùn)行時(shí)長通常不會出現(xiàn)較大波動。
對于數(shù)據(jù)量較小的交互式查詢作業(yè),通常會觸發(fā)查詢加速模式運(yùn)行,該模式下的作業(yè)執(zhí)行速度比普通作業(yè)快。而MaxCompute并不保證作業(yè)每次都能觸發(fā)進(jìn)入查詢加速模式,因此可能出現(xiàn)查詢加速作業(yè)轉(zhuǎn)至普通作業(yè),進(jìn)而導(dǎo)致作業(yè)運(yùn)行時(shí)長未能達(dá)到預(yù)期。
MaxCompute根據(jù)作業(yè)出現(xiàn)的Task Rerun子狀態(tài),判定作業(yè)是否存在模式回退問題。您可選擇在作業(yè)代碼首行添加set odps.service.mode=off;
直接讓作業(yè)采用普通模式運(yùn)行,從而避免嘗試使用查詢加速模式而導(dǎo)致失敗和時(shí)間浪費(fèi)。
作業(yè)報(bào)錯(cuò)信息診斷
對于運(yùn)行失敗的作業(yè),MaxCompute會根據(jù)錯(cuò)誤信息匹配報(bào)錯(cuò)原因類別,并提供相應(yīng)的錯(cuò)誤描述及解決方案,當(dāng)前僅覆蓋了部分SQL類報(bào)錯(cuò),對于未能提供診斷結(jié)果的失敗作業(yè),需要您自行查閱錯(cuò)誤碼,以便進(jìn)行問題的定位和解決方案的查詢。
您有任何相關(guān)問題或需要協(xié)助,可以通過填寫釘釘群申請表單加入MaxCompute開發(fā)者社區(qū)群(釘釘群號:11782920)或您的專屬釘群等方式聯(lián)系我們。
相關(guān)文檔
如何對長周期指標(biāo)的計(jì)算進(jìn)行優(yōu)化,詳情請參見長周期指標(biāo)的計(jì)算優(yōu)化方案。
如何通過MaxCompute控制臺的作業(yè)洞察功能進(jìn)行作業(yè)級別資源分析,了解作業(yè)資源消耗詳情,同時(shí)為您提供優(yōu)化作業(yè)運(yùn)行時(shí)長的建議,詳情請參見作業(yè)級資源分析最佳實(shí)踐。