mysql性能优化实践ppt课件.ppt

上传人:小飞机 文档编号:1376859 上传时间:2022-11-16 格式:PPT 页数:21 大小:629KB
返回 下载 相关 举报
mysql性能优化实践ppt课件.ppt_第1页
第1页 / 共21页
mysql性能优化实践ppt课件.ppt_第2页
第2页 / 共21页
mysql性能优化实践ppt课件.ppt_第3页
第3页 / 共21页
mysql性能优化实践ppt课件.ppt_第4页
第4页 / 共21页
mysql性能优化实践ppt课件.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《mysql性能优化实践ppt课件.ppt》由会员分享,可在线阅读,更多相关《mysql性能优化实践ppt课件.ppt(21页珍藏版)》请在三一办公上搜索。

1、,Mysql性能优化实践,搜狐畅游mysql dba 王洪权,summarry,Numa架构对Mysql 使用swap产生的影响硬件优化操作系统优化网络优化重要性能参数调整,为什么会产生swap,程序运行需要大量内存,内存在系统中是一个非常重要的资源,为了满足程序的需求,在面临内存空间紧张的时候,系统就虚拟了一步分内存,这部分内存被映射到swap上。,SWAP问题,在系统中产生swap的场景,1.Cp 大文件2. Mysqldump 等3 磁盘临时表的创建,排序,调整方法,如何降低mysql 对swap的使用1./proc/sys/vm/swappiness (将该值设置为0)-临时/etc/

2、sysctl.conf上添加vm.swappiness=0(永久)2. innodb_flush_method 参数设置为 O_DIRECT 操作系统采用xfs时候,/etc/fstab设置noatime,nodiratime,nobarrier3. Mysql中使用Memlock参数(ulimit l unlimited) 需要以root身份启动mysql ,不推荐这么做4. /usr/bin/numactl -interleave all $cmd 或者直接关闭numa=off5 echo 3 /proc/sys/vm/drop_caches (会释放操作系统的cache,但是不是最终办法

3、),NUMA的内存分配策略,NUMA的内存分配策略有四种:1.缺省(default):总是在本地节点分配(分配在当前进程运行的节点上);2.绑定(bind):强制分配到指定节点上;3.交叉(interleave):在所有节点或者指定的节点上交织分配;4.优先(preferred):在指定节点上分配,失败则在其他节点上分配。,针对numa架构的内存分配策略我们做的改进,1.BIOS中关闭对numa的支持2.OS内核,启动时设置numa=off3.可以用numactl命令将内存分配策略修改为interleave(交叉),,SMP VS MUMA 在内存分配上的区别,Numastat查看内存使用情况

4、,root # numastat node0 node1numa_hit 317326395 418309015numa_miss 10041750 20604904numa_foreign 20604904 10041750interleave_hit 184644 184008local_node 316614387 417251784other_node 10753758 21662135,通过numactl查看分配内存的物理CPU,查看numa开启时候内存分配情况,Numa上的扩展,MySQL对大内存的管理效率不佳,所以对多处理机大内存的主机应该采用MySQL多实例,单实例无法充分发挥

5、性能,并不随着硬件的提升性能线性增加,甚至可能下降。参考Percona的白皮书,讲的比较详细。 http:/,硬件优化,1.开启BBWCRaid卡强制使用write back方式2.RAID卡关闭读cache:RAID卡上的cache容量有限,我们选择direct方式读取数据,从而忽略读cache。关闭预读:由于预读效果不佳,直接读取磁盘关闭磁盘Cache:RAID卡缓存已经缓冲了写操作,所以关闭磁盘cache条带:默认512K目前线上 64K3.LinuxIO调度:/sys/block/sdb/queue/scheduler,默认cfq,调整为deadline (也可以在grub.conf

6、中添加elevator=deadline)减少预读:/sys/block/sdb/queue/read_ahead_kb,默认128,调整为16增大队列:/sys/block/sdb/queue/nr_requests,默认128,调整为512NUMA策略:numactl -interleave=all 或 -cpunodebind=0 -localalloc 或者直接关闭numa=off,操作系统优化,采用64位redhat操作系统,因为32位操作系统在寻址内存大小上有限制。选择xfs文件系统 挂载的时候设置 LABEL=/home /home xfs defaults,noatime,no

7、diratime,nobarrier 1 2注意这里设置nobarrier 直接在磁盘上操作,避免操作系统的cache,网络优化,增加本地端口,以应对大量连接echo 1024 65000 /proc/sys/net/ipv4/ip_local_port_range增加队列的连接数echo 8192 /proc/sys/net/ipv4/tcp_max_syn_backlog 设置mysql连接请求队列中允许存放的最大请求数back_log = 150设置连接超时时间echo 60 /proc/sys/net/ipv4/tcp_fin_timeout,Mysql编译优化,采用自行编译的mysq

8、l 性能上更加稳定,这部分由大牛金荣介绍一下他的经验,innodb innodb_flush_method 设置为O_DIRECT脏数据页的刷新Innodb_max_dirty_pages_pct (根据业务的场景设置不同,根据脏页产生量)innodb_io_capacity (根据磁盘的IO)Innodb_adptive_flushing (ON)Innodb_adaptive_flushing_method (设置为2 采用estimate方式刷新 ,)innodb_adaptive_checkpoint (设置为2采用estimate方式刷新 XTRDB)innodb_flush_nei

9、ghbor_pages (设置为1默认,如果采用SSD fusion 对于随机IO支持足够,可以设置成0),性能参数调整,innodb_read_io_threads = 1 (因为innodb对于预读支持不是很好所以在这里设置为1)innodb_write_io_threads = 16 (脏页写的线程数,加大该参数的值,可以加大脏页写入的效率,提升写入的性能)innodb_flush_log_at_trx_commit (设置为2 参数有0 1 2因为我们开启了bbwc) 0 每次提交的时候不写日志文件,每秒会写入到文件,并刷新到磁盘 1 每次提交的时候写日志文件,并刷新到磁盘 2 每次提交的时候写日志文件,但是不刷新到磁盘,每秒会刷新到磁盘。,多实例混跑,DNS自动摘除,Mysql架构分享,Q&A,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号