基础篇|PHP如何解决网站大流量和高并发

news/2024/5/16 11:30:36/文章来源:https://blog.csdn.net/weixin_33754065/article/details/92255028

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

基础篇

高并发架构基础概念和优化思路

高并发架构相关概念

并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行

通常我们所定义的高并发并非上述解释,简单的来说就是在某个时间点、有多少个访问同时到来

高并发:通常如果一个日PV在千万以上,就有可能是一个高并发的系统

QPS:每秒钟请求或查询的数量,在互联网领域,指每秒响应请求数(HTTP请求)

吞吐量:单位时间内处理的请求数量(通常由QPS和并发数决定)

响应时间:从请求发出到收到响应花费的时间。例如系统处理一个HTTP请求需要10s,这个10s就是响应时间

PV:综合浏览量(Page View),即页面浏览量或者点击量,一个访客在24小时内访问的页面数量

UV:独立访客(UniQue Visitor),即一定时间范围内相同访客多次访问网站,只计算为1个独立访客

带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小

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

峰值是平均值的倍数,根据实际情况来定

QPS VS 并发连接数

QPS 不等于并发连接数

QPS 是每秒 HTTP 请求数量,并发连接数是系统同时处理的请求数量

(总 PV 数 x 80%)1 (6 小时秒数 x 20%) = 峰值每秒请求数(QPS)

80%的访问量主要集中在20%的时间

压力测试

目的:测试能承受的最大并发 和 测试最大承受的QPS

常用性能测试工具

ab、wrk、http_ load. Web Bench、Siege、Apache JMeter

Ab

全称是 apache benchmark,是 apache 官方推出的工具

创建多个并发访问线程,模拟多个访问者同时对某一 URL 地址进行访问。它的测试目标是基于 URL 的,因此,它既可以用来测试 apache 的负载压力,也可以测试 nginx、lighthttp、 Tomcat、IIS 等其它 Web 服务器的压力。

Ab的使用

模拟并发请求 100 次,总共请求 5000 次 ;Ab-c 100 -n 5000 待测试网站

注意事项

测试机器与被测试机器分开; 不要对线上服务做压力测试; 观察(top)测试工具 ab 所在机器以及被测试的前端机的 CPU,内存,网络等都不超过最高限度的75%。

QPS 达到极限的解决方案

随着 QPS 的增长,每个阶段需要根据实际情况来进行优化,优化的方案也与硬件条件、网络带宽息息相关。

QPS达到50

基本不需要优化。

QPS 达到 100

假设关系型数据库的每次请求在 0.01 秒完成

假设单页面只有一个 SQL 查询,那么 100 QPS 意味着 1 秒钟完成 100 次请求,但是此时我们并不能保证数据库查询能完成 100 次。

方案:数据库缓存层、数据库的负载均衡

QPS 达到 800

假设我们使用百兆带宽,意味着网站出口的实际带宽是 8 M 左右

假设每个页面只有 10 K,在这个并发条件下,百兆带宽已经吃完方案:CDN 加速、负载均衡

QPS 达到 1000

假设使用 Memcache 绶存数据库查询数据,每个页面对 Memcache 的请求远大于直接对 DB 的请求

Memcache 的悲观并发数在 2 w 左右,但有可能在之前内网带宽已经吃光,表现出不稳定

方案:静态 HTML 缓存

QPS 达到 2000

这个级别下,文件系统访向锁都成为了灾难

方案:做业务分离,分布式存储

高并发解决方案案例

流量优化

防盗链处理

前端优化

减少HTTP请求;例如合并CSS js,图片 添加异步请求;延迟加载暂时不需要的内容 启用浏览器缓存和文件压缩; CDN加速; 建立独立的图片服务器;

服务端优化

页面静态化;并发处理;队列处理

数据库优化

数据库缓存;分库分表、分区操作;读写分离;负载均衡

Web服务器优化

负载均衡

转载于:https://my.oschina.net/u/2364788/blog/2877244

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_763394.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【成果】学校网站个性化历史版本记录

https://wubenxwss.github.io/mystulip2.0/ 1.0 2.0

【Github使用】Hexo+Github自建Blog网站成功(自建博客)

博客网址:https://wubenxwss.github.io/ 很久之间搭建的,但是没有详细记录下操作,只是记录下参考文献,要参考借鉴可拉下去文末。现在是想更新文章到博客,那么怎么更新呢? 更新文章 要发布的文章丢这里面…

网站排名下降的原因,网站排名下降怎么办?

很多企业做seo,搜索引擎优化最终的目的就是获得流量并且靠流量获利,而真正想要让网站获得大量精准流量的前提就是,网站关键词的排名,可以这么说,seo就是围绕着当前网站关键词的排名所进行的优化,但是在搜索…

lr自带网站WebTours打不开

转载于:https://www.cnblogs.com/qmfsun/p/4127790.html

建网站选择网络诚信专属.xin域名,诚信赢天下!

