<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試官:如果MySQL引起CPU消耗過大,你會怎么優(yōu)化?

          共 2235字,需瀏覽 5分鐘

           ·

          2021-08-05 16:31

          關(guān)注「開源Linux」,選擇“設(shè)為星標(biāo)”
          回復(fù)「學(xué)習(xí)」,有我為您特別篩選的學(xué)習(xí)資料~

          誰在消耗cpu?

          用戶+系統(tǒng)+IO等待+軟硬中斷+空閑

          禍?zhǔn)资钦l?

          用戶

          用戶空間CPU消耗,各種邏輯運(yùn)算

          正在進(jìn)行大量tps

          函數(shù)/排序/類型轉(zhuǎn)化/邏輯IO訪問…

          用戶空間消耗大量cpu,產(chǎn)生的系統(tǒng)調(diào)用是什么?哪些函數(shù)使用了cpu周期?

          IO等待

          等待IO請求的完成

          此時CPU實(shí)際上空閑

          如vmstat中的wa 很高。但I(xiàn)O等待增加,wa也不一定會上升(請求I/O后等待響應(yīng),但進(jìn)程從核上移開了)

          產(chǎn)生影響

          用戶和IO等待消耗了大部分cpu

          • 吞吐量下降(tps)
          • 查詢響應(yīng)時間增加
          • 慢查詢數(shù)增加
          • 對mysql的并發(fā)陡增,也會產(chǎn)生上訴影響

          如何減少CPU消耗?

          減少等待

          減少IO量

          SQL/index,使用合適的索引減少掃描的行數(shù)(需平衡索引的正收益和維護(hù)開銷,空間換時間)

          提升IO處理能力

          加cache/加磁盤/SSD

          減少計(jì)算

          減少邏輯運(yùn)算量

          • 避免使用函數(shù),將運(yùn)算轉(zhuǎn)移至易擴(kuò)展的應(yīng)用服務(wù)器中 如substr等字符運(yùn)算,dateadd/datesub等日期運(yùn)算,abs等數(shù)學(xué)函數(shù)

          • 減少排序,利用索引取得有序數(shù)據(jù)或避免不必要排序 如union all代替 union,order by 索引字段等

          • 禁止類型轉(zhuǎn)換,使用合適類型并保證傳入?yún)?shù)類型與數(shù)據(jù)庫字段類型絕對一致 如數(shù)字用tiny/int/bigint等,必需轉(zhuǎn)換的在傳入數(shù)據(jù)庫之前在應(yīng)用中轉(zhuǎn)好

          • 簡單類型,盡量避免復(fù)雜類型,降低由于復(fù)雜類型帶來的附加運(yùn)算。更小的數(shù)據(jù)類型占用更少的磁盤、內(nèi)存、cpu緩存和cpu周期

          • ….

          減少邏輯IO量

          • index,優(yōu)化索引,減少不必要的表掃描 如增加索引,調(diào)整組合索引字段順序,去除選擇性很差的索引字段等等
          • table,合理拆分,適度冗余 如將很少使用的大字段拆分到獨(dú)立表,非常頻繁的小字段冗余到“引用表”
          • SQL,調(diào)整SQL寫法,充分利用現(xiàn)有索引,避免不必要的掃描,排序及其他操作 如減少復(fù)雜join,減少order by,盡量union all,避免子查詢等
          • 數(shù)據(jù)類型,夠用就好,減少不必要使用大字段 如tinyint夠用就別總是int,int夠用也別老bigint,date夠用也別總是timestamp
          • ….

          減少query請求量(非數(shù)據(jù)庫本身

          • 適當(dāng)緩存,降低緩存數(shù)據(jù)粒度,對靜態(tài)并被頻繁請求的數(shù)據(jù)進(jìn)行適當(dāng)?shù)木彺?如用戶信息,商品信息等
          • 優(yōu)化實(shí)現(xiàn),盡量去除不必要的重復(fù)請求 如禁止同一頁面多次重復(fù)請求相同數(shù)據(jù)的問題,通過跨頁面參數(shù)傳遞減少訪問等
          • 合理需求,評估需求產(chǎn)出比,對產(chǎn)出比極端底下的需求合理去除
          • ….

          升級cpu若經(jīng)過減少計(jì)算和減少等待后還不能滿足需求,cpu利用率還高T_T 是時候拿出最后的殺手锏了,升級cpu,是選擇更快的cpu還是更多的cpu了?

          • 低延遲(快速響應(yīng)),需要更快的cpu(每個查詢只能使用一個cpu)
          • 高吞吐,同時運(yùn)行很多查詢語句,能從多個cpu處理查詢中收益

          參考

          • 《高性能MySQL》
          • 《圖解性能優(yōu)化》
          • 大部分整理自《MySQL Tuning For CPU Bottleneck》

          轉(zhuǎn)載:https://www.cnblogs.com/YangJiaXin/p/10933458.html

          往期推薦

          今年云計(jì)算的主要趨勢,混合云/邊緣計(jì)算/Serverless

          18個工具分析Linux占用網(wǎng)絡(luò)帶寬大的進(jìn)程

          超全面的 Kubernetes 容器網(wǎng)絡(luò)技能,運(yùn)維看后都說好

          Linux下實(shí)現(xiàn)MySQL每天自動定時備份

          再見,MySQL!性能被 MariaDB 吊打…

          CentOS8安裝MySQL8

          必須掌握的 MySQL 優(yōu)化原理

          MySQL 默認(rèn)最大連接數(shù)是多少?

          實(shí)戰(zhàn) Kubernetes 中部署 MySQL 集群

          關(guān)注「開源Linux」加星標(biāo),提升IT技能


          點(diǎn)個在看少個 bug ??

          瀏覽 35
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天干视频 | 三级片www | 久视频在线观看 | 亚洲一级av无码毛片精品 | 亚洲AV无码18日韩 |