選擇合適的CPU
本文來自:https://www.cnblogs.com/wangchaozhi/p/mysql_performance_stat.html
多核CPU,并支持64位應用,可以使用更多的記憶體,
配置MYSQL的IO執行緒與CPU核數一致,
通過以下命令查看當前配置的配置,默認4
#show variables like '%_io_threads';
innodb_read_io_threads 4
innodb_write_io_threads 4
只能通過修改組態檔來修改以上的配置
innodb_read_io_threads=16
innodb_read_write_threads=16
配置后需要重啟MYSQL服務
選擇合適的記憶體
超過4G記憶體則需要CPU支持64位應用,
查看記憶體是否存在瓶頸:
#show global status like '%innodb%read%';
緩沖池命中率:
Innodb_buffer_pool_read_requests/(Innodb_buffer_pool_read_requests+Innodb_buffer_pool_reads+Innodb_buffer_pool_read_ahead)
如果大于99%則標識記憶體壓力不大,
選擇合適的磁盤
通過perf-tools-master/iosnoop查看磁盤的 延時
通過以下命令查看系統IOPS:
#fio -name iops -rw=randread -bs=4k -runtime=60 -iodepth 32 -filename /root -ioengine libaio -direct=1
機械硬碟:尋道時間、轉速影響“隨機寫入、讀取資料”性能,可以通過RAID提升性能,
固態硬碟:不需要尋到,因此讀取效率高,資料不可更改,需要擦除,
RAID0:多塊合并一塊,受限IO總線,
RAID1:兩組以上N個磁盤互為鏡像(可靠性最高),
RAID5:硬碟磁區技術,寫入較慢(校驗資訊),讀取與RAID0接近,
innodb_io_capacity:引數定義了InnoDB后臺任務每秒可用的I/O運算元(IOPS)
innodb_io_capacity 配置建議,它是innodb_io_capacity_max的一半,默認innodb_io_capacity=100,同樣,它對讀無效對寫有決定意義,
在頻繁寫操作的時候才有意義(它不適用于讀操作),若你真的需要對它進行調整,最好的方法是要了解系統可以支持多大的 IOPS,譬如,假設服務器有一塊 SSD 硬碟,我們可以設定 innodb_io_capacity_max=6000 和 innodb_io_capacity=3000(最大值的一半),運行 sysbench 或者任何其他基準工具來對磁盤吞吐量來進行基準測驗是一個好方法,
innodb_io_capacity 它會直接決定mysql的tps(吞吐性能),這邊給出參考: sata/sas硬碟這個值在200 sas raid10: 2000 ssd硬碟:8000 fusion-io(閃存卡):25,000-50,000
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/286050.html
標籤:MySQL
上一篇:看完這篇還不懂 MySQL 主從復制,可以回家躺平了~
下一篇:MySQL之完整性約束
