服务器准备:
服务器 | 内存 | CPU | SSD | ip | OS |
DB1 | 32GB | 4核 | 300GB | 10.0.10.10/32 | centos6.5 x64 |
DB2 | 32GB | 4核 | 300GB | 10.0.10.11/32 | centos6.5 x64 |
DB3 | 32GB | 4核 | 300GB | 10.0.10.12/32 | centos6.5 x64 |
一、CPU参数调整
在服务器的BIOS设置cpu发挥最大的性能
1、选择Performance Per Watt Optimized(DAPC)模式,发挥CPU最大性能,跑DB这种通常需要高运算量的服务就不要考虑节电了;
2、关闭C1E和C States等选项,目的也是为了提升CPU效率;
3、Memory Frequency(内存频率)选择Maximum Performance(最佳性能);
4、内存设置菜单中,启用Node Interleaving,避免NUMA问题;
二、操作系统IO调度
cat /sys/block/xvdb/queue/scheduler
linux默认的IO调度算法为cfq,需要修改为dealine,如果是SSD或者PCIe-SSD设备,需要修改为noop,可以使用下面两种修改方式。
1、在线动态修改,重启失效。
echo noop > /sys/block/sda/queue/scheduler
tips:这里的sda代表你需要修改的硬盘,根据你实际情况修改。
2、修改/etc/grub.conf永久生效。
修改/etc/grub.conf配置文件,在kernel那行增加一个配置,例如:
kernel /vmlinuz-2.6.32-642.1.1.el6.x86_64 ro root=/dev/mapper/vg_centos-lv_root rd_NO_LUKS rd_LVM_LV=vg_centos/lv_swap rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=vg_centos/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet elevator=noof numa=off
elevator=noof
numa=off #禁用numa特性
三、文件系统XFS OR EXT4
文件系统的挂载参数,建议使用 noatime,nobarrier 两个选项
/dev/xvdb1 /data xfs default,noatime,nobarrier 0 0
四、内存
vim /etc/sysctl.conf
vm.swappiness=0 #利用完物理内存再用交接分区
vm.dirty_ratio=5 # 内存里的脏数据百分比不能超过这个值。如果脏数据超过这个数量,新的IO请求将会被阻挡,直到脏数据被写进磁盘。这是造成IO卡顿的重要原因,但这也是保证内存中不会存在过量脏数据的保护机制
四、网络
vim /etc/sysctl.conf
net.core.somaxconn = 1024
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_max_syn_backlog =8192
net.ipv4.ip_local_port_range=1024 64000
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.max_tw_buckets=360000
net.core.netdev_max_backlog = 2500
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
五、增加文件描述符
动态修改:ulimt -n 51200
永久生效
vim /etc/security/limits.conf
* soft nofile 81920
* hard nofile 81920
* soft nproc 81920
* hard nproc 81920