Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2279719
  • 博文数量: 297
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2200
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-31 14:30
个人简介

自己慢慢积累。

文章分类

全部博文(297)

分类: Mysql/postgreSQL

2015-08-16 22:37:44

参考 #深入浅出MYSQL#

--后记
呃,不得不说,我用500W数据测试了下:发现 “调整I/O调度算法”有轻微的改善,后面其他的没有任何改变。
当然 vm.swappiness=0 这个参数还是非常有必要的。


1、使用raid
2、调整I/O调度算法
    *MYSQL数据库环境建议使用Deadline
      查看: more /sys/block/sda/queue/scheduler
       临时修改:echo "deadline" >/sys/block/sda/queue/scheduler
      永久修改:vi /boot/grub/menu.list
                      kernel /boot/vmlinuz-2.8.18-308.e15 ro root=LABEL=/ elevatro=deadline

3、raid 卡缓存
    *通过MegaCli64 -LDInfo -Lall -aAll  命令查看当前raid 卡设置的缓存策略
    *通过MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL 查看RAID 开的BBU 的状态
4、NUMA架构优化
    *numactl --hardware 显示当前NUMA的节点情况
    *numactl --show  查看当前系统NUMA策略,默认是优先在进程所在CPU的本地分配内存,会导致CPU节点间内存分配不均衡,当某个CPU节点内存不足时,会导致SWAP的产生,而不是从远程节点分配内存,这就是Swap Insanity 现象
     MYSQL 对NUMA的架构特性支持不好,如果单机只运行一个MySQL实例,可以选择关闭NUMA,有两种方式:
      *硬件层:在BIOS中设置关闭
      *OS内核,启动时设置numa=off
        修改/etc/grub.conf文件,在 kernel 那行追加 numa=off
        保存后重启服务器,numactl --hardware 如果只剩下一个节点就成功了
     *或者修改 mysql_safe的启动脚本,添加 cmd="/usr/bin/numactl --interleave all $cmd" 一行即可。

修改mysqld_safe,在cmd="$NOHUP_NICENESS"后添加如下信息
cmd="/usr/bin/numactl --interleave all $cmd"

以下参考
http://blog.c1gstudio.com/archives/1260


减少预读,默认128
echo ’16’ > /sys/block/sda/queue/read_ahead_kb
增大队列,默认128
echo ‘512’ > /sys/block/sda/queue/nr_requests
尽量不使用交换区,默认60
echo ‘0’ > /proc/sys/vm/swappiness

开机运行
vi /etc/rc.local

  1. echo 'deadline' > /sys/block/sdb/queue/scheduler
  2. echo '16' > /sys/block/sda/queue/read_ahead_kb
  3. echo '512' > /sys/block/sda/queue/nr_requests

vi /etc/sysctl.conf

  1. vm.swappiness=0





   
阅读(927) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~