MySQL Doublewrite Buffer及業務評估

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。

轉載于:https://www.cnblogs.com/ivictor/p/5299748.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373401.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373401.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373401.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用UIBinder的GWT自定義按鈕

這是一個有關如何在GWT上使用UIBinder創建自定義按鈕的示例。 public class GwtUIBinderButton implements EntryPoint {public void onModuleLoad() {Button button new Button();button.setText("Button");button.addClickHandler(new ClickHandler(){Overridepub…

delete postman 傳參_PostMan 傳參boolean 類型,接口接受的值一直是false

情形:最近寫前臺頁面的一個按鈕,功能是:點擊后切換狀態,顯示是或否。字段名稱是isTest,類型是boolean 。寫完接口,拿postMan測試,傳參如下:但是后臺接口接受的數據 一直是false,處理&#xff1a…

前端學PHP之文件操作

前端學PHP之文件操作 前面的話 在程序運行時,程序本身和數據一般都存在內存中,當程序運行結束后,存放在內存中的數據被釋放。如果需要長期保存程序運行所需的原始數據,或程序運行產生的結果,就需要把數據存儲在文件或數…

騰訊云CentOS6.5下安裝mysql,并配置好遠程訪問等權限,途中遇到的問題

1.使用yum命令安裝mysql [rootbogon ~]# yum -y install mysql-server 2.設置開機啟動 [rootbogon ~]# chkconfig mysqld on 3.啟動MySQL服務 [rootbogon ~]# service mysqld start 4.設置MySQL的root用戶設置密碼 [rootbogon ~]# mysql -u root mysql> select u…

休眠性能提示:臟收集效果

在使用Hibernate作為ORM開發服務器和嵌入式應用程序8年后,我全力以赴地尋求提高Hibernate性能的解決方案,閱讀博客和參加會議,我決定與您分享這幾年獲得的知識。 這是更多新帖子中的第一篇: 去年,我以Devoxx的身份參加…

java runtime 異常_Java中RuntimeException和Exception

在java的異常類體系中,Error和RuntimeException是非檢查型異常,其他的都是檢查型異常。所有方法都可以在不聲明throws的情況下拋出RuntimeException及其子類不可以在不聲明的情況下拋出非RuntimeException簡單的說,非RuntimeException必要自己寫catch塊處…

BZOJ3130: [Sdoi2013]費用流[最大流 實數二分]

3130: [Sdoi2013]費用流 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 960 Solved: 505[Submit][Status][Discuss]Description Alice和Bob在圖論課程上學習了最大流和最小費用最大流的相關知識。 最大流問題:給定一張有向圖表示運輸網絡…

Linux Shell 003-變量

Linux Shell 003-變量 本節關鍵字:Linux、Shell、變量、全局變量、系統變量 相關指令:read、echo、unset、export 變量的含義 變量是用來臨時保存數據的,該數據是可以變化的數據。如果某個內容需要多次使用,并且在代碼中重復出現…

Java自動機實現

這篇文章將解決在Java中實現有限狀態機的問題。 如果您不知道什么是FSM或在什么地方可以使用FSM,您可能會熱衷于閱讀此 , 這個和這個 。 如果您發現自己在設計上使用FSM的情況,則可能已經開始為實現相同接口的每個狀態編寫類。 一個好的設計可…

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files這個文件找不到

在C:\Windows\Microsoft.NET\Framework64\v4.0.30319文件夾下面建立Temporary ASP.NET Files 文件夾(Framework64 注意64,這個可能是我們用的64位系統,但是vs2010不分32位還是64位,所以在C:\Windows\Microsoft.NET\Framework\v4.0…

java電腦運行視頻演示_javaweb視頻第一天(二)

無論通過哪種方式得到的class類對象,是同一個。比較的是地址碼這里教會你:如何去使用class對象現在就知道這個:如何使用反射,并且說反射是實現了什么樣的功能。如何通過反射得到里面的相應字段,得到里面的相應函數等等…

模型驅動 ModelDriven

ModelDriven:模型驅動,對所有action的模型對象進行批處理. 我們在開發中, 在action中一般是用實體對象,然后給實體對象get,set方法。 RegAction{   User user ;   //get/set} 然后在jsp頁面中給action中的user屬性綁定值是通過如下方式 &…

本月風味– Neo4j和Heroku

Neo4j今年早些時候發起了一項挑戰,即“ 種子播云 ”,以使人們使用Neo4j附加組件在Heroku上創建模板或演示應用程序。 經過許多內部辯論之后,我決定進入,但由于缺乏想法而陷入絕望。 當我什么都沒做的時候,這個主意就出…

1 + 11 + 1111+ 11111+ ..... + 11111(2016個) 結果是幾位數

# -*- coding: utf-8 -*- """ Created on Mon Mar 21 20:38:06 2016author: yanjie """1 11 1111 11111 ..... 11111(2016個) 結果是幾位數 用什么數據結構 有幾個6 寫算法a []; m 0; six 0; for i in range(2016,0,-1):b (im) % 10;m (…

[回歸分析][10]--相關誤差的問題

[回歸分析][10]--相關誤差的問題這一篇文章還是來分析相關誤差的問題。 1.游程數 定義:游程數--殘差穿過x-軸的次數 用這個可以檢查如殘差有一塊在x軸上面,一塊在x軸下面的情形。 如上面這樣的殘差 下面構造兩個統計量: 其中 n…

Spring 3 MVC異常處理程序

我遇到的大多數Spring 3錯誤處理示例代碼似乎都提供了其用法的最簡單概述,但是,有人說,如何處理錯誤比正常代碼的工作方式更為重要。 前一天,當我在Spring(2)錯誤處理程序中遇到一個簡單的GOTCHA時&#xf…

java編譯找不到符號_javac編譯時找不到符號?

我是個新手,在linux使用java編程時,出現這個情況。我把要引的包放在classpath中,紅色部分:export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME/hadoop-1.0.4.core.jar:${CLASSPATH}通過echo $CLASSP…

全備份、差異備份和增量備份概念詳述

全備份、差異備份和增量備份概念詳述 1、完全備份(Full Backup) 備份全部選中的文件夾,并不依賴文件的存檔屬性來確定備份那些文件。在備份過程中,任何現有的標記都被清除,每個文件都被標記為已備份。換言之&#xff0…

微信接入登錄功能access_token流程記錄

提示:只有認證過的訂閱號或者服務號才能獲取access_token。 1.app微信登錄第一步是,app調起來微信客戶端,通過app端的配置,引入一個微信類庫, 2.授權成功后,微信會返回你一個code。 將APP_ID替換成你在微信…

使用MVC模式制作游戲-教程和簡介

游戲開發中一種有用的體系結構模式是MVC(模型視圖控制器)模式。 它有助于分離輸入邏輯,游戲邏輯和UI(渲染)。 在任何游戲開發項目的早期階段,其實用性很快就會被注意到,因為它允許快速更改內容&…