如何解决PHP的高并发和大流量的问题_Yii_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • Yii

    当前位置:主页 > 网络编程 > Yii >

    如何解决PHP的高并发和大流量的问题

    时间:2019-10-09|栏目:Yii|点击:
  • 这篇文章主要介绍了关于如何解决PHP的高并发和大流量的问题,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    基础知识

      TFS : 吞吐量 (吞吐量是指系统在单位时间内处理请求的数量)

      RT : 响应时间 (从请求发出到收到响应时间)

      并发数 : 在一段时间内同时访问站点的用户数

      QPS : 每秒查询率 (每秒请求或者相应数,在互联网领域,值每秒相应请求数(值HTTP请求))

      PV : page view 页面访问量

      UV : user view 用户访问量

    一般来说,日pv(访问量)大于1000万就可以算做高并发

    日网站带宽 = PV / 统计时间 (秒) * 页面平均大小(KB) * 8

    压力测试

    推荐使用apache自带的压力测试工具 ab

    使用方法:进入apache目录,在当前目录下运行(windows):

    ab.exe -n 总请求量 -c 并发请求量 请求地址

    请求结束后我们可以得到数据:

    Server Software: Apache/2.4.18 服务器类型 Server Hostname: eko.xiao.com 域名 Server Port: 80 端口 Document Path: /index.html 请求文件 Document Length: 529 bytes 文件大小 Concurrency Level: 100 并发数 Time taken for tests: 1.240 seconds 总响应时间 Complete requests: 1000 请求数 Failed requests: 0 失败次数 Total transferred: 800000 bytes 总共传输数据量 HTML transferred: 529000 bytes Requests per second: 806.41 [#/sec] (mean) QPS(每秒查询率) Time per request: 124.007 [ms] (mean) 平均响应时间 Time per request: 1.240 [ms] (mean, across all concurrent requests) Transfer rate: 630.00 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 1.4 1 38 Processing: 42 114 34.2 103 204 Waiting: 41 113 33.9 102 204 Total: 43 115 34.5 104 207 Percentage of the requests served within a certain time (ms) 50% 104 66% 117 75% 133 80% 136 90% 173 95% 197 98% 204 99% 204 100% 207 (longest request)  

    优化

    随着QPS增长,每个阶段需要做不同的优化措施,优化的方案也与硬件,网络条件相关

    QPS达到50

      无需优化

    QPS达到100(数据库层)

      假设数据库每次查询0.01S,每个页面只有一个sql查询,那么此时已经是数据库极限

      优化措施:数据库缓存,数据库负载均衡,redis,memcache

    QPS达到800 (网络带宽)

      假设每个页面只有10K,那么在800QPS下,带宽已经耗尽

      优化措施:CDN加速 负载均衡

    QPS达到1000

      优化措施:静态页面

    流量优化:

      防盗链处理

    前端优化:

      减少HTTP请求

      添加异步请求

      启用浏览器缓存

    服务器优化:

      页面静态化

      并发处理

      队列处理

    数据库优化:

      数据库缓存

      分库分表,分区操作

    以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

    相关推荐:

    php大牛分享:php代码编写的规范,总结的很全

    PHP的安装以及与apache整合的介绍

    以上就是如何解决PHP的高并发和大流量的问题的详细内容,更多请关注php中文网其它相关文章!

    上一篇:对于PHP面试知识点的小结

    栏    目:Yii

    下一篇:聊聊框架开发的依赖注入,容器与外观模式(上部)

    本文标题:如何解决PHP的高并发和大流量的问题

    本文地址:http://www.jh-floor.com/wangluobiancheng/Yii/86075.html

    您可能感兴趣的文章

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号