暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL优化笔记2之优化思路

原创 szrsu 2023-05-31
106
3. 优化思路 

3.0 未优化前的压力测试
db01 [(none)]>create database oldguo charset utf8mb4;
db01 [(none)]>use oldguo;
db01 [oldguo]>set sql_log_bin=0;
db01 [oldguo]>source t100w.sql
db01 [oldguo]>grant all on *.* to root@'localhost' identified by '123';

[root@db01 ~]# mysqlslap --defaults-file=/etc/my.cnf \
--concurrency=100 --iterations=1 --create-schema='oldguo' \
--query="select * from oldguo.t100w where k2='ABxy'" engine=innodb \
--number-of-queries=200 -uroot -p123 -verbose

3.1 主机,存储,网络 
主机
真实的硬件(PC Server): DELL  R系列 ,华为,浪潮,HP,曙光,联想
云产品:ECS、数据库RDS、DRDS、PolarDB
IBM 小型机 P6  570  595   P7 720  750  780     P8 

CPU根据数据库类型
OLTP 
OLAP  

IO密集型:线上系统,OLTP主要是IO密集型的业务,高并发
CPU密集型:数据分析数据处理,OLAP,cpu密集型的,需要CPU高计算能力(i系列,IBM power系列)
CPU密集型: I 系列的,主频很高,核心少 
IO密集型:  E系列(至强),主频相对低,核心数量多

内存
建议2-3倍cpu核心数量 (ECC)

磁盘选择
SATA-III   SAS    Fc    SSD(sata) pci-e ssd  Flash
主机 RAID卡的BBU(Battery Backup Unit)关闭

存储
根据存储数据种类的不同,选择不同的存储设备
配置合理的RAID级别(raid5、raid10、热备盘)   

r0 :条带化 ,性能高
r1 :镜像,安全
r5 :校验+条带化,安全较高+性能较高(读),写性能较低 (适合于读多写少)
r10:安全+性能都很高,最少四块盘,浪费一半的空间(高IO要求)

网络
1、硬件买好的(单卡单口)
2、网卡绑定(bonding),交换机堆叠
以上问题,提前规避掉。

3.2 系统
Swap调整
echo 0 >/proc/sys/vm/swappiness的内容改成0(临时),
vim /etc/sysctl.conf
上添加vm.swappiness=0(永久)
sysctl -p


IO调度策略

centos 7 默认是deadline
cat   /sys/block/sda/queue/scheduler


#临时修改为deadline(centos6)

echo deadline >/sys/block/sda/queue/scheduler 
vi /boot/grub/grub.conf
更改到如下内容:
kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ elevator=deadline rhgb quiet

IO :
    raid
    no lvm
    ext4或xfs
    ssd
    IO调度策略	
提前规划好以上所有问题,减轻MySQL优化的难度。
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论