Linux清mysql磁盤,mysql與linux ~ 磁盤分析與調優

一 簡介 談談磁盤IO的問題二 目的:如何進行IO性能問題的排查

二? linux角度

一 機械硬盤基本定義

尋道時間,表示磁頭在不同磁道之間移動的時間(最耗時)。

旋轉延遲,表示在磁道找到時,中軸帶動盤面旋轉到合適的扇區開頭處。

傳輸時間,表示盤面繼續轉動,實際讀取數據的時間

二 機械盤與SSD盤的對比

1 無論是SSD還是機械盤,隨機讀寫IO的效率都遠遠低于順序讀寫IO

1 對于機械盤,隨機讀寫IO會增加更多的盤片旋轉和磁頭尋道時間

2 對于SSD硬盤,隨機讀寫IO會造成的大量的垃圾回收(垃圾需要先擦除回收然后再進行寫入)

2 機械硬盤的基本單位是扇區(通常是512字節) SSD硬盤的基本單位是頁(通常是4K 8K)

3 SSD對比機械盤最大的優勢就是沒有尋道時間,對于機械盤消耗時間最大的也就是尋道時間

4 SSD本身有寫入次數限制(壽命),還有寫磨損問題 這個需要注意,一般服務器情況下都是SSD+機械硬盤混合搭配

三 linux系統的算法

CFQ 完全公平調度器,為每個進程都創建不同的IO調度隊列,并按照時間片來平均分配每個進程的IO請求,常用于多進程的場景

DEADLINE 為讀寫請求分別創建不同的IO隊列,并保證最先到達deadline的請求會被優先處理,常用于數據庫場景,能提高機械磁盤的吞吐量

NOOP? ? 是一個先入先出的隊列,只做一些合并IO的操作,適合SSD

四 文件系統層

選擇xfs或者ext4文件系統,推薦xfs

五 mysql角度

控制臟頁刷新

1 innodb_flush_neighbors 設置為0 關閉該特性

2 innodb_io_capacity 臟頁刷新數量,建議設置為iops的60%,如果設置的過低,會限制tps的能力,如果設置的過高,會加大磁盤io的壓力,因為一次性刷新的臟頁數量會多

3 調整redo log大小,建議單個redo大于1G,增加多個redo文件,防止出現寫磨損問題

4 調整?innodb_max_dirty_pages_pct 臟頁占用比,進行調低.?nnodb_max_dirty_pages_pct和??innodb_io_capacity 進行合理搭配調節

參數說明

當刷新一個臟頁時,innodb存儲引擎會檢測該頁所在區(extent)的所有頁,如果是臟頁,那么一起進行刷新,這樣做能合并多個IO,減少硬盤壓力

建議 機械硬盤開啟 SSD硬盤關閉

六 壓測

1 壓測磁盤組的隨機讀寫能力

fio -filename=/data/d.txt -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=1500M -numjobs=40 -runtime=10 -group_reporting -name=mytest

關心參數

read and write的iops

2 通過壓力測試得出服務器的最大承受值

請注意:util并不能真正反映磁盤組的整體性能,反過來,util值忙,代表磁盤繁忙程度,想要看磁盤壓力

1? 觀察iowait.

2 觀察磁盤的IOPS(w/s+r/s)

3 觀察await

三 mysql角度

一 事務

1 寫日志文件

1 流程 redo log+binlog 二階段提交-> 寫日志文件 順序寫

2 控制參數

innodb_flush_log_at_trx_commit = 1 控制redo log的磁盤刷新

sync_binlog = 1 控制binlog 的磁盤刷新

2 臟頁刷新

1 將內存中改變的數據頁刷新到磁盤中

2 控制參數

innodb_flush_neighbors 控制相鄰臟頁的刷新

innodb_io_capacity 控制臟頁刷新的數量

innodb_max_dirty_pages_pct 臟頁占用比

二 查詢

1 慢語句

使用索引不當的慢sql查詢會造成磁盤的繁忙,這種情況多出現在

1 大表的慢sql查詢

2 表的主鍵碎片化也會造成大量的隨機讀,常見于uuid作為主鍵或者執行過大量更改的情況

3 單個慢sql出現在慢日志,慢sql本身受到影響(1 臟頁刷新 2 日志刷新 3 并發sql查詢)

2 并發語句

大量并發語句并發查詢導致的磁盤繁忙情況

四? 判斷分析

磁盤沒有到達瓶頸

1 根據上文提出的,要分析mysql哪一部分出了問題,日志刷新->臟頁刷新->慢日志,根據某一個環節進行優化

磁盤到達瓶頸

1 mysql慢日志出現了很多不該出現的慢日志語句,通常表現在掃描行數很少,單體執行很快

2 監控圖的iops經常性報警,尤其是在業務高峰期,由于IO限制導致的負載升高,iowait值很高

解決辦法:1 拆分業務 2 做讀寫分離 3 升級硬盤,采用ssd硬盤

五 補充

分析數據庫的IO問題 可以采用 pt-ioprofile定位文件信息

mysql 與linux ~ 內存分析與調優

一 簡介:linux內存和mysql二 分類? ?1 用戶空間和內核空間? ? ? 用戶空間內存,從低到高分別是五種不同的內存段? ? ? 1 只讀段 包含代碼和常量等? ? ? 2 數據段 包含全局 ...

linux性能分析及調優

第一節:cpu 性能瓶頸 計算機中,cpu是最重要的一個子系統,負責所有計算任務: 基于摩爾定律的發展,cpu是發展最快的一個硬件,所以瓶頸很少出現在cpu上: 我們線上環境的cpu都是多核的,并且基 ...

linux性能調分析及調優

轉:https://blog.csdn.net/luokehua789789/article/details/53007456 Linux 性能分析以及調優介紹 寫在前面:計算機要解決的基本問題之一是 ...

linux 內核參數VM調優 之 參數調節和場景分析

1. pdflush刷新臟數據條件 (linux IO 內核參數調優 之 原理和參數介紹)上一章節講述了IO內核調優介個重要參數參數. 總結可知cached中的臟數據滿足如下幾個條件中一個或者多個的時 ...

(轉)linux IO 內核參數調優 之 參數調節和場景分析

1. pdflush刷新臟數據條件 (linux IO 內核參數調優 之 原理和參數介紹)上一章節講述了IO內核調優介個重要參數參數. 總結可知cached中的臟數據滿足如下幾個條件中一個或者多個的時 ...

linux概念之性能調優

目前,對系統進行性能調試的工具有很多,這些可以兩大類:一類是標準的分析工具,即所有的UNIX都會帶的分析工具: 另一類是不同廠商的UNIX所特有的性能分析工具,比如HP-UX就有自己的增值性能分析工具 ...

MySQL基礎普及《MySQL管理之道:性能調優、高可用與監控》

最近工作的內容涉及MySQL運維內容,陸陸續續讀了幾本相關的書,其中一本是. 內容涵蓋性能調優(包括sql優化等).備份.高可用,以及讀寫分離 ...

MySQL管理之道:性能調優、高可用與監控》迷你書

MySQL管理之道:性能調優.高可用與監控>迷你書 MYSQL5.5.X主要改進 1.默認使用innodb存儲引擎2.充分利用CPU多核處理能力3.提高刷寫臟頁數量和合并插入數量,改善I/O4. ...

x86服務器中網絡性能分析與調優 轉

x86服務器中網絡性能分析與調優 2017-04-05?巨楓?英特爾精英匯 [OpenStack 易經]是 EasyStack 官微在2017年新推出的技術品牌,將原創技術干貨分享給您,本期我們討論 ...

隨機推薦

(轉)java中的進程與線程

(轉自地址http://www.ibm.com/developerworks/cn/java/j-lo-processthread/) Java 進程的建立方法 在 JDK 中,與進程有直接關系的類為 ...

學習mongo系列(十一)關系

準備工作:首先在maxh數據庫的address集合中先插入數據 > db.address.insert({child_address:"gansu"}) WriteResul ...

數據庫連接池dbcp基本配置

DBCP(DataBase connection pool),數據庫連接池.是 apache 上的一個 java 連接池項目,也是 tomcat 使用的連接池組件.單獨使用dbcp需要2個包: com ...

C語言之將無符號字符型轉化為ascii碼值

這個宏是在linux內核中獲取的,主要的功能是能夠將一個無符號字符型的參數轉化為ASCII碼值. ASCII : ASCII 編碼里包括了128個字符.用?十進制?0 ?到 127 來表示?.那就對了 ...

Mybatis中sql語句中的in查詢,判斷null和size為0的情況

不嚴謹的寫法,可能會報錯:in (),這種情況不符合SQL的語法,導致程序報錯. 如果簡單只做非空判斷,這樣也有可能會有問題:本來in一個空列表,應該是沒有數據才對,卻變成了獲取全部數據! 所以一個比 ...

Eclipse創建Dynamic Web部署

Eclipse創建Dynamic Web部署 http://blog.csdn.net/sweblish/article/details/6686046 Eclipse3.x中熱部署項目,啟動錯誤問題 ...

JAVA GC優化入門

為什么需要優化GC? JAVA的GC是面試必考的題目,可是在實際項目中什么時候使用GC哪?或者應該什么時候優化GC哪?有句名言:“GC優化永遠是最后一項任務”. 在使用GC之前,應該考慮一下進行GC的 ...

BZOJ2957: 樓房重建(線段樹&LIS)

2957: 樓房重建 Time Limit:?10 Sec??Memory Limit:?256 MBSubmit:?3727??Solved:?1793[Submit][Status][Discus ...

#define 與 typedef

1.#define:預編譯指令,在預編譯的時候,進行文本替換. 2.typedef:編譯時處理,為類型取一個別名. 3.#define與typedef的順序是相反的,記住typedef就行了.type ...

「小程序JAVA實戰」小程序我的個人信息-注銷功能(42)

轉自:https://idig8.com/2018/09/06/xiaochengxujavashizhanxiaochengxuwodegerenxinxi-zhuxiaogongneng40/ 注 ...

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

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

相關文章

arm與linux的些許問題,《ARM與Linux些許問題》第一章:ARM工作模式

早期的ARM核有狀態(ARM或Thumb)切換(通過BX等指令修改CPSR寄存器(當前程序狀態寄存器,存放條件碼標志,中斷禁止位,當前處理器模式以及其他狀態和控制信息)中T的控制位完成程序狀態的切換),現在ARM都只使用Thumb狀態了。所以&#…

c語言給定一個字符串匹配,使用C語言解決字符串匹配問題的方法

最常想到的方法是使用KMP字符串匹配算法&#xff1a;#include #include #include int get_nextval(char *pattern,int next[]){//get the next value of the patternint i 0,j -1;next[0] -1;int patlen strlen(pattern);while ( i < patlen - 1){if ( j -1 || pattern…

c語言比較大小 誰大選誰,C語言比較優先級

滿意答案wanggq2222018.03.14采納率&#xff1a;42% 等級&#xff1a;7已幫助&#xff1a;57人#pragma once#include#include#include #includeusing namespace std;typedef struct SymKeyVal{string key;int val;};static SymKeyVal KeyValTable[]{{"",0},{"…

c語言ip地址嗎,C語言:判斷IP地址是否合法

int is_valid_ip(const char *ip){int section 0; //每一節的十進制值int dot 0; //幾個點分隔符int last -1; //每一節中上一個字符while(*ip){if(*ip .){dot;if(dot > 3){return 0;}if(section > 0 && section <255){section 0;}else{retur…

10100的素數c語言程序,C語言基礎題目及代碼.doc

/*讀入一個自然數n&#xff0c;計算其各位數字之和&#xff0c;用漢語拼音寫出和的每一位數字。輸入格式&#xff1a;每個測試輸入包含1個測試用例&#xff0c;即給出自然數n的值。這里保證n小于10100。輸出格式&#xff1a;在一行內輸出n的各位數字之和的每一位&#xff0c;拼…

c語言閏年的判斷條件DS1302,DS1302驅動程序(平年和閏年天數自動調整)

/*********************************************************************************1.本程序能夠顯示年&#xff0c;月&#xff0c;日&#xff0c;時&#xff0c;分&#xff0c;秒&#xff0c;星期七個參數.2.時間和日期可調。可分別完成年&#xff0c;月&#xff0c;日&am…

android 圖片切割代碼,Android用clip剪切圖像資源

使用clip剪切圖像資源可以做進度條&#xff0c;圖像慢慢展開的效果&#xff0c;他使用以下幾個屬性來控制效果&#xff1a;android:drawable&#xff1a;指定要剪切的原圖像。android:clipOrientation&#xff1a;截取的方向。可取的值&#xff1a;horizontal和vertical。分別表…

android gradle錯誤,Android studio gradle錯誤與頂級異常

我最近更新了我的Android Studio,從那以后我的項目沒有構建...我得到錯誤,如下面的錯誤:Error Code:1Output:UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dx.cf.iface.ParseException:class name (org/pervasivesystems/mobilehealth/activities/AppSettingsActivity$AppSetti…

Android中列表動態刪除item,如何刪除Android ExpandableListView中某個group item的child item?...

自定義了一個expandablelistview 想要刪除其中的子項list使用remove方法把list中的指定項刪除了11-09 21:04:20.585: I/MainActivity(13557): childData[{child_textsecond}, {child_textthird}]但是在expandablelistview界面顯示中&#xff0c;并沒有變化,并且還有list溢出報錯…

android 首頁廣告顯示不出來的,android – Admob插頁式廣告(全屏)不會顯示

您沒有為interstitialAd調用loadAd().廣告插播廣告應在您展示廣告之前加載.interstitialAd.loadAd(adRequest);你也應該在調用show()之前檢查它是否已加載.它可能無法立即使用,您可能希望在調用show之前提前加載它.if(mInterstitial.isLoaded()){mInterstitial.show();AdReques…

android新建項目錯誤,新建Android項目出錯

新建Android項目出以下的錯誤&#xff1a;C:\Users\txxs\workspace\4sd\res\values\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name Theme.AppCompat.Light.[2016-11-23 11:57:46 - 4sd][2016-11-23 11:57:46 - 4sd] …

android 圖片 切換,Android 應用開發筆記 - 切換圖片(ImageSwitcher)

在面板拖拽圖標&#xff0c;然后更改相關屬性(Properties)&#xff0c;如下&#xff1a;android:id"id/imgSwit01"android:layout_width"wrap_content"android:layout_height"wrap_content" />ImageSwitcher使用的是setFactory()方法&#xf…

android layout.inflater,Android?-?LayoutInflater

在實際開發中LayoutInflater這個類還是非常有用的&#xff0c;它的作用類似于findViewById()。不同點是LayoutInflater是用來找res/layout/下的xml布局文件&#xff0c;并且實例化&#xff1b;而findViewById()是找xml布局文件下的具體widget控件(如Button、TextView等)。具體作…

android preferenceactivity 源碼,PreferenceActivity PreferenceScreen (3.0/API 11 以前)

Android提供了一個XML驅動的框架&#xff0c;用于為應用程序創建系統樣式的PreferenceScreen.(3.0/API 11 以前)是這樣使用的看代碼&#xff1a;mypreference.xmlandroid:key"PREF_AUTO_REFRESH"android:defaultValue"true"android:summary"select to…

wps 將html轉為word,用WPS快速將網頁內容轉換為WORD文檔

當過學生的都知道&#xff0c;有時查找資料&#xff0c;看到圖文并茂的網頁想要把它Copy在WORD文檔中&#xff0c;那么圖片和文字相互參雜&#xff0c;想要保存下來很復雜&#xff0c;但是如果用WPS的話&#xff0c;一切就會很簡單的&#xff0c;下面來看看WPS是怎么辦到的。1.…

鴻蒙明年可以在手機上用嗎,華為王成錄:鴻蒙已滿足在手機上使用,明年一二月份向部分用戶開放...

在2019年的華為開發者大會上&#xff0c;華為消費者業務CEO余承東正式對外發布了基于微內核的分布式操作系統-HarmonyOS(鴻蒙OS)&#xff0c;余承東表示&#xff0c;鴻蒙OS的出發點和Android、iOS都不一樣&#xff0c;它是一款全新的基于微內核的面向全場景的分布式操作系統&am…

go語言 doc轉換html,go語言使用wkhtmltopdf工具將html轉成pdf

最近收到網友的提問后端怎么把html轉成pdf文件&#xff0c;于是我就把我以前做的例子發出來給大家參考一下&#xff0c;如果對你有幫助的話請點個贊1.首先選擇適合自己的系統下載wkhtmltopdf工具mac下載后安裝成功會自動添加到環境變量 直接執行 wkhtmltopdf -V 測試是否安裝成…

java sound 多線程同一音頻文件_Java在編程語言中占據何等優勢?

現在是信息時代&#xff0c;出現了各種各樣的行業&#xff0c;在這些眾多行業里面&#xff0c;程序員算是高薪職業。在國內程序員的薪水要比其他行業高一些。也正是如此高薪的誘惑和充滿挑戰性的工作&#xff0c;令程序員近幾年來成為了備受歡迎的職業。程序員日常的工作大多是…

dlna和miracast可以共存嗎_高考化學必備之離子共存問題

發生復分解反應&#xff11;、有氣體產生。H與CO32ˉ、HCO3ˉ、SO32ˉ、HSO3ˉ、S2ˉ、HSˉ等不能共存如CO32-、S2-、HS-、HSO3-、等易揮發的弱酸的酸根與H不能大量共存&#xff0c;主要是由于CO32-&#xff0b;2H&#xff1d;CO2↑&#xff0b;H2O、HS-&#xff0b;H&#xff…

html向上浮動的方式,JS 實現Div向上浮動的實現代碼

Html 及 JS 代碼如下&#xff1a;復制代碼 代碼如下:style"position: absolute; width: 100px;">我們var newsOne document.getElementById("newsOne");newsOne.style.bottom 0;newsOne.style.left window.screen.availWidth - 100;var bottom 0;fu…