PHP-高并發和大流量的解決方案

一 ?高并發的概念

在互聯網時代,并發,高并發通常是指并發訪問。也就是在某個時間點,有多少個訪問同時到來。

?

二 ?高并發架構相關概念

1、QPS (每秒查詢率) : 每秒鐘請求或者查詢的數量,在互聯網領域,指每秒響應請求數(指HTTP請求)

2、PV(Page View):綜合瀏覽量,即頁面瀏覽量或者點擊量,一個訪客在24小時內訪問的頁面數量

--注:同一個人瀏覽你的網站的同一頁面,只記做一次pv

3、吞吐量(fetches/sec)?:單位時間內處理的請求數量 (通常由QPS和并發數決定)

4、響應時間:從請求發出到收到響應花費的時間

5、獨立訪客(UV):一定時間范圍內,相同訪客多次訪問網站,只計算為1個獨立訪客

6、帶寬:計算帶寬需關注兩個指標,峰值流量和頁面的平均大小

7、日網站帶寬: PV/統計時間(換算到秒) * 平均頁面大小(kb)* 8

?

三 需要注意點:

1、QPS不等于并發連接數(QPS是每秒HTTP請求數量,并發連接數是系統同時處理的請求數量)

2、峰值每秒請求數(QPS)= (總PV數*80%)/ (六小時秒數*20%)【代表80%的訪問量都集中在20%的時間內】

3、壓力測試: 測試能承受的最大并發數 以及測試最大承受的QPS值

4、常用的性能測試工具【ab,wrk,httpload,Web Bench,Siege,Apache JMeter】

?

四 優化

1、當QPS小于50時

優化方案:為一般小型網站,不用考慮優化

?

2、當QPS達到100時,遇到數據查詢瓶頸

優化方案: 數據庫緩存層,數據庫的負載均衡

?

3、當QPS達到800時, 遇到帶寬瓶頸

優化方案:CDN加速,負載均衡

?

4、當QPS達到1000時

優化方案: 做html靜態緩存

?

5、當QPS達到2000時

優化方案: 做業務分離,分布式存儲

?

五、高并發解決方案案例:

1、流量優化 ?

防盜鏈處理(去除惡意請求)

?

2、前端優化

(1) 減少HTTP請求[將css,js等合并]

(2) 添加異步請求(先不將所有數據都展示給用戶,用戶觸發某個事件,才會異步請求數據)

(3) 啟用瀏覽器緩存和文件壓縮

(4) CDN加速

(5) 建立獨立的圖片服務器(減少I/O)

?

3、服務端優化

(1) 頁面靜態化

(2) 并發處理

(3) 隊列處理

?

4、數據庫優化

(1) 數據庫緩存

(2) 分庫分表,分區

(3) 讀寫分離

(4) 負載均衡

?

5、web服務器優化

(1) nginx反向代理實現負載均衡

(2) lvs實現負載均衡

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282635.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282635.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282635.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

原型

2019獨角獸企業重金招聘Python工程師標準>>> 什么是原型: 對象與對象之間的關系 轉載于:https://my.oschina.net/u/2285087/blog/854377

JavaScript中數組slice和splice的對比小結

前言 今天重溫了一下Javascript,看到了數組的方法,其中有兩個比較相似的方法——splice和splice,看著很像,就是多了一個p,但是用法卻相當不一樣。 在使用中,可以通過選擇一個具有強語義表達性的 API 來減少…

存儲服務器的操作系統,存儲服務器是什么操作系統

存儲服務器是什么操作系統 內容精選換一換鏡像服務提供了私有鏡像的全生命周期管理能力,主要包括創建私有鏡像,復制、共享或導出私有鏡像等操作,您可以根據實際場景選擇合適的方法,并結合彈性云服務器、對象存儲等周邊服務完成業務…

優化--減少HTTP請求

一、 圖片地圖 (將幾張圖片合為一張,根據用戶點擊的位置發送不同請求,減少了圖片的請求數量) 案例所在位置:http://stevesouders.com/hpws/imagemap.php 二、css精靈(和圖片地圖功能相似,都是將幾張圖片合并在一起,根據位置發送不同請求) 這里不做具體使用介紹,百度有此方面內…

軟件負載均衡

一、軟件負載均衡概述 硬件負載均衡性能優越,功能全面,但是價格昂貴,一般適合初期或者土豪級公司長期使用。因此軟件負載均衡在互聯網領域大量使用。常用的軟件負載均衡軟件有Nginx,Lvs,HaProxy等。本文參考大量文檔&a…

JAVA多線程之先行發生原則

一、引子   如果java內存模型中所有的有序性都僅僅依靠volatile和synchronized來完成,那么有一些操作會變得很繁瑣,但我們在編寫java并發代碼時并未感覺到這一點,這是因為java語言中有個先行發生原則(happens-before&#xff09…

git工具 將源碼clone到本地指定目錄的三種方式

git工具 將源碼clone到本地指定目錄的三種方式 CreationTime--2018年7月27日15點34分 Author:Marydon 1.情景展示 運行git-bash.exe,輸入命令:git clone 下載源碼地址-->回車,結果發現項目被下載到了,git工具的安裝目錄下 如何…

[摘]全文檢索引擎Solr系列—–全文檢索基本原理

原文鏈接--http://www.importnew.com/12707.html 全文檢索引擎Solr系列—–全文檢索基本原理 2014/08/18 | 分類: 基礎技術, 教程 | 2 條評論 | 標簽: solr 分享到: 64 本文作者: ImportNew - 劉志軍 未經許可,禁止轉載…

優化-瀏覽器緩存和壓縮優化

一、減少HTTP請求 1.圖片地圖: 假設導航欄上有五幅圖片,點擊每張圖片都會進入一個鏈接,這樣五張導航的圖片在加載時會產生5個HTTP請求。然而,使用一個圖片地圖可以提高效率,這樣就只需要一個HTTP請求。 服務器端圖片…

匯新杯┃拼多多黃崢:普通的創業者,不普通的朋友圈_創成匯

本月26日晚,拼多多在美國納斯達克上市,開盤后便持續走高,收漲高達40.53%,這家從成立到上市不過短短2年10個月的企業,是近四年來最大中概股IPO。拼多多創始人黃崢身家一夜暴漲到138.5億美元。在拼多多之前,黃…

NCC CAP 6.2 版本正式發布

原文:https://www.cnblogs.com/savorboard/p/cap-6-2.html作者:楊曉東前言今天,我們很高興宣布 CAP 發布 6.2 版本正式版,在這個版本中我們主要做了一些功能優化,以及針對目前已經發現的幾個 BUG 進行了修復了。那么&a…

pdksh 包

安裝oracle gi,rac 時經常會碰到 pdksh 的檢測失敗,可以從這個網站下載需要的包 http://rpm.pbone.net/ rpm -q ksh-* rpm -e ksh-* rpm -ivh ./pdksh* 或者參考 Requirements for Installing Oracle 11gR2 RDBMS on RHEL6 or OL6 64-bit (x86-64) (文…

sysctl.conf工作原理

2019獨角獸企業重金招聘Python工程師標準>>> sysctl.conf工作原理 sysctl命令被用于在內核運行時動態地修改內核的運行參數,可用的內核參數在目錄/proc/sys中。它包含一些TCP/IP堆棧和虛擬內存系統的高級選項, 這可以讓有經驗的管理員提高引人…

CDN加速

一、CDN的概念 全稱是Content Delivery Network,即內容分發網絡。 其基本思路是: 盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。 通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智…

修復刪除/var/lib/dpkg目錄后,無法使用apt-get命令問題

2019獨角獸企業重金招聘Python工程師標準>>> Unfortunately Ive deleted dpkg directory while removing the lock. By mistake I typed rootsam:~$ rm -r /var/lib/dpkgNow when I am trying to install/uninstall packages it shows me following error. E: Could…

動態加載vs靜態加載

動態加載: 1:靈活,可以在需要的時候用LoadLibrary進行加載,在不需要的時候用FreeLibrary進行卸載,這樣可以不必占用內存。2:可以在沒有dll時候發現,而不致程序報錯。3:加載程序中有條…

Webpack前端打包工具

一、安裝 安裝Webpack之前需要安裝nodejs,然后用npm安裝: $ npm install webpack -g &nsbp;運行以上命令就將Webpack安裝到了全局環境中。 但是通常我們會將Webpack只安裝到項目的依賴中: $ cd /www/webpack_demo1 // 進入項目目錄,確保該目錄…

動態語言靜態化

一、什么是動態語言靜態化 將現有PHP等動態語言的邏輯代碼生成為靜態html文件,用戶訪問動態腳本重定向到靜態html的過程 注 : 對實時性要求不高的頁面才適合去做動態語言靜態化 二、為什么要靜態化 1. 動態腳本通常會做邏輯計算和數據查詢,訪問量越大,服務器壓力越大 2. 訪…

WPF-06 樣式(Style)

在我們前面介紹資源的時候&#xff0c;我們提到了樣式表&#xff0c;如果你之前是做Web開發的&#xff0c;你會發現Style有點類似于Web中的CSS。控件級別樣式我們可以在控件級別定義自己的樣式&#xff0c;控件級別的樣式是優先級最高的<Window x:Class"Example_06.Sel…

構建Squid代理服務器-傳統代理、透明代理、反向代理

Squid是Linux系統中最常用的一款開源代理服務軟件&#xff0c;主要提供緩存加速和應用層過濾控制的功能&#xff0c;可以很好的實現HTTP、FTP、DNS查詢以及SSL等應用的緩存代理。 正向代理&#xff1a;根據實現的方式不同&#xff0c;代理服務可分為傳統代理和透明代理。 傳統代…