MySQL Doublewrite Buffer及業務評估

来源:http://www.cnblogs.com/ivictor/archive/2016/03/20/5299748.html
-Advertisement-
Play Games

1. 關於Doublewrite Buffe的總結 Doublewrite Buffer:Doublewrite Buffer出現的初衷是防止buffer pool中的臟頁刷新到磁碟中,出現部分寫的問題,innodb頁大小一般為16k,而Linux操作系統的block size一般為4k。這樣在刷新


1. 關於Doublewrite Buffe的總結

Doublewrite Buffer:Doublewrite Buffer出現的初衷是防止buffer pool中的臟頁刷新到磁碟中,出現部分寫的問題,innodb頁大小一般為16k,而Linux操作系統的block size一般為4k。這樣在刷新的過程中,如果OS發生crash或者停電,會導致16k的頁塊只有部分block刷新到磁碟中,而其它的沒有,這樣會導致數據不一致。Doublewrite Buffer放到系統表空間中,有100個頁的大小,當innodb將buffer pool中的頁刷新到磁碟中時,會首先copy到Doublewrite Buffer中,再刷新到磁碟中。如果在刷新磁碟的過程中出現問題,innodb會利用doublewrite buffer中存儲的頁來恢複數據。如果在刷新doublewrite buffer的過程中出現問題,則會利用物理磁碟上的原始頁和redo log來恢複數據。

Doublewrite Buffer的啟用會對MySQL的整體性能降低5-10%,可通過innodb_doublewrite參數進行設置,預設是開啟的。

Percona有個單獨的參數來設置Doublewrite Buffer的存放位置,innodb_doublewrite_file。

 

2. 根據以下內容,演算推導出機器相關的指標:

響應時間     查詢和操作請求ms級返回。

數據總量     1年內數據量大約500G數據量。

每秒請求量  每秒有3w次請求。

讀寫比        讀寫比是1:1。

重要程度     核心系統,P1級故障。

其他說明     數據記錄長度約為1KB,數據1周內數據操作頻繁

 

推導過程:

Step1:1年內數據大約500G

結果:每秒產生的數據量大約誒500*1024*1024/(365*24*60*60)=17KB/s

Step2: 每秒有3w次請求,讀寫比是1:1

結果:每秒讀請求為3w/2=1.5w/s,每秒寫請求為3w/2=1.5w/s

Step3: 記錄長度大約為1KB

結果:根據Step1得出的結果,每秒insert的速率為17次/s,根據Step2得到的每秒寫請求為1.5w/s,可知每秒14983次為delete和update操作。由於MySQL數據讀寫操作按照頁來處理,頁大小為16KB,假設每次操作的頁都不相同。那麼每秒寫操作數據量為:16KB*1.5w=234MB/s,每秒讀操作數據量為:16KB*1.5w=234MB/s

Step4:數據1周內數據操作頻繁

結果:熱數據量為:(500/365)*7=9.6G

Step5:操作ms級返回

操作ms級別返回,那麼需要儘可能的將熱數據載入到記憶體。按照記憶體命中率接近100%計算的話,那麼Innodb buffer大約為9.6GB,而其他記憶體需求大概為1~2GB,因此記憶體超配大約為12GB。按照超配原則,寫帶寬(wBPS)限製為300MB/s;讀帶寬(rBPS)限製為300MB/s。


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

-Advertisement-
Play Games
更多相關文章
  • 1. Question description: if you are setting the oracle client to add a local network service, you may see the dialogue that show you the message (orac
  • 線下的測試機器老是報錯,從errorlog里看到大量的4014錯誤 於是谷歌了一下,發現了一篇文章:https://www.mssqltips.com/sqlservertip/3538/fixing-sql-server-fatal-error-4014/ 大家知道現在的網卡內置功能都比較厲害,有
  • mysql添加欄位: 刪除欄位:
  • 在保密你的伺服器和數據,防備當前複雜的攻擊,SQL Server有你需要的一切。但在你能有效使用這些安全功能前,你需要理解你面對的威脅和一些基本的安全概念。這篇文章提供了基礎,因此你可以對SQL Server里的安全功能充分利用,不用在面對特定威脅,不能保護你數據的功能上浪費時間。 通常來說,你通過
  • 1.Question describe when you use account scott/tiger connect to oracle, you will see "the user account is locked", because you did't unlock the accoun
  • 引語:mysql作為資料庫的一大主力軍,到處存在於我們各種系統中,相信大家都不陌生!但是,你知道你能用不代表你知道細節,那我們就來盤點盤點其中一些我們平時不太註意的地方,一來為了有趣,二來為了不讓自己踩坑。 聲明:要想知道細節,那就去閱讀源碼,我實在沒那本事,只能從片面上來說一些事! 1. 不區分大
  • 本周技術研究部(TRD)的一名DBA 對我們編寫SQL時的一些問題,進行了彙報講演,以下是來自它的腳本,我在它講演的基礎上寫出了自己想表述的,以便於大家相互交流學習。
  • 第二章 小A的驚喜 認識資料庫 吃完飯後,小Y和小A回到了家裡,並打開電腦開始學習Mysql。 小Y:"小A,你平時的Excell文件很多的情況下,怎麼樣存放Excell文件,才能快速找到你要的文件呢?"。 小A:"這個和Mysql有關係嗎?"。 小Y:"當然有,一會你就知道了,先說說你的做法吧。"
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...