《葉問》第4期


2018年7月4日,週三

如何優化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存在瓶頸時,除了常規因素外,還需要關注中斷不均衡的可能性



2018年7月5日,週四

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




2018年7月10日,週二

 MySQL hang的原因有哪些? 


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

2. 磁盤無可用空間。 

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

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

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

6. MySQL的bug導致的。 

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




2018年7月12日,週四

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


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

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

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

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



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