Maison  >  Article  >  cadre php  >  Résolvez rapidement le problème de manque de cache MISS dans ThinkPHP5.1

Résolvez rapidement le problème de manque de cache MISS dans ThinkPHP5.1

藏色散人
藏色散人avant
2023-02-08 10:56:271522parcourir

Cet article vous apporte des connaissances pertinentes sur ThinkPHP5.1. Il présente principalement qu'est-ce que CDN ? Pourquoi l'utiliser ? Comment résoudre le problème de manque de cache ThinkPHP5.1 MISS ? Les amis intéressés peuvent jeter un œil ci-dessous. J'espère que cela sera utile à tout le monde.

Résolvez rapidement le problème de manque de cache MISS dans ThinkPHP5.1

ThinkPHP5.1 utilise l'accélération CDN-MISS cache miss solution

Après avoir configuré l'accélération CDN pour la page d'accueil uniquement, X-Cache : MISS TCP_MISS dirn:-2:-2 est apparu, MISS est le cache Non touché . Ce problème n'est pas une mauvaise configuration, mais un problème de framework.

Pourquoi utiliser le CDN ?

"Introduction au CDN Le nom complet du CDN est Content Delivery Network, qui est un réseau de distribution de contenu.

Pourquoi utiliser le CDN ?

L'accès CDN aux nœuds à proximité améliore la vitesse de chargement du site Web et réduit la latence ; il peut jouer un rôle rôle de détournement. Réduisez la charge du serveur,

utilisez la séparation dynamique et statique pour améliorer la vitesse d'accès au site Web

Implémentation de la configuration

J'ai déployé cela dans un environnement de production pour tester réellement le traitement simultané à grande échelle et à fort trafic. , il y a de nombreuses lacunes

Environnement

Serveur : Tencent Cloud

Système : CentOS7

Framework : ThinkPHP5.1

Utilisez Alibaba Cloud OSS+CDN et configurez le cache

Bien sûr, vous devez également avoir un nom de domaine enregistré

Sur l'utilisation du système de stockage d'objets Alibaba. Cloud OSS, Laravel6.x télécharge des vidéos sur Alibaba Cloud Oss Object Storage comme documenté dans cet article

Une fois le compartiment créé, vous pouvez voir «Alibaba Cloud CDN Acceleration». dans la liste, cliquez dessus pour effectuer les opérations CDN associées, cela doit être résolu dans le nom de domaine après la configuration

Problème

Après avoir configuré l'accélération CDN pour la page d'accueil uniquement, X-Cache : MISS TCP_MISS dirn : - 2:-2 apparaît, MISS signifie que le cache n'est pas touché . Ce problème n'est pas un problème de configuration, mais un problème de framework

La solution est la suivante :

Étape 1 : Lire/définir le cache. limiteur dans 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();

Étape 2 : Ouvrez la demande. Cache

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

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

ab stress test

Le test de stress suivant est le résultat après CDN+OSS. Vous pouvez voir que les qps peuvent. atteindre 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)

Jetons un coup d'œil au test de stress simultané de 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)

Réussi. Ces deux méthodes peuvent déjà être considérées comme fournissant une simultanéité de 500, 80 % des utilisateurs peuvent l'ouvrir en 1 seconde environ. en utilisant CDN+OSS, le résultat de mon test de stress était de 150 concurrence et le processeur était surchargé à 90 %. Les avantages de l'utilisation d'OSS+CDN sont évidents

Apprentissage recommandé : "thinkPHP Video Tutorial"

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer