如何優化Linux操作系統用於MySQL環境?

目錄

  • 如何優化Linux操作系統用於MySQL環境?
  • MySQL 8.0 InnoDB哪些新特性你最期待,爲什麼?
  • MySQL hang的原因有哪些?
  • 專訪王曉偉老師,MySQL數據導入數據倉庫(Hadoop)有哪幾種方式?

一、如何優化Linux操作系統用於MySQL環境?

(一)初級玩法

1、 在BIOS及內核層面關閉NUMA

2、在BIOS層面將CPU、內存均設置最大性能模式

3、在BIOS層面關閉CPU節能模式

4、修改IO Scheduler爲deadline 或 noop

5、使用xfs文件系統,掛載選項noatime、nodiratime、nobarrier

6、在內核層面設置vm.swappiness<=5,vm.dirty_ratio<=10, vm.dirty_background_rati<=5

7、在內核層面修改用戶可最大打開文件數和線程數爲65535

8、禁用SWAP分區

(二)高端玩法

1、使用最新穩定Linux發行版

2、升級各個硬件設備到最新穩定firmware版本

3、使用SSD時,開啓TRIM功能,並且可以的話文件系統block size和SSD對齊

4、當磁盤I/O存在瓶頸時,除了常規因素外,還需要關注中斷不均衡的可能性

二、MySQL 8.0 InnoDB哪些新特性你最期待,爲什麼?

1、數據字典全部採用InnoDB引擎存儲,支持DDL原子性、crash safe,metadata管理更完善

2、快速在線加新列(騰訊互娛DBA團隊貢獻)

3、並行redo log,並提升redo log的I/O性能

4、新增倒序索引

5、增強CBO特性

6、消除了buffer pool mutex(Percona的貢獻)

7、自增ID持久化

8、行鎖增加SKIP LOCKED和NOWAIT特性選項

9、新增事務CATS特性,大大提升事務性能(Michigan大學貢獻)

10、memcached plugin增強

11、增強JSON性能、功能

12、新增智能選項 innodb_dedicated_server

三、MySQL hang的原因有哪些?

1、MySQL使用資源過高導致服務器太累扛不住。例如CPU、內存、 I/O等開銷。

2、磁盤無可用空間。

3、MySQL頻繁的創建和銷燬連接。

4、MySQL使用的最大文件打開數和連接數,超過了操作系統的限制。

5、MySQL的鎖不能有效的釋放。例如持有行鎖或者表鎖,造成了MDL等待。

6、MySQL的bug導致的。

導致MySQL hang住的原因有很多,不侷限於上述因素,還需要機智的你來挖掘。

四、專訪王曉偉老師,MySQL數據導入數據倉庫(Hadoop)有哪幾種方式?

1、傳統方式,採用mysqldump等工具將數據文件上傳至HDFS

2、使用Sqoop Kettle等ETL工具,將數據表對應導入Hive的數據表

3、使用kafka+flume方案,將mysql binlog通過流式採集的方式導入Hadoop

4、設計實現Hive的快照表、增量表、全量表,實現MySQL到Hive數據的增量導入,並支持分庫分表等特性。


公衆號:知數堂,更多MySQL乾貨知識,關注公衆號獲取。

原文鏈接:https://zhishutang.com/B0b
推薦閱讀:https://zhishutang.com/xdI

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章