1、硬件
内存:相同品牌、颗粒、频率、电压、效验技术和型号单条容量尽可能大。
硬盘:寻道,移动磁头到磁盘表面上的正确位置,传输 等待磁盘旋转,使得所需的数据移动到磁头的下方,等待磁盘旋转过去,所有所需数据都被磁头读出来。
磁盘阵列也会影响
raid1
raid 5
raid5的写性能慢,随机读性能快,数据失效需要重新进行数据分布生成奇偶校验嘛,主要是从库使用。
固态存储硬盘和传统机械盘相比随机读写性能好很多,更好的支持并发。PCIE卡
ssd从库服务器,增加从库io性能,容易损坏主服务器使用不安全
网络存储数据库备份文件
2、操作系统配置参数
/etc/sysctl.conf
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.core.wmem_default= 87380
net.core.wmem_max= 16777216
net.core.rmem_default= 87380
net.core.rmem_max = 16777216
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
kernel.shmmax = 4294967295 这个参数要足够大到能容纳下一个innodb缓存池大小
vm.swappiness =0
/etc/security/limit.conf
* soft nofile 65535
* hard nofile 65535
磁盘调度策略
cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
noop 实现了一个fifo队列,像电梯一样,对io请求进行组织,一个新的请求来时,将请求合并到最近的请求之后,保证请求同一介质
饿死读有利于写,noop对于闪存设备,ram和嵌入式系统最好
anticipatory 与deadline本质一样,但在最后一次操作后要等6ms,才能对其他IO请求进行调度,它会在每个6ms中插入新的io操作,而会将一些小的写入流合并到一个大的io流中
,用写入延时换取最大的写入吞吐量,适合写入较多,文件服务器,作为数据库服务器调度策略很差。
文件系统