什么是.xin域名:阿里巴巴推出的首个新顶级域!音同“信”,让用户信赖的域名!唯一基于阿里巴巴企业诚信体系和蚂蚁金服芝麻信用打造的网络诚信专属域名后缀!•通过优惠口令“赢在17”享32元/首年特惠(原价88元/年)• xin标嵌入网站底部,真实展示…

[SoapUI] UrlEncode编码/UrlDecode解码网站

http://tool.chinaz.com/Tools/URLEncode.aspx 解码: 编码: 转载于:https://www.cnblogs.com/MasterMonkInTemple/p/4597728.html

隐藏网站服务器响应头中 PHP 版本信息

阅读目录阐述网站服务器响应头中查看php版本信息隐藏服务器响应头中php版本信息的方法阐述 在调试网站时发现在服务器的响应头中有一个 “X-Powered-By” 响应字段,此字段中包含了当前网站所用 php 的版本信息,还不就爆漏了网站所使用的php版本了么&…

源代码托管网站BitBucket

BitBucket 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。 最近在做一个私人的项目,想寻找个比较靠谱的私人版本控制工具。一开始是就想到了github,但是一想到github上的私人项目…

Nginx——使用 Nginx 提升网站访问速度【转载+整理】

原文地址 本文是写于 2008 年,文中提到 Nginx 不支持 Windows 操作系统,但是现在它已经支持了,此外还支持 FreeBSD,Solaris,MacOS X~ Nginx(“engine x”) 是一个高性能的 HTTP 和反向代理服务器…

UEditorPlus v2.1.0发布 演示网站重构,浮动工具和表格双击优化

阅读目录UEditor Plus 功能演示UEditor Plus 功能演示 UEditor是由百度开发的所见即所得的开源富文本编辑器,基于MIT开源协议,该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本…

css 网站页面内容占位加载动画效果的实现

阅读目录阐述index.htmlindex.jsindex.css阐述 内容占位动画效果,这个也是我们经常在一些网站上看到的效果,这种效果的设计,可以提升用户体验,降低用户等待焦虑的情绪。 下面我们一起来看看一下今天练习的最终效果: …

如何用 Python 爬取需要登录的网站

【原文地址:】http://python.jobbole.com/83588/ import requests from lxml import html# 创建 session 对象。这个对象会保存所有的登录会话请求。 session_requests requests.session()# 提取在登录时所使用的 csrf 标记 login_url "https://bitbucket.or…

反击黑客之对网站攻击者的IP追踪

ip追踪是一件比较难实现的,因为我只有一个ip,而且在没有任何技术支持下对该ip追踪,同时我在公司也没有服务器权限,仅有后台,一般的ip追踪技术分类,反应式ip追踪,主动式的追踪,分享的…

利用squid反向代理提高网站性能

利用squid反向代理提高网站性能 本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了…

一个很好的命令行分享网站

跟上一篇一样 发现有一个分享的工具 https://asciinema.org/a/24707 看视频处理 还能够 copy出里面的内容 直接看官网 感觉自己知道的太少了.. 还有那么好用的东西 一边教学 一边还能复制东西. mark一下. 以后多学习. 转载于:https://www.cnblogs.com/jinanxiaolaohu/p/9337904…

【阿里云】云服务器 ECS部署网站

我是广告!!! https://promotion.aliyun.com/ntms/yunparter/invite.html?userCodehgk32vx5 领券更优惠,老板看着来~ 1.服务器购买 服务器:(推荐) https://promotion.aliyun.com/ntms/act/campus2018.html?utm_contentse_1000442225 ps:可以放多个网站一个人买觉得贵的话,可以…

移动网站性能优化:网页加载技术概览

性能一直是网站成功的关键。越来越多的研究已经证明,不管是小型电商,还是像沃尔玛那样的连锁店,即使是页面加载时间方面的细微改善,都可以带来更多的业务,更多的广告收入,更多的用户粘性和更多的客户满意度…

小白建站——宝塔Linux配合阿里云服务器搭建属于自己的网站

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志——苏轼 写在前面 由于现在大部分服务器都是 Linux 系统,全球最快的10台超级计算机也是 Linux 系统,由于 Linux 本身有一些难度,上手的成本比较高,这就导…

Linux系统下利用wget命令把整站下载做镜像网站

Linux系统下利用wget命令把整站下载做镜像网站 2011-05-28 18:13:01 | 1次阅读 | 评论:0 条 | itokit 在linux下完整的用wget命令整站采集网站做镜像 的命令是及无视网站根目录下的robots.txt限制。并且可以模拟一个正常浏览者的信息下载该网站。 C/C Code复制内容…

Leader:马上中秋节了,你在网站的console面板中画一个嫦娥奔月,要有逼格

Hello 大家好,我是一碗周,不是你想的那个“一碗粥”,是一个不想被喝掉的前端👨🏻‍💻,如果我写的文章有幸可以得到你的青睐,万分有幸~ Leader:小周,还有十来天…