一个程序猿的奋斗史php开发

数据库性能优化:服务器硬件

2019-11-02  本文已影响0人  快乐的提千万
1. CPU
注意事项
2. 内存
3. 磁盘IO
选择:
注意事项
4. 网卡带宽
注意事项

2.服务器系统

1.参数优化

网络和内存相关

/etc/sysctl.conf
net.core.somaxconn = 65535   //每个端口最大监听队列长度
net.core.netdev_max_backlog = 65535  //接包速率
net.ipv4.tcp_max_syn_backlog = 65535 //等待队列长度
//加快TCP回收
net.ipv4.tcp_fin_timeout = 10 //等待队列超时设置 
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
//TCP缓冲区相关
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缓冲池的大小。建议值为物理内存的一般,或者物理内存-1byte
vm.swappiness = 0 //当内存不足时会有影响,linux内存交换区,为0表示除非虚拟内存满了,否则不使用交换区。

文件相关

/etc/security/limit.conf
PAM,插入式认证模块,打开文件数的限制。
* soft/hard nofile 65535
*表示对多有用户有效。
soft表示当前值,hard表示最大值。
nofile 表示打开文件句柄
63335 表示最大值。
两句话加到limit文件后面,重启生效。

磁盘相关

/sys/block/devname/quque/scheduler
cfq策略 完全公平策略,会插入一些不必要的请求。
noop电梯式调度策略。倾向于饿死读,利于写。适用于闪存设备,RAM,嵌入式设备。
deadline 截止时间调度策略。默认读期限小于写期限,防止饿死。对数据库是最好的。
anticipatory 预料IO调度策略。本质上和deadline一样,但是最后一次读操作后,要等待6秒,才能继续调度。会在每个6秒钟插入一个新的IO操作,而会将一些小的写入流合并成大写入流,用写入延迟换区最大的吞吐量。使用与写入较多的环境。比如文件服务器。

文件系统
/etc/fstab
data = writeback | ordered | journal
noatime,nodiratime
一般选择writeback

上一篇下一篇

猜你喜欢

热点阅读