nginx mysql集群配置_nginx集群配置

作者:夕阳小子

时间:2017-5-1

优化思路:

Nginx层面:

解决: nginx.conf 下面: work_connection 加大

worker_connections 10240;

Worker_rlimit_nofiles 10000;

Keepalive_timeout 0;

系统层面

1: 内核层面,加大连接数,并加快tcp回收

2: mysql层面,增大连接数

3: php层面,用长连接,节省连接数

4: 用memcached缓存,减轻mysql负担

A服务器:nginx

B服务器:mysql

C服务器:php-fpm进程服务器

D服务器:memcached服务器5-8个

8dd13a21388419a9d7593815746b8f2b.png

673ca5b0322a58ae1b09cbbe95767fbd.png

3ea730fff6a6939102f2b63f414a77ce.png

A,B,C,D四台服务器防火墙全部关掉 service iptables stop,防火墙用硬件防火墙

每台服务器都做以下优化:

系统内核层面:

net.core.somaxconn = 4096 允许等待中的监听

net.ipv4.tcp_tw_recycle = 1 tcp连接快速回收

net.ipv4.tcp_tw_reuse = 1 tcp连接重用

net.ipv4.tcp_syncookies = 0 不抵御洪水攻击

ulimit -n 30000

89520abd5b026d40b2bde9ef94d221b2.png

安装php-fpm

3a5cba649e0d53bc198ad95bfd44d953.png

bcb907e4387d2fed7010ea66c9338351.png

9d966517c0783e0a8ddb446b4bc03603.png

f1c970cbeb7ef2e4b9f32626285b9d65.png

975b9f195cd0fc739c7a519d454fad10.png

de8c950a79ca0c16bc04e8c095b9c5b0.png

28cddbbb5ad8497d40ff7c5be1b43299.png

php-fpm配置

分别增加5个php-fpm配置文件:php-fpm.conf php-fpm9001.conf php-fpm9002.conf php-fpm9003.conf php-fpm9004.conf

分别做一下配置,监听不同端口

Pm = static 让fpm进程始终保持,不要动态生成

Pm.max_children= 32 始终保持的子进程数量

80fda4c1ca1f5a0a6e731311bdd5c6c7.png

写一个shell脚本方便全部php-fpm进程

8b3403919df676f1603e0b10f42f93c2.png

Nginx服务器

相关优化

Nginx层面:

解决: nginx.conf 下面: work_connection 加大

worker_connections 10240;

Worker_rlimit_nofiles 10000;

Keepalive_timeout 0;

063f3d5c9e9a032de66450fab44ce326.png

memcahced服务器

安装

1. 查找Memcached

yum search memcached

首先检查yum软件仓库中是否存在memcached,如果有 直接进入第3步安装即可,否则执行第2步。

2. 安装第三方软件库(可选)

标准的CentOS5软件仓库里面是没有memcache相应的包的,所以,我们的第一步就是导入第三方软件仓库,这里推荐的是RpmForge(RpmForge库现在已经拥有超过10000种的CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库),安装方法如下:

wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.rf.src.rpm

rpm -ivh rpmforge-release-0.5.2-2.rf.src.rpm

3.安装Memcached

yum -y install memcached

4.验证安装

memcached -h

/etc/rc.d/init.d/memcached status

5. 查看配置文件

cat /etc/sysconfig/memcached

可以根据情况修改相关配置参数:

PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""

6.启动memcached

/etc/rc.d/init.d/memcached start

49825b8d2e299d7b3ace2e3b8642cd65.png

ac8017c046e5141d300ecfa346fa264b.png

nginx 配置

16472b6580ab5f4b82e329f01dab4d79.png

3c0d77062b0066d29fbff71eff04919d.png

Mysql服务器

数据准备:

829e63d0c73b562a9a4e9a02a9f1e203.png

大概12w的数据

67478725c3cd0d8a6e9b68a6e5920d82.png

代码准备:bench.php

5c98087993d4b90bbe31c2818e9dfda0.png

103075b83fd406f2cb2ea4b142a00519.png

a3dd6dc36fe180c3c2e692d76cd5044c.png

接下来进行压力测试

分别用两台服务的apache ab压力测试工具进行测试:目标是3000个并发,50w个请求

db3036f90f9fe51d55b745be4a0fe4a5.png

时时观测:status

38d15482cef3c1515cfd7668d26bd916.png

59bc08982eb8b75f9ff9d0e9fdb4c5d8.png

测试结果:80%-90%响应在3-8秒之间,整个nginx集群负载还是很不错的;仅仅是做了简单的压力测试,在实际的业务场景中,还需要具体的问题分析,找到问题所在,看是服务器瓶颈还是系统瓶颈,或者是软件(nginx,mysql,php....),再进行相关的优化,把最快的响应给用户,就是我们的目标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值