一, 硬件设置
1,CPU ,内存 默认都是节能模式
进入Bios里改为 高性能模式
2,建议使用SSD硬盘,如果是Raid卡,建议使用raid5,或者raid10
Raid1,Raid0,Raid5,Raid10的区别
raid0 :性能最强的阵列形式,就是在多个磁盘上分散存取连续的数据,存取数据时多个磁盘可以并排执行,各个磁盘处理自己的那部分数据请求,大大提高性能,但是安全性较低,一个磁盘损坏将无法使用,最少需要2个磁盘
raid1:又称镜像盘,存数据时将会将数据同时写入镜像盘,读取数据只从工作盘中读出。发生故障时,可以从镜像盘读取数据,恢复工作盘。安全性极高,需要2n个磁盘
raid5:raid5作为raid0和raid1的折中方案,多了一个校验,至少需要三个盘,如果一个盘坏了,可以通过另外一个盘和校验盘,来恢复出来坏盘的数据
raid10:先做raid1然后做raid0,这样性能和安全性都有保障,但是成本会比较高
如果是 PCI-E 卡,就不做Raid。否则要做Raid,mysql做的是Raid10.
有raid卡,那么数据写入磁盘的方式直接改为wb force,写入到raid卡里,不需要直接写入磁盘
wb,wt的区别:wb 直接写到raid cache里后就返回
wt 写到磁盘
3,文件系统设置
文件系统建议使用XFS,然后使用合适的磁盘调度算法
修改系统IO调度算法,机械盘deadline,SSD noop
查看系统支持及默认的IO调度算法
Dmesg |grep –i scheduler
centos7 修改IO调度:grubby –update-kernel=ALL --args=“elevator=deadline”
centos6修改IO调度:sed –i ‘/kernel/s/$/ elevator=deadline/g’/etc/grub.conf
建议挂在硬盘添加noatime、nodiratime、nobarrier参数
二, 环境初始化
1,yum upgrade –y 系统升级
2,yum kernel-devel
3,yum development tools开发包
4,关闭numa
yum installnumactl
numactl--hardware 和numastat查看numa状态
/boot/grub2/grub.cfg里添加 numa=off来关闭numa
如果不关闭numa,则建议一个实例绑定到一个node上
5,关闭selinux
进入/etc/sysconfig/selinux 修改为disabled
6, ulimit -a :open files (最可能出现的错误too many open files:24)
max user processes(resource temporarily unavailable:11)
可去/etc/security/limits.conf 添加
* soft nproc 65535
* hard nproc 65535
* hard nofile 65535
* soft nofile 65535
* 代表针对所有用户有效
soft代表当前系统设置生效的值 hard代表当前系统所能占用的最大值 - 同时设置了soft和hard
nproc 最大用户进程数 nofile 打开最大的文件数
也可以这样设置user@groupname 组前加@代表 所在组的哪个用户,对单独用户进行设置
7,避免使用swap
/etc/sysctl.cong添加 vm.swappiness = 1(0~5都可以,建议设置为1)