您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何快速解決ThinkPHP5.1出現MISS緩存未命中問題的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇如何快速解決ThinkPHP5.1出現MISS緩存未命中問題文章都會有所收獲,下面我們一起來看看吧。
ThinkPHP5.1使用CDN加速-MISS緩存未命中解決
在單獨給首頁配置CDN加速后,出現了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是緩存沒有被命中。這個問題不是配置錯了,而框架問題。
什么要使用CDN?
“cdn簡介 CDN的全稱是Content Delivery Network,即內容分發網絡。
為什么使用CDN?
CDN就近節點訪問,提高了網站加載速度,降低延時;能起到分流作用,減輕服務器負載,
使用動靜分離提高網站訪問速度。
配置實現
這個呢,我是部署在了生產環境,實際測試大并發高流量處理,當然了,也有很多的不足。
環境
服務器:騰訊云
系統:CentOS7
框架:ThinkPHP5.1
使用阿里云OSS+CDN并配置緩存
當然還要有經過備案的域名。
關于怎么使用阿里云OSS對象存儲系統,Laravel6.x上傳視頻到阿里云Oss對象存儲 這篇文章記錄過。
bucket創建完成后,可以在列表中看到 '阿里云 CDN 加速',點擊這個進行相關的CDN操作,配置完后需要在域名中進行解析。
問題
在單獨給首頁配置CDN加速后,出現了X-Cache: MISS TCP_MISS dirn:-2:-2,MISS也就是緩存沒有被命中。這個問題不是配置錯了,而框架問題。
解決方法如下:
第一步:public/index.php讀取/設置緩存限制器
<?php
namespace think;
// 設置緩存限制
session_cache_limiter('public');
require __DIR__ . '/../thinkphp/base.php';
Container::get('app')->run()->send();
第二步:開啟請求緩存
// 文件位置: config/app.php
'request_cache' => true,
ab壓測
如下壓測是經過了CDN+OSS之后的結果,可以看到qps可以達到573
$ ab -c100 -n1000 你的頁面URL
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
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個并發的壓測。
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)
通過這個兩個手段,已經可以看到還并發量提供,500的并發量,80%的用戶可以在1s左右打開。在沒有使用CDN+OSS前,我壓測的結果是 150的并發,CPU就沖到了90%。使用OSS+CDN的優勢就不言而喻了。
關于“如何快速解決ThinkPHP5.1出現MISS緩存未命中問題”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“如何快速解決ThinkPHP5.1出現MISS緩存未命中問題”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。