日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Linux清mysql磁盘,mysql与linux ~ 磁盘分析与调优

發布時間:2025/3/8 数据库 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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/ 注 ...

總結

以上是生活随笔為你收集整理的Linux清mysql磁盘,mysql与linux ~ 磁盘分析与调优的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。