国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL中從庫延遲狀況排查的一則案例

2024-07-24 13:07:14
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了MySQL中從庫延遲狀況排查的一則案例,針對其從庫無業務狀態下的CPU大量占用情況,需要的朋友可以參考下

今天給一個客戶巡檢的情況下發從庫沒有業務的情況mysqld的cpu的一個core占用100%.查主庫慢查詢也沒有關于寫的SQL.

可以說是典的單進程復制把一個cpu占滿造成的.知道原因了,就好分析了.

分析一下binlog中寫的什么,看看有什么地方可以優化或是加速的.利用工具:pasrebinlog

利用show slave status/G; 查當前同步的到節點,然后對日值進行解析.

 

 
  1. git clone https://github.com/wubx/mysql-binlog-statistic.git 
  2. cd mysql-binlog-statistic/bin/ 
  3. parsebinlog /u1/mysql/logs/mysql-bin.000806 
  4.  
  5. ... 
  6. ==================================== 
  7. Table xx_db.xxtable: 
  8. Type DELETE opt: 101246 
  9. Type INSERT opt: 103265 
  10. ================================ 
  11. ... 

以最大的數排序看, 定位到: xx_db.xxtable,對于一個日值中能刪除10幾萬,寫入10幾萬.是不是這個表寫入比較慢了呢.

在從庫上查看innodb的相關情況:

 

 
  1. MySQL> show engine innodb status/G; 
  2. ... 
  3. ---TRANSACTION 1C0C2DFDF, ACTIVE 3 sec fetching rows 
  4. mysql tables in use 1, locked 1 
  5. 3361 lock struct(s), heap size 407992, 477888 row lock(s), undo log entries 42 
  6. MySQL thread id 43, OS thread handle 0x7fc1800c4700, query id 1908504 Reading event from the relay log 
  7. TABLE LOCK table xx_db.xxtable trx id 1C0C2DFDF lock mode IX 
  8. RECORD LOCKS space id 1002 page no 1975 n bits 1120 index `AK_movieid` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  9. RECORD LOCKS space id 1002 page no 6965 n bits 264 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  10. RECORD LOCKS space id 1002 page no 6967 n bits 256 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  11. RECORD LOCKS space id 1002 page no 6973 n bits 264 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  12. RECORD LOCKS space id 1002 page no 6982 n bits 256 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  13. RECORD LOCKS space id 1002 page no 6983 n bits 256 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  14. RECORD LOCKS space id 1002 page no 6987 n bits 256 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  15. RECORD LOCKS space id 1002 page no 6999 n bits 256 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  16. RECORD LOCKS space id 1002 page no 7000 n bits 256 index `GEN_CLUST_INDEX` of table xx_db.xxtable trx id 1C0C2DFDF lock_mode X locks rec but not gap 
  17. TOO MANY LOCKS PRINTED FOR THIS TRX: SUPPRESSING FURTHER PRINTS 
  18. ---------------------------- 
  19. END OF INNODB MONITOR OUTPUT 
  20.  
  21. ... 

從Innodb 的monitor output 中也可看到 xx_db.xxtable 這表已經是表級表了,造成并發比較低,而且有大量的: GEN_CLUST_INDEX 而且屬于一個事務.  GEN_CLUST_INDEX表示沒有主建,內部產生一個主建,對于內部產生的主建很很容易造成page拆分的操作.

問題到這里基本上可以得到解決問題的方法了:

給xx_db.xxtable 添加一個主建即可.這里后是給xx_db.xxtable 添加了一個無業務意義的id int 自增主建.這樣立馬可以看到mysqld占用的cpu單核降到了3%左右, 同時后續同步一切正常,觀查一天沒出現同步延遲的問題.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇左市| 菏泽市| 崇阳县| 新田县| 广南县| 遵化市| 桑植县| 武功县| 淮南市| 休宁县| 天气| 道孚县| 浦城县| 翼城县| 子洲县| 固阳县| 辽宁省| 阿巴嘎旗| 河南省| 朝阳县| 扶余县| 玉林市| 宜城市| 万源市| 新密市| 静宁县| 云梦县| 靖江市| 措勤县| 金平| 建宁县| 泽普县| 顺义区| 湘阴县| 花垣县| 依兰县| 东港市| 黄浦区| 凤山县| 沈丘县| 陵水|