无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

openGauss 3.1.0 版本gs_stack功能解密

2022-11-15 19:54 作者:Gauss松鼠會(huì)  | 我要投稿

不管是測(cè)試還是研發(fā),工作中總有遇到各種各樣的問題。比如,你有沒有遇到過在數(shù)據(jù)庫中執(zhí)行某個(gè)SQL,卻一直不返回結(jié)果,這時(shí)候的你是不是非常想看一下代碼執(zhí)行到了哪個(gè)函數(shù)?或者是數(shù)據(jù)庫不響應(yīng)連接,需要查看數(shù)據(jù)庫當(dāng)前線程的執(zhí)行情況呢?而在實(shí)際生產(chǎn)中,獲取生產(chǎn)系統(tǒng)進(jìn)程堆棧比較麻煩,需要在服務(wù)端后臺(tái)執(zhí)行g(shù)stack命令。本期為大家介紹的openGauss 3.1.0版本中內(nèi)置gs_stack工具,則可以通過函數(shù)調(diào)用的方式輸出指定線程的堆棧,用于解決現(xiàn)網(wǎng)環(huán)境缺少gs_stack工具無法獲取調(diào)用棧的問題。

內(nèi)置gs_stack工具介紹

在openGauss的很多客戶場(chǎng)景中,會(huì)出現(xiàn)gdb、gstack等工具無法使用或當(dāng)系統(tǒng)出現(xiàn)hang、慢等問題時(shí),無法通過調(diào)用棧進(jìn)行進(jìn)一步的定位;還有一種情況是登錄客戶數(shù)據(jù)庫的流程非常繁雜,需要經(jīng)過層層審批,這時(shí)通過gsql等工具連接數(shù)據(jù)庫就相對(duì)容易一些。針對(duì)以上痛點(diǎn),通過復(fù)用openGauss未使用操作系統(tǒng)信號(hào),并在信號(hào)處理函數(shù)中獲取調(diào)用棧的方式開發(fā)了調(diào)用棧工具,以獲得服務(wù)端openGauss的調(diào)用棧。

獲取調(diào)用棧主要包含兩種方式,一種是通過執(zhí)行SQL語句獲取,另一種是通過gs_ctl工具執(zhí)行命令獲取。

1在客戶端工具執(zhí)行g(shù)s_stack([tid])函數(shù)

使用具有monadmin或者sysadmin用戶權(quán)限的用戶,通過gsql或者其他工具連接數(shù)據(jù)庫;

執(zhí)行命令:

返回當(dāng)前openGauss所有線程的調(diào)用棧:

只需要查看某一個(gè)線程的調(diào)用棧時(shí),執(zhí)行命令:

說明

xxx為某個(gè)線程的thread_id,能夠返回thread_id為xxx的線程的調(diào)用棧:

2?在服務(wù)器端使用gs_ctl stack –D data_dir命令

當(dāng)線程池滿,無法通過gsql連接數(shù)據(jù)庫的時(shí)候,可以使用gs_ctl工具執(zhí)行命令獲取線程調(diào)用棧:

使用集群用戶登錄服務(wù)器,執(zhí)行命令gs_ctl stack –D data_dir,data_dir是指定gaussdb的數(shù)據(jù)目錄的絕對(duì)路徑:

可以取gaussdb所有線程的調(diào)用棧。

只需要查看某一個(gè)線程的調(diào)用棧時(shí),執(zhí)行命令:

說明

data_dir是指定gaussdb的數(shù)據(jù)目錄的絕對(duì)路徑,xxx指的是線程的lwpid(taskid),可以通過top –Hp的方式獲取線程的lwpid, 也可以通過cat /proc/yyyy/task獲取線程的lwpid 。yyyy指的是進(jìn)程id,可以通過ps –ux | grep gaussdb獲取。

總結(jié)

通過以上我們介紹的openGauss的gs_stack功能,我們可以很方便地定位某個(gè)openGauss線程正在做的事情,并可以根據(jù)這些函數(shù)調(diào)用情況判斷當(dāng)前openGauss任務(wù)是否出現(xiàn)了問題,以及發(fā)現(xiàn)性能瓶頸。后續(xù),我們將會(huì)進(jìn)一步在這個(gè)功能上進(jìn)行演進(jìn),不斷增強(qiáng)openGauss的核心競(jìng)爭(zhēng)力。


openGauss 3.1.0 版本gs_stack功能解密的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
六盘水市| 新晃| 昌宁县| 靖州| 林周县| 建德市| 红原县| 隆尧县| 本溪| 武汉市| 吴堡县| 双城市| 武宁县| 腾冲县| 永寿县| 库伦旗| 昆山市| 镇巴县| 龙游县| 平果县| 上栗县| 富阳市| 淳化县| 高密市| 西乌珠穆沁旗| 视频| 延长县| 新泰市| 阿拉善盟| 安国市| 平阳县| 定结县| 泾源县| 改则县| 克拉玛依市| 莒南县| 拉萨市| 防城港市| 武功县| 邵武市| 福泉市|