漫漫长路,其修远兮!
分类: Mysql/postgreSQL
2013-03-26 15:08:04
来自于网络整理
一.操作系统优化
现在一般的服务器CPU采用了NUMA架构,
1.BIOS中关闭对numa的支持
2.OS内核,启动时设置numa=off
3.可以用numactl命令将内存分配策略修改为interleave(交叉)
需要掌握两个命令
numastat
numactl
MySQL对大内存的管理效率不佳,所以对多处理机大内存的主机应该采用MySQL多实例,单实例无法充分发挥性能,并不随着硬件的提升性能线性增加,甚至可能下降
详细说明
IO调度:/sys/block/sdb/queue/scheduler,默认cfq,调整为deadline (也可以在grub.conf 中添加elevator=deadline)
减少预读:/sys/block/sdb/queue/read_ahead_kb,默认128,调整为16
增大队列:/sys/block/sdb/queue/nr_requests,默认128,调整为512
NUMA策略:numactl --interleave=all 或 --cpunodebind=0 --localalloc 或者直接关闭numa=off
二.网络优化
增加本地端口,以应对大量连接
echo '1024 65000' >/proc/sys/net/ipv4/ip_local_port_range ---表示端口的范围,为指定的内容
增加队列的连接数
echo '8192' > /proc/sys/net/ipv4/tcp_max_syn_backlog
设置mysql连接请求队列中允许存放的最大请求数
back_log = 150
设置连接超时时间
echo ‘60' >/proc/sys/net/ipv4/tcp_fin_timeou