快速解決ThinkPHP5.1出現(xiàn)MISS緩存未命中問題

本篇文章給大家?guī)砹岁P(guān)于thinkphp5.1的相關(guān)知識,其中主要介紹了cdn是什么?為什么使用它?怎么解決thinkphp5.1 miss緩存未命中問題?感興趣的朋友下面一起來看一下吧,希望對大家有幫助。

快速解決ThinkPHP5.1出現(xiàn)MISS緩存未命中問題

thinkphp5.1使用CDN加速-MISS緩存未命中解決

在單獨(dú)給首頁配置CDN加速后,出現(xiàn)了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是緩存沒有被命中。這個問題不是配置錯了,而框架問題。

什么要使用CDN?

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

“cdn簡介 CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。

為什么使用CDN?

CDN就近節(jié)點(diǎn)訪問,提高了網(wǎng)站加載速度,降低延時;能起到分流作用,減輕服務(wù)器負(fù)載,

使用動靜分離提高網(wǎng)站訪問速度。

配置實現(xiàn)

這個呢,我是部署在了生產(chǎn)環(huán)境,實際測試大并發(fā)高流量處理,當(dāng)然了,也有很多的不足。

環(huán)境

服務(wù)器:騰訊云

系統(tǒng):CentOS7

框架:ThinkPHP5.1

使用阿里云OSS+CDN并配置緩存

當(dāng)然還要有經(jīng)過備案的域名。

關(guān)于怎么使用阿里云OSS對象存儲系統(tǒng),Laravel6.x上傳視頻到阿里云Oss對象存儲 這篇文章記錄過。

bucket創(chuàng)建完成后,可以在列表中看到 ‘阿里云 CDN 加速’,點(diǎn)擊這個進(jìn)行相關(guān)的CDN操作,配置完后需要在域名中進(jìn)行解析。

問題

在單獨(dú)給首頁配置CDN加速后,出現(xiàn)了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是緩存沒有被命中。這個問題不是配置錯了,而框架問題。

解決方法如下:

第一步:public/index.php讀取/設(shè)置緩存限制器

<?php namespace think;  // 設(shè)置緩存限制 session_cache_limiter(&#39;public&#39;);  require __DIR__ . &#39;/../thinkphp/base.php&#39;; Container::get(&#39;app&#39;)->run()-&gt;send();

第二步:開啟請求緩存

//?文件位置:?config/app.php  'request_cache'??????????=&gt;?true,

ab壓測

如下壓測是經(jīng)過了CDN+OSS之后的結(jié)果,可以看到qps可以達(dá)到573

$?ab?-c100?-n1000?你的頁面URL  This?is?ApacheBench,?Version?2.3? Copyright?1996?Adam?Twiss,?Zeus?Technology?Ltd,?http://www.zeustech.net/ Licensed?to?The?Apache?Software?Foundation,?http://www.apache.org/  Benchmarking?miaosha.nikexu.com?(be?patient) Completed?100?requests Completed?200?requests Completed?300?requests Completed?400?requests Completed?500?requests Completed?600?requests Completed?700?requests Completed?800?requests Completed?900?requests Completed?1000?requests Finished?1000?requests ?  Server?Software:????????Tengine Server?Hostname:????????miaosha.nikexu.com Server?Port:????????????80  Document?Path:??????????/ Document?Length:????????774?bytes  Concurrency?Level:??????100 Time?taken?for?tests:???1.745?seconds Complete?requests:??????1000 Failed?requests:????????0 Write?errors:???????????0 Total?transferred:??????1403829?bytes HTML?transferred:???????774000?bytes Requests?per?second:????573.16?[#/sec]?(mean) Time?per?request:???????174.472?[ms]?(mean) Time?per?request:???????1.745?[ms]?(mean,?across?all?concurrent?requests) Transfer?rate:??????????785.76?[Kbytes/sec]?received  Connection?Times?(ms) ?????????????min??mean[+/-sd]?median???max Connect:???????15???17???1.5?????16??????25 Processing:????18???91?113.4?????71????1195 Waiting:???????18???90?113.4?????71????1195 Total:?????????36??107?113.4?????87????1212  Percentage?of?the?requests?served?within?a?certain?time?(ms) ?50%?????87 ?66%?????99 ?75%????103 ?80%????105 ?90%????120 ?95%????195 ?98%????437 ?99%????834 100%???1212?(longest?request)

在來看看500個并發(fā)的壓測。

ab?-c500?-n10000?你的頁面URL  Requests?per?second:????965.61?[#/sec]?(mean) Time?per?request:???????517.806?[ms]?(mean) Time?per?request:???????1.036?[ms]?(mean,?across?all?concurrent?requests)  Percentage?of?the?requests?served?within?a?certain?time?(ms) ?50%????257 ?66%????319 ?75%????541 ?80%???1043 ?90%???1102 ?95%???1281 ?98%???1560 ?99%???1821 100%???3771?(longest?request)

通過這個兩個手段,已經(jīng)可以看到還并發(fā)量提供,500的并發(fā)量,80%的用戶可以在1s左右打開。在沒有使用CDN+OSS前,我壓測的結(jié)果是 150的并發(fā),CPU就沖到了90%。使用OSS+CDN的優(yōu)勢就不言而喻了。

推薦學(xué)習(xí):《thinkPHP視頻教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享