架构 Varnish+nginx+php(FastCGI)+MYSQL5+MenCache+MenCachedb

说明:
我在设计系统架构时,进行了大胆的尝试,只用6台Web服务器,达到了可承受4000万PV(页面访问量)的性能:

  抛弃了 Apache,因为它能承受的并发连接相对较低;
  抛弃了 Squid,因为它在内存利用、访问速度、并发连接、清除缓存等方面不如 Varnish;
  抛弃了 PHP4,因为 PHP5 处理面向对象代码的速度要比 PHP4 快,另外,PHP4 已经不再继续开发;
  抛弃了 F5 BIG-IP 负载均衡交换机,F5 虽然是个好东西,但由于价格不菲,多个部门多个产品都运行在其之上,流量大、负载高,从而导致性能大打折扣;

  利用 Varnish cache 减少了90%的数据库查询,解决了MySQL数据库瓶颈;
  利用 Varnish cache 的内存缓存命中加快了网页的访问速度;
  利用 Nginx + PHP5(FastCGI) 的胜过Apache 10倍的高并发性能,以最少的服务器数量解决了PHP动态程序访问问题;
  利用 Memcached 处理实时数据读写;
  利用 HAProxy 做接口服务器健康检查;

  经过压力测试,每台Web服务器能够处理3万并发连接数,承受4千万PV完全没问题。

  保证4千万PV的并发连接数:(40000000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 6台Web服务器 = 19290连接数

实验证明: 
举个简单的例子,服务器192.168.0.2上运行Nginx+PHP,192.168.0.3上运行Apache+PHP,你在192.168.0.4上安装压力测试工具webbench,以30万并发连接分别请求Nginx和Apache服务器上的一个PHP文件60秒钟。在这期间,你用你的浏览器访问Apache服务器上的PHP文件,会发现要么是“该页无法显示”、要么是等待好几秒钟才能打开,而Nginx服务器的PHP文件,依然没有丝毫影响,访问速度仍然飞快。

webbench -c 300000 -t 60 http://192.168.0.2/index.php

webbench -c 300000 -t 60 http://192.168.0.3/index.php

以下为 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和250个php-cgi进程时的系统负载情况:

最新文章

  1. Disciz!NT开源资源汇总
  2. EDI - Biztalk Setting
  3. HackerRank "New Year Chaos"
  4. 烂泥:KVM虚拟机windows系统增加硬盘
  5. SQL-用JOIN连接多个表
  6. Dot Net设计模式—MVC模式
  7. APP的测试过程和重点
  8. VS快捷键简单记录
  9. 在AcGIS随着大数据的生成DEM
  10. canvas画扇形图(本文来自于http://jo2.org/html5-canvas-sector/)
  11. TestNG简介与安装步骤
  12. 了解前端中的SPA
  13. vue + elementUi + upLoadIamge组件 上传文件到阿里云oss
  14. CentOS 6安装配置mongodb
  15. IDEA常用快捷键整理(Mac OS X版本)
  16. get 乱码解决方案
  17. ABP框架 配置权限、本地语言文件、左侧菜单项
  18. DES、RC4、AES等加密算法优势及应用
  19. Flask初级(十一)flash与APScheduler 实现定时任务
  20. MVC与MVVM设计模式理解

热门文章

  1. Scrapy爬虫基本使用
  2. sqlserver 优化语句小助手
  3. summernote 上传图片到图片服务器的解决方案(springboot 成功)
  4. jmeter的使用---用户变量
  5. Labview初识
  6. Yii2 框架下 session跨域共享互通
  7. map文章
  8. Git - 01. git config
  9. 给footer标签设置padding:7px auto;失效
  10. Fluent_Python_Part1序幕,01-data-model, 数据模型