GaussDB for DWS 負(fù)載管理核心技術(shù)解密二: 白話歷史資源監(jiān)視

      網(wǎng)友投稿 859 2025-04-04

      文章目錄


      1. 負(fù)載管理簡(jiǎn)介

      2. 資源監(jiān)視功能介紹

      負(fù)載管理(WLM)簡(jiǎn)介

      對(duì)于任何一個(gè)分布式數(shù)據(jù)庫(kù)而言,無(wú)論數(shù)據(jù)庫(kù)集群規(guī)模有多大,其計(jì)算資源(CPU、內(nèi)存)與存儲(chǔ)資源(磁盤空間、網(wǎng)絡(luò)、IO)總歸是有上限的。對(duì)于數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用而言,隨著業(yè)務(wù)規(guī)模的逐日累積,當(dāng)數(shù)據(jù)量或者查詢作業(yè)達(dá)到一定的規(guī)模,不同組織、不同用戶之前的必然會(huì)出現(xiàn)計(jì)算、存儲(chǔ)資源的爭(zhēng)搶,在無(wú)人干預(yù)的情況下,數(shù)據(jù)庫(kù)系統(tǒng)通常會(huì)“笨”的想著把你的所有業(yè)務(wù)都盡可能快的執(zhí)行完,通常會(huì)導(dǎo)致所有的業(yè)務(wù)執(zhí)行速度都變慢了。GaussDB 負(fù)載管理(WLM)存在的目的就是為了讓資源的分配合理化,重要的作業(yè)優(yōu)先運(yùn)行,次要的作業(yè)在資源不足情況下避免爭(zhēng)搶他人資源。

      當(dāng)然,如何能用好GaussDB 負(fù)載管理(WLM)的配置功能,不是一件一蹴而就的事情,業(yè)務(wù)是復(fù)雜的,一個(gè)組織/用戶的運(yùn)行作業(yè)是計(jì)算密集型還是存儲(chǔ)密集型,往往通過(guò)猜得到的結(jié)果是背道而馳的。這也是本文存在的意義,希望讀者能夠通過(guò)GaussDB所提供的資源監(jiān)視功能,將資源監(jiān)視功能作為有效的度量工具,來(lái)衡量各組織/用戶的資源爭(zhēng)搶情況,進(jìn)而通過(guò)負(fù)載管理功能做好計(jì)算/存儲(chǔ)資源的劃分,讓你的數(shù)據(jù)庫(kù)“聰明”起來(lái)。

      資源監(jiān)視功能介紹

      對(duì)于用戶而言,數(shù)據(jù)庫(kù)負(fù)載不高的情況下,通常不會(huì)在意數(shù)據(jù)庫(kù)里面跑了什么作業(yè),通常當(dāng)用戶察覺(jué)到作業(yè)變慢的時(shí)候,才會(huì)開(kāi)始琢磨作業(yè)為什么慢了,是不是數(shù)據(jù)庫(kù)里面有別的作業(yè)影響到我了。此時(shí),用戶將會(huì)找到管理員,要求解決性能劣化的問(wèn)題。而用戶給管理員提供的信息會(huì)非常簡(jiǎn)單,在什么時(shí)間執(zhí)行了一個(gè)什么語(yǔ)句,以前這個(gè)語(yǔ)句幾分鐘能夠運(yùn)行結(jié)束,現(xiàn)在要多長(zhǎng)時(shí)間才能跑完。并且,劣化作業(yè)有可能因業(yè)務(wù)原因,不能隨意執(zhí)行,無(wú)法讓管理員去復(fù)現(xiàn)定位。管理員只能等到數(shù)據(jù)庫(kù)系統(tǒng)中,依據(jù)這簡(jiǎn)單的信息,期望能發(fā)現(xiàn)一些線索。GaussDB提供了完善的資源監(jiān)視功能,能夠幫助管理員在這兩個(gè)信息的基礎(chǔ)上分析歷史某個(gè)時(shí)間點(diǎn)發(fā)生的問(wèn)題。

      總結(jié)一下,管理員現(xiàn)在拿到的信息:1) 作業(yè)執(zhí)行起始時(shí)間;2) 用戶名; 3) 作業(yè)的SQL語(yǔ)句。

      下面,請(qǐng)跟隨我以管理員的視角,在有限信息的情況下,來(lái)逐層遞進(jìn)分析,找到作業(yè)“慢”在哪。

      功能一:歷史TopSQL

      GaussDB 提供了記錄所有在數(shù)據(jù)庫(kù)中執(zhí)行SQL語(yǔ)句的功能,管理員可以通過(guò)打開(kāi)enable_resource_track開(kāi)關(guān)來(lái)啟用這個(gè)功能,并且可以調(diào)整resource_track_duration參數(shù)來(lái)過(guò)濾掉執(zhí)行時(shí)間較短的作業(yè),著重于分析執(zhí)行時(shí)長(zhǎng)較長(zhǎng)的作業(yè)。GaussDB 提供記錄歷史TopSQL這一功能的目的,就是為了方便用戶做性能調(diào)優(yōu),TopSQL的數(shù)據(jù)表pgxc_wlm_session_history中詳細(xì)記錄了作業(yè)的執(zhí)行時(shí)間、內(nèi)存消耗、下盤量、CPU消耗、IO占用等信息,在業(yè)務(wù)變更、作業(yè)變更前后,可通過(guò)對(duì)比來(lái)分析SQL是否出現(xiàn)劣化。

      數(shù)據(jù)表pgxc_wlm_session_history提供的關(guān)鍵信息簡(jiǎn)述如表格,管理員能夠分析的可能現(xiàn)象也在表格中:

      A1: block_time較大,而duration值并無(wú)明顯變化,說(shuō)明用戶作業(yè)受其它作業(yè)影響,在真正開(kāi)始執(zhí)行前進(jìn)行了較長(zhǎng)時(shí)間的排隊(duì),下一步需要接著查看本數(shù)據(jù)表,統(tǒng)計(jì)起始時(shí)間小于start_time、結(jié)束時(shí)間大于finish_time的作業(yè)數(shù)量。

      A2: block_time較小,而duration值較大,說(shuō)明用戶作業(yè)執(zhí)行時(shí)間增加較大原因是自己導(dǎo)致,需要繼續(xù)分析數(shù)據(jù)量的變化情況、各DN的執(zhí)行時(shí)間變化。

      abort_info

      min_peak_memory

      B1: 對(duì)于同一個(gè)查詢,可對(duì)比前后幾次的內(nèi)存消耗情況,內(nèi)存消耗平均值能夠反映出數(shù)據(jù)表的數(shù)據(jù)量是否有變化,memory_skew_percent值能夠側(cè)面反映出相關(guān)數(shù)據(jù)表在各DN上的數(shù)據(jù)分布是否有傾斜。

      并且,query_plan能夠直接顯示作業(yè)的執(zhí)行計(jì)劃,對(duì)比執(zhí)行計(jì)劃是否有變化。

      max_peak_memory

      average_peak_memory

      語(yǔ)句執(zhí)行過(guò)程中的內(nèi)存使用平均值,單位MB。

      memory_skew_percent

      max_spill_size

      average_spill_siz

      GaussDB for DWS 負(fù)載管理核心技術(shù)解密二: 白話歷史資源監(jiān)視

      spill_skew_percent

      min_dn_time

      max_dn_time

      語(yǔ)句在所有DN上的平均執(zhí)行時(shí)間,單位ms。

      語(yǔ)句在各DN間的執(zhí)行時(shí)間傾斜率。

      min_cpu_time

      max_cpu_time

      total_cpu_time

      語(yǔ)句在所有DN上的CPU總時(shí)間,單位ms。

      min_peak_iops

      max_peak_iops

      average_peak_iops

      iops_skew_percent

      總結(jié)一下:

      因數(shù)據(jù)量變化,導(dǎo)致作業(yè)執(zhí)行時(shí)間增加,可以分析A2/B1/D1/G1,進(jìn)而確認(rèn)作業(yè)查詢的數(shù)據(jù)表是否有明顯的數(shù)據(jù)量增加;

      因其它并發(fā)作業(yè)搶占,導(dǎo)致作業(yè)排隊(duì),從而導(dǎo)致作業(yè)執(zhí)行時(shí)間增加,可以分析A1/B1/D1,進(jìn)而查看作業(yè)執(zhí)行的同時(shí)期是否有大量并發(fā)作業(yè)在執(zhí)行;

      因其它作業(yè)而產(chǎn)生的CPU搶占,導(dǎo)致作業(yè)執(zhí)行時(shí)間增加,可以分析A2/D1/E1,進(jìn)而查看作業(yè)執(zhí)行的同時(shí)期是否有大量并發(fā)作業(yè)在執(zhí)行;

      因其它作業(yè)而產(chǎn)生的IO搶占,導(dǎo)致作業(yè)執(zhí)行時(shí)間增加,可以分析A2/F1,進(jìn)而查看作業(yè)執(zhí)行的同時(shí)期是否有大量并發(fā)作業(yè)在執(zhí)行;

      值得注意的是,發(fā)生資源爭(zhēng)搶時(shí),可能會(huì)出現(xiàn)并發(fā)癥,即CPU、IO搶占,作業(yè)排隊(duì)現(xiàn)象都會(huì)發(fā)生,針對(duì)并發(fā)癥問(wèn)題,可以逐步分析解決,比如:第一步,調(diào)整作業(yè)執(zhí)行順序,減少并發(fā)作業(yè)數(shù)量,減少阻塞時(shí)間;第二步,定位出同時(shí)段執(zhí)行的典型計(jì)算密集型、存儲(chǔ)密集型作業(yè),先移動(dòng)到其它時(shí)間段執(zhí)行,減少對(duì)本作業(yè)的影響;第三步,在無(wú)其他作業(yè)明顯干預(yù)的情況下,做進(jìn)一步分析,

      功能二:歷史用戶資源占用

      如果無(wú)其它作業(yè)影響,TopSQL一張數(shù)據(jù)表基本已經(jīng)能夠分析出性能劣化緣由;但如果分析出受其它作業(yè)影響,那么接下來(lái)就是查找可能造成影響的作業(yè)。除了在TopSQL中查詢執(zhí)行周期內(nèi)的作業(yè)信息之外,還可以借助歷史用戶資源占用系統(tǒng)表GS_WLM_USER_RESOURCE_HISTORY,來(lái)搜索“可疑”用戶。“可疑”用戶通常對(duì)數(shù)據(jù)庫(kù)性能優(yōu)化沒(méi)有太多理解,往往會(huì)出現(xiàn)“select *”查詢,或者一次提交大批量作業(yè)。GS_WLM_USER_RESOURCE_HISTORY系統(tǒng)表記錄了所有用戶的歷史資源占有情況,結(jié)合反饋性能劣化的用戶名以及作業(yè)執(zhí)行時(shí)間段,從歷史用戶資源占用表中或許可以分析出是否有“可疑”用戶影響。

      數(shù)據(jù)表GS_WLM_USER_RESOURCE_HISTORY提供的關(guān)鍵信息簡(jiǎn)述如表格,管理員能夠分析的可能現(xiàn)象也在表格中:

      歷史用戶資源占用數(shù)據(jù)表能夠非常直觀的看出哪個(gè)用戶占用了資源,而且是占用了哪類資源,管理員可疑進(jìn)一步分析這些資源占用是否合理,進(jìn)而通過(guò)資源管理(WLM)的管控能力,做合理的用戶資源劃分。

      功能三:歷史實(shí)例資源監(jiān)視

      在TopSQL、用戶資源占用的數(shù)據(jù)表的基礎(chǔ)上,基本能夠分析出劣化原因,從而能做出相應(yīng)的措施。此外,有一類問(wèn)題比較獨(dú)特,危害較大,DN負(fù)載不均衡或者DN劣化(硬件緣由),在數(shù)據(jù)表分布不均的情況下,可能會(huì)導(dǎo)致一系列SQL都會(huì)出現(xiàn)執(zhí)行傾斜的情況,變相拉長(zhǎng)所有作業(yè)的執(zhí)行時(shí)間,TopSQL中相關(guān)SQL的傾斜值較大。針對(duì)此類問(wèn)題,如果沒(méi)有用戶提出作業(yè)變慢的情況下,管理員如何能夠提前預(yù)防呢?

      GaussDB 提供了記錄CN、DN資源使用量的能力,該類數(shù)據(jù)會(huì)保存到GS_WLM_INSTANCE_HISTORY數(shù)據(jù)表中,包含:CPU、內(nèi)存、IO等信息。如下列表所示:

      B1: io_util&io_await能夠反應(yīng)出磁盤的繁忙程度,disk_read&disk_write是發(fā)生的實(shí)際IO流量值,如果磁盤很繁忙,但實(shí)際IO流量值不高,可以進(jìn)一步分析磁盤是否有壞道,是否有硬件故障。

      B2: 如果磁盤很繁忙,實(shí)際IO流量也很高,但是process_read&process_write卻較低,說(shuō)明造成磁盤繁忙的原因并不是該GaussDB實(shí)例,可能是備機(jī)catchup或者其它運(yùn)行在該磁盤上的程序消耗了大量IO,可做進(jìn)一步定位。

      B3: 通常情況下,logical_read/logical_write遠(yuǎn)大于process_read/process_write,這是因?yàn)榇疟P預(yù)讀+較好的緩存命中率導(dǎo)致的;如果兩者相近,說(shuō)明緩存命中率很低,進(jìn)而分析是否需要vacuum或者數(shù)據(jù)表的定義是否符合查詢的就近原則。

      總結(jié):

      本文從用戶提出作業(yè)變慢這一問(wèn)題作為出發(fā)點(diǎn),從管理員視角,對(duì)已經(jīng)發(fā)生的問(wèn)題做定位定界,GaussDB 具備將瞬息萬(wàn)變的負(fù)載情況記錄下來(lái),提供回看數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部資源負(fù)載情況的能力。本文的管理員從作業(yè)、用戶、DN三個(gè)層次,自上而下的順序?qū)訉臃治鲂阅芰踊木売伞.?dāng)然,讀者可以從任意視角、以任意順序去分析系統(tǒng)負(fù)載情況。

      本文重點(diǎn)是介紹了GaussDB 負(fù)載管理(WLM)提供的資源監(jiān)視能力,結(jié)合所提供的監(jiān)控項(xiàng),能夠分析出一些有趣的資源爭(zhēng)搶現(xiàn)象,便于讀者理解監(jiān)控項(xiàng)的含義,方便讀者對(duì)監(jiān)控項(xiàng)的二次利用。那么,下一篇將會(huì)接著介紹負(fù)載管理(WLM)所提供的其它能力,如:存儲(chǔ)空間管理、計(jì)算資源管理等,敬請(qǐng)期待,謝謝。

      DWS EI企業(yè)智能

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何快速有效地將Word2013文檔轉(zhuǎn)換成Excel表格(怎樣將word文檔轉(zhuǎn)換成excel表格)
      下一篇:表格操作(電腦表格操作)
      相關(guān)文章
      亚洲码在线中文在线观看| 亚洲伊人tv综合网色| ww亚洲ww在线观看国产| 亚洲精品免费视频| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲色欲啪啪久久WWW综合网| 亚洲图片中文字幕| 亚洲三级视频在线观看 | 亚洲成年看片在线观看| 亚洲av成本人无码网站| 精品久久久久亚洲| 国产产在线精品亚洲AAVV| 国产精品亚洲色婷婷99久久精品| 精品亚洲国产成人av| 亚洲av综合日韩| 亚洲国产精品成人网址天堂| 亚洲AⅤ永久无码精品AA| 亚洲国产成人a精品不卡在线| 亚洲成A人片77777国产| 亚洲精品一级无码鲁丝片| 国产精品亚洲综合一区| 国产成人麻豆亚洲综合无码精品| 亚洲中文字幕在线第六区| 亚洲日韩精品无码专区网址| 亚洲成av人在线视| 亚洲天堂一区二区| 亚洲色成人网一二三区| 亚洲AV无码国产精品色| 亚洲另类自拍丝袜第五页| 国产亚洲精品免费| 综合亚洲伊人午夜网| 亚洲av永久无码精品秋霞电影影院| 久久91亚洲精品中文字幕| 亚洲精品日韩专区silk| 亚洲伊人久久大香线焦| 亚洲国产日韩a在线播放| 亚洲国产精品一区二区三区久久 | 亚洲无线码一区二区三区| 亚洲激情在线视频| 亚洲一级免费视频| 丰满亚洲大尺度无码无码专线|