mysql性能优化实践.ppt_第1页
mysql性能优化实践.ppt_第2页
mysql性能优化实践.ppt_第3页
mysql性能优化实践.ppt_第4页
mysql性能优化实践.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,Mysql性能优化实践,搜狐畅游mysql dba 王洪权 ,summarry,Numa架构对Mysql 使用swap产生的影响 硬件优化 操作系统优化 网络优化 重要性能参数调整,为什么会产生swap,程序运行需要大量内存,内存在系统中是一个非常重要的资源,为了满足程序的需求,在面临内存空间紧张的时候,系统就虚拟了一步分内存,这部分内存被映射到swap上。,在系统中产生swap的场景,1.Cp 大文件 2. Mysqldump 等 3 磁盘临时表的创建,排序,调整方法,如何降低mysql 对swap的使用 1./proc/sys/vm/swappiness (将该值设置为0)-临时 /etc/sysctl.conf上添加vm.swappiness=0(永久) 2. innodb_flush_method 参数设置为 O_DIRECT 操作系统采用xfs时候,/etc/fstab设置noatime,nodiratime,nobarrier 3. Mysql中使用Memlock参数(ulimit l unlimited) 需要以root身份启动mysql ,不推荐这么做 4. /usr/bin/numactl -interleave all $cmd 或者直接关闭numa=off 5 echo 3 /proc/sys/vm/drop_caches (会释放操作系统的cache,但是不是最终办法),NUMA的内存分配策略,NUMA的内存分配策略有四种: 1.缺省(default):总是在本地节点分配(分配在当前进程运行的节点上); 2.绑定(bind):强制分配到指定节点上; 3.交叉(interleave):在所有节点或者指定的节点上交织分配; 4.优先(preferred):在指定节点上分配,失败则在其他节点上分配。,针对numa架构的内存分配策略我们做的改进,1.BIOS中关闭对numa的支持 2.OS内核,启动时设置numa=off 3.可以用numactl命令将内存分配策略修改为interleave(交叉),,SMP VS MUMA 在内存分配上的区别,Numastat查看内存使用情况,root # numastat node0 node1 numa_hit 317326395 418309015 numa_miss 10041750 20604904 numa_foreign 20604904 10041750 interleave_hit 184644 184008 local_node 316614387 417251784 other_node 10753758 21662135,通过numactl查看分配内存的物理CPU,查看numa开启时候内存分配情况,Numa上的扩展,MySQL对大内存的管理效率不佳,所以对多处理机大内存的主机应该采用MySQL多实例,单实例无法充分发挥性能,并不随着硬件的提升性能线性增加,甚至可能下降。 参考Percona的白皮书,讲的比较详细。 /files/white-papers/scaling-multiple-mysql-percona-server-virident.pdf,硬件优化,1.开启BBWC Raid卡强制使用write back方式 2.RAID卡 关闭读cache:RAID卡上的cache容量有限,我们选择direct方式读取数据,从而忽略读cache。 关闭预读:由于预读效果不佳,直接读取磁盘 关闭磁盘Cache:RAID卡缓存已经缓冲了写操作,所以关闭磁盘cache 条带:默认512K目前线上 64K 3.Linux IO调度:/sys/block/sdb/queue/scheduler,默认cfq,调整为deadline (也可以在grub.conf 中添加elevator=deadline) 减少预读:/sys/block/sdb/queue/read_ahead_kb,默认128,调整为16 增大队列:/sys/block/sdb/queue/nr_requests,默认128,调整为512 NUMA策略:numactl -interleave=all 或 -cpunodebind=0 -localalloc 或者直接关闭numa=off,操作系统优化,采用64位redhat操作系统,因为32位操作系统在寻址内存大小上有限制。 选择xfs文件系统 挂载的时候设置 LABEL=/home /home xfs defaults,noatime,nodiratime,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编译优化,采用自行编译的mysql 性能上更加稳定,这部分由大牛金荣介绍一下他的经验,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_neighbor_pages (设置为1默认,如果采用SSD fusion 对于随机IO支持足够,可以设置成0),性能参数调整,innodb_read_io_threads = 1 (因为innodb对于预读支持不是很好所以在这里设置为1) innodb_write_io_threads = 16 (脏页写的线程数,加大该参数的值,可以加大脏页写入的效率,提升写入的性能) innodb_flush_log_at_trx_commi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论