一次磁碟IO過高分析過程

来源:https://www.cnblogs.com/konghezi/archive/2018/08/30/9561136.html
-Advertisement-
Play Games

1、查看監控,發現整點時間有寫IO過高情況 2、iotop 分析確認io高峰是由mysql導致的 3、開啟general log,分析SQL set global general_log = on ; 4、觀察binlog 與 general log 發現 文件增長量不大,懷疑不是有Insert 與 ...


1、查看監控,發現整點時間有寫IO過高情況   2、iotop 分析確認io高峰是由mysql導致的

 

3、開啟general log,分析SQL set global general_log = on ;   4、觀察binlog 與 general log 發現 文件增長量不大,懷疑不是有Insert 與 update 與 delete 導致的 寫IO過高   5、show full processlist ;發現有慢SQL *************************** 6. row ***************************      Id: 337153    User: user_car_bill    Host: 192.168.3.10:63018      db: yoolifin Command: Query    Time: 295   State: Creating sort index    Info: SELECT 1 AS `Number of Records`,   `自定義 SQL 查詢`.`實還金額` AS `實還金額`,   `自定義 SQL 查詢`.`應還客戶數` AS `應還客戶數`,   `自定義 SQL 查詢`.`應還金額` AS `應還金額`,   `自定義 SQL 查詢`.`累計發過代扣客戶數` AS `累計發過代扣客戶數`,   `自定義 SQL 查詢`.`累計客戶覆蓋率` AS `累計客戶覆蓋率`,   `自定義 SQL 查詢`.`累計還款收回率` AS `累計還款收回率`,   `自定義 SQL 查詢`.`還款日發過代扣客戶數` AS `還款日發過代扣客戶數`,   `自定義 SQL 查詢`.`還款日客戶覆蓋率` AS `還款日客戶覆蓋率`,   `自定義 SQL 查詢`.`還款日期` AS `還款日期`,   `自定義 SQL 查詢`.`還款日還款收回率` AS `還款日還款收回率` FROM (   select a.dt 還款日期,a.c 應還客戶數,a.totle_repayment 應還金額,a.fact_repayment 實還金額, a.fact_repayment/a.totle_repayment 累計還款收回率, a.very_fact_repayment/a.totle_repayment 還款日還款收回率,t.c 還款日發過代扣客戶數,t.c/a.c 還款日客戶覆蓋率,tt.c 累計發過代扣客戶數,tt.c/a.c 累計客戶覆蓋率   FROM(   select date(payment_date) dt,count(DISTINCT APP_NO) c,sum(totle_repayment) totle_repayment,sum(fact_repayment) fact_repayment ,sum(if(payment_date=fact_payment_date,fact_repayment,0)) very_fact_repayment   from fin_repayment m   where   date(payment_date)>'2017-06-01' and date(payment_date)<=date(curdate() + INTERVAL 20 DAY) and DATE_FORMAT(payment_date,'%d') in ('05','20')   and m.`status` in ('1','2','5')   and ifnull(cut_chanl,0)<>3   group by date(payment_date)   ) a   left join (   select date(n.SUBMIT_TIME) dt,count(DISTINCT APP_NO) c   from fin_back_info n   where date(n.SUBMIT_TIME)>'2017-06-01' and DATE_FORMAT(n.SUBMIT_TIME,'%d') in ('05','20') and n.PAYMENT_DATE=DATE(n.SUBMIT_TIME)   group by date(n.SUBMIT_TIME)   ) t   on a.dt=t.dt   left join (   select date(n.PAYMENT_DATE) dt,count(DISTINCT APP_NO) c from fin_back_info n   where date(n.SUBMIT_TIME)>'2017-06-01'   group by date(n.PAYMENT_DATE)   ) tt   on a.dt=tt.dt ) `自定義 SQL 查詢` *************************** 6. row ***************************   6、分析慢SQL,產生大量的派生表,可能是由於記憶體不夠,寫入磁碟導致的IO過高 7、執行該SQL,觀看監控,產生IO高峰,確認為該SQL導致的IO瓶頸過高

 

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、基礎 1、創建資料庫 CREATE DATABASE database-name 2、刪除資料庫 drop database dbname 3、備份sql server 創建 備份數據的 device USE master EXEC sp_addumpdevice 'disk',’testBac ...
  • 總結: 1,not null 不能插入空,不設置可空 2,unique 單列唯一 create table department(name char(10) unique); 創建方式一 create table department( unique(name)); 創建方式二 聯合唯一: uniq ...
  • 介紹 存儲引擎決定了表的類型,而表記憶體放的數據也要有不同的類型,每種數據類型都有自己的寬度,但寬度是可選的 詳細參考鏈接:http://www.runoob.com/mysql/mysql-data-types.html mysql常用數據類型概括: 一、數值類型 整數類型:TINYINT SMAL ...
  • 問題描述 查詢資料庫表中最近7天的記錄 但是發現某一天沒有數據,結果中沒有顯示當天(2017-08-28)的數據 解決思路 思路一: 可以在自己的程式中做額外的補零處理 思路二: 構建一個最近七天的結果集,然後和查詢的結果集合做left join(本文采用第二種方式) 當天2017-08-28結果顯 ...
  • 06-表的操作 本節掌握 存儲引擎介紹(瞭解) 表的增刪改查 一、存儲引擎(瞭解) 前幾節我們知道mysql中建立的庫 》文件夾,庫中的表 》文件 現實生活中我們用來存儲數據的文件有不同的類型,每種文件類型對應各自不同的處理機制:比如處理文本用txt類型,處理表格用excel,處理圖片用png等 數 ...
  • 想看下某模式下所有表創建的分佈鍵是否合理,查找系統表文檔拼出如下sql,親們如果有更好的sql或者意見歡迎留言! ​運行結果: ​​​ ...
  • 一.概述 由於伺服器生成的二進位日誌文件以二進位格式保存,所以如果要想檢查這些文件的文本格式,就會用到mysqlbinlog日誌管理工具。 mysqlbinlog的語法如下: mysqlbinlog [options] log-files log-files2... 其中options有很多選項,常 ...
  • 創建兩張表並插入一些數據 查看表中的數據 比較下麵幾組查詢結果--如果你對left join足夠熟悉的話,先不要看結果,是否可以直接說出下麵查詢的結果 如果on後面的條件是左表中的列(and leftTable.colName='***'),左表中滿足條件的行和右表中的行進行匹配(根據on left ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...