>  기사  >  PHP 프레임워크  >  ThinkPHP5.1의 MISS 캐시 미스 문제를 빠르게 해결하세요

ThinkPHP5.1의 MISS 캐시 미스 문제를 빠르게 해결하세요

藏色散人
藏色散人앞으로
2023-02-08 10:56:271522검색

이 글은 ThinkPHP5.1에 대한 관련 지식을 제공합니다. 주로 CDN이 무엇인지 소개합니다. 왜 그것을 사용합니까? 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에서 가까운 노드에 액세스하면 웹 사이트 로딩 속도가 향상되고 대기 시간이 단축됩니다. 전환 역할.

동적 및 정적 분리를 사용하여 웹 사이트 액세스 속도를 향상시킵니다.

구성 구현

대규모 동시 및 높은 트래픽 처리를 실제로 테스트하기 위해 이것을 프로덕션 환경에 배포했습니다. , 단점이 많습니다

환경

서버: Tencent Cloud

시스템: CentOS7

프레임워크: ThinkPHP5.1

Alibaba Cloud OSS+CDN을 사용하고 캐시를 구성합니다

물론, 등록된 도메인 이름

Alibaba Cloud OSS 객체 스토리지 시스템 사용 방법에 대해 Laravel6.x는 이 기사에 설명된 대로 Alibaba Cloud Oss Object Storage에 비디오를 업로드합니다.

버킷이 생성되면 'Alibaba Cloud CDN Acceleration'을 볼 수 있습니다. 목록에서 관련 CDN 작업을 수행하려면 이를 클릭하세요.

Problem

홈페이지에만 CDN 가속을 구성한 후 X-Cache: MISS TCP_MISS dirn:- 2:-2가 나타나면 MISS는 캐시가 적중되지 않았다는 의미입니다. 이 문제는 구성 문제가 아니라 프레임워크 문제입니다.

해결 방법은 다음과 같습니다.

1단계: 캐시 읽기/설정 public/index.php

<?php
namespace think;

// 设置缓存限制
session_cache_limiter(&#39;public&#39;);

require __DIR__ . &#39;/../thinkphp/base.php&#39;;
Container::get(&#39;app&#39;)->run()->send();

2단계: 요청 열기. Cache

// 文件位置: config/app.php

&#39;request_cache&#39;          => true,

ab 스트레스 테스트

다음 스트레스 테스트는 CDN+OSS 이후의 결과입니다. 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)

이 두 가지 방법은 동시성을 제공하는 것을 이미 볼 수 있으며, 80%의 사용자가 사용하기 전에 약 1초 안에 열 수 있습니다. CDN+OSS, 내 스트레스 테스트 결과 150 동시성이 있었고, OSS+CDN을 사용하는 것의 장점은 자명합니다.

추천 학습: "

thinkPHP 비디오 튜토리얼"

위 내용은 ThinkPHP5.1의 MISS 캐시 미스 문제를 빠르게 해결하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 ziruchu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제