一、操作系统环境
操作系统版本选择
CentOS/RHRL/ORACLE Linux 5.x/6.x x86_64 发行版 建议磁盘分区规则
MySQL 运行环境建议规范
挂载点
大小
分区类型
分区用途
/boot
100M
系统默认即可
/boo
swap
4G-16G
swap
swap
/opt
20G
xfs
安装应用软件
应用程序安装在 /opt/app/ 下的子目录,例如 /opt/app/mysql-5.5.37
/
40G ,最小不低于 20G
系统默认即可
/
/home
第一个 Raid 剩余 ,不低于 20G
xfs
存放备份文件目录
备份文件放在 /home/backup 下的子目录,例如 /home/backup/mysql/20140819
/data
第二个 Raid 的全部,根据数据大小决定
xfs
存放 MySQL 数据文件目录
数据文件放在 /data/mysql 下的子目录,例如
/data/mysql/myapp_3306
/tmp
8-16G
tmpfs
采用 tmpfs,利用内存的共享内存,加速 /tmp 目录的文件读写性能
内核参数建议值
1. 调整最大文件数限制 ulimit -n 65535
并且写入 /etc/sysctl.conf,重启后也能生效
2. 修改 IO 调度器设置
io 调度器修改为 deadline,如果是 SSD 或者 PCIe-SSD 设备,则修改为 noop,下列两种方式修改: a) 在线动态修改,重启失效
echo “deadline” > /sys/block/sdb/queue/scheduler
这里的 sdb 修改为实际的设备名称,例如 sda,或者 sdc。 b) 修改 /etc/grub.conf,永久生效
修改 /etc/grub.conf 配置文件,在 kernel 那行增加一个配置,例如: kernel /vmlinuz-2.6.18-308.el5 ro root=LABEL=/1 elevator=deadline rhgb quiet
最后,查看核实下 io 调度器的配置,例如:
cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
这时表示 io 调度器采用的是 cfq,而非我们要求的 deadline,需要及时调整。
3. 修改 swappiness 设置 vm.swappiness = 0
并且将该设置写入 /etc/sysctl.conf ,重启后也能生效。
swappiness 是 Linux 的一个内核参数,用来控制 Linux 物理 RAM 内存进行 SWAP 页交换的相对权重,尽量减少系统的页缓存被从内存中清除的情况。 取值范围是0~100,vm.swappiness 的值越低,Linux 内核会尽量不进行 SWAP 交换页的操作,vm.swappiness 的值越高,linux 会越多的使用 SWAP 空 间。Linux 系统的默认值是 60,当系统需要内存时,有 60%的概率使用 SWAP。对于大多数桌面系统,设置为 100 可以提高系统的整体性能;对于数 据库应用服务器,设置为 0,可以提高物理内存的使用率,进而提高数据库服务的响应性能。
不过需要注意的是,RHEL 7 以上版本,如果 vm.swappiness = 0,有可能会由于 OOM 问题,导致 mysqld 进程被 OOM-