阿里云實時計算訓練營重磅升級,4天技能突破,還能免費搶天貓精靈!

電腦雜談  發布時間:2021-03-12 15:06:43  來源:網絡整理

阿里云的實時計算培訓營已進行了大幅升級,擁有4天的技能突破和免費的天貓向導! >>>

MYSQL具有很高的CPU使用率,已經使用了很長時間的DB會遇到它。實際上,其他也有類似的問題,并且CPU也在增加。大多數DBA的第一項工作是查看是否存在大事務,大查詢,慢查詢等。實際上,我們有沒有更好的方法來快速定位

在下圖中,我們可以看到系統CPU處于90%的狀態。如何分析MYSQL的CPU使用率很高的原因。跟著我。

我們使用pidstat檢查當前MYSQL線程中的CPU使用率是否較高

從上圖可以看到,CPU核心0和1的利用率高于其他核心,我們還可以看到TID,線程數,然后獲得這些線程的ID并直接運行回到MYSQL。讓我們看看這兩個線程到底在做什么。

我們可以結合以上查詢

1我們可以確定多核CPU上哪個核心CPU利用率更高

2通過查找哪個內核的CPU使用率,在MYSQL中找到有問題的連接。

此外,您還可以使用監視系統查看CPU的消耗位置。例如,您可以使用PMM查看CPU的消耗位置。如果是在用戶級別,則可以確認用戶的某些線程消耗了CPU。資源。然后,您可以使用上述方法找到當前正在占用大量CPU的線程

這是一集。我曾經聽說過,如果遇到這種情況,添加CPU以暫時緩解CPULOAD的100%的情況,我在這里做了測試。

將上述壓力很大的MYSQL的CPU數量從4 croe增加到8核。最終結果(至少在我的情況下),CPU負載在相同負載下基本相同。

此外,您還可以使用以下腳本查看瞬時QPS TPS,以查看系統是否過載。

mysqladmin -uroot -p'密碼'--socket = / data / mysql / mysql.sock擴展狀態-i1 | awk'BEGIN {local_switch = 0;打印“ QPS提交回滾TPS Threads_con Threads_run \ n-- -------------------------------------------------- -“}

$ 2?/ Queries $ / {q = $ 4-lq; lq = $ 4;}

$ 2?/ Com_commit $ / {c = $ 4-lc; lc = $ 4;}

$ 2?/ Com_rollback $ / {r = $ 4-lr; lr = $ 4;}

$ 2?/ Threads_connected $ / {tc = $ 4;}

$ 2?/ Threads_running $ / {tr = $ 4;

if(local_switch == 0)

{local_switch = 1; count = 0}

其他{

if(count> 1 0)

{count = 0;打印“ ---------------------------------------- --------------- \ nQPS提交回滾TPS Threads_con Threads_run \ n -------------------------- -----------------------------“;}

其他{

count + = 1;

printf“%-6d%-8d%-7d%-8d%-10d%d \ n”,q,c,r,c + r,tc,tr;

}

}

}'

同時,它可以幫助查看當前的handler_read_rnd,handler_read_rnd_next和其他參數。如果增長迅速,則意味著當前查詢具有全表掃描或無法有效使用索引。

剩余的工作可能與一些慢速查詢或捕獲的句子有關,以進行相關分析。

本文是從微信公眾號AustinDatabases(AustinDatabases)中共享的。


本文來自電腦雜談,轉載請注明本文網址:
http://www.tjhwsrq.com/a/shoujiruanjian/article-364039-1.html

    相關閱讀
    發表評論  請自覺遵守互聯網相關的政策法規,嚴禁發布、暴力、反動的言論

    熱點圖片
    拼命載入中...
    欧洲熟妇牲交_亚洲国产在线2020最新_日本无吗无卡v免费清高清