recherche
Maisondéveloppement back-endtutoriel php高性能PHP学习-基准测试技术

高性能PHP学习--基准测试技术

一、基准测试工具

基准测试工具提供在各种不同的模拟用户请求发生时有关Web服务器响应的统计信息。它们允许我们模拟任意数量的请求Web服务器上某个特定Web文档的用户,更重要的是,它允许我们模拟任意数量的用户同时访问Web服务器上的文档(并发请求)。

例如,每个工具提供的信息都与下列内容有关:
1、响应一个请求所花费的总时间
2、来自服务器的总响应大小
3、Web服务器每秒可以处理的请求总数

二、Apache Benchmark
在这里我向大家介绍一下Apache Benchmark(ab/ab2)工具。
这是一个最著名的基准测试工具之一,它是默认的Apache安装的一部分,能够通过模拟对特定URL的任意数量请求来对Web服务器进行负载测试。ab工具提供以下信息:
1、传输的总数据大小(以字节为单位)
2、Web服务器在模拟流量下每秒可以支持的请求总数
3、完成一个请求所花费的最长时间(以毫秒为单位)
4、完成一个请求所花费的最短时间(以毫秒为单位)
注:在ubuntu操作系统中运行的是ab命令,而笔者使用的是opensuse,此系统下使用的命令是ab2.所以笔者在操作的时候使用的是ab2命令,但是为了方便,写的时候一律写ab命令。


使用ab工具还可以运行很多不同的负载模拟,例如:
1、对Web文档的模拟请求
2、指定时间内的请求
3、打开Keep-Alive时的请求
最重要的是,Apache Benchmark是独立与Apache Web服务器的,从而可以在运行ab的同时使运行此工具的
计算机上的Web服务器处于非活动状态。


三、安装Apache Benchmark
在linux/Unix系统下,只要安装了apache之后就可以使用ab命令了。

在windows下,用户可以打开http://httpd.apache.org/。加载此页后,单击页面左侧的"Download from a mirror"(从镜像下载)链接,找到适合你的系统的相应下载程序包,即Window 32 Binary版本,然后下载。
当程序包下载完后,就可以运行安装向导在系统的任意位置上安装软件。我将Apache安装再默认位置C:\Program Files\Apache Software Foundation,但也可以安装在系统的任意位置。此处所选择的位置就是APACHE_HOME引用所指向的位置。
现在,打开\Apache2.2\bin。应该可以看到如下图所示文件和目录的集合。

四、使用ab命令
现在,让我们来使用ab这个工具吧。(基准测试以www.example.com为例)
所有ab命令的组成遵循此结构:
ab [options] [full path to web document]
例:
ab -n 1 http://www.example.com/
n表示再指定的URL上执行的请求数。在这个例子里,ab只请求Web文档一次,但是n的值可以是小于50000的任意数字。默认情况下,n设置为1。
该命令的下一部分是URL部分。对于刚刚执行的命令,URL为http://www.example.com/。如果选择测试此域中的某个文档,如test.php(并不存在),则URL为:http://www.example.com/test.php
执行上面命令的结果如下图所示:



URLhttp://www.example.com的ab响应上图的数据分为4个部分
1、服务器信息
包含Web服务器运行的软件、主机名和服务器监听的端口号。

2、脚本信息
包含有关运行模拟的Web文档的信息。Document Path包含请求的文档,而Document Length包含所有HTML、图像、CSS、JS以及响应中任何内容的字节数总和。

3、连接信息
包含信息的主体。它回答了诸如“收到请求响应需要多长时间?”、“返回了多少数据?”之类的信息,最重要的是它回答了“处理文档时Web服务器可以支持多少用户?”。
下表提供了此部分数据的完整列表和描述。





ab响应描述

4、连接指标细目分类
最后一个部分包含一个表,其中包含Connect、Processing、Waiting以及Total字段。这些字段告诉我们请求在每个过程状态中所需的时间。我们最感兴趣的是Total字段及其最大、最小值列。


                           

                                           

ab选项标记


下面结合上面的标记进行一些测试
1、并发测试
模拟一个并发测试,同时对Web服务器进行10个并发请求,直到进行到100个请求位置。使用c标记时的一项警告是让使用的值小于等于要进行的请求总数n。
例:ab -n 100 -c 10 http://www.example.com
ab命令响应如下图
                                           

                                  

www.example.com的并发模拟结果



通过模拟的并发请求,我们可以看到Request per second字段,并注意到Web服务器每秒可以支持 个请求(用户)。分析Connection Metrics的Total min和max列,我们注意到再10个并发请求的指定流量负载下,最快的响应为371毫秒,而最慢的请求花了575毫秒。
但是,我们知道流量不会只是持续1、2或3秒,高流量可能会持续几分钟、几小时,甚至是几天。下面让我们运行一个模拟来测试一下。

2、时间测试
t标记可以检查在任何时间内Web服务器执行的情况。
下面我们使用以下命令来模拟10个用户在20秒的时间内同时访问网站:
ab -c 10 -t 20 http://www.example.com/
注:该命令不包含n标记,但默认情况下包含该标记并且使用t选项时ab将其值设置为50000。某些情况下,使用t选项时,最大请求数可能会达到50000,此时模拟结束。

ab命令响应如下图




www.example.com/的基准测试结果(20秒内10个并发用户)
此模拟的结果指出,当10个并发用户在20秒的时间内请求Web文档时性能会下降。最快速的满足请求花费了464毫秒,而最慢速的请求花费了1890毫秒。


五、ab陷阱
使用ab时有几点警告。
1、再看看上面执行的命令,就会注意到在域名的结尾有一个反斜杠。如果你不请求该域中的特定文档,则这个反斜杠是必需的。
2、ab还可能会由于其传递给Web服务器的用户代理值而被某些Web服务器阻止,因此在这些情况下,可能收不到任何数据。如果要解决这个问题,请使用可用的选项标记之一-H,来提供你的请求中自定义浏览器标头信息。
Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Objectif de PHP: Construire des sites Web dynamiquesObjectif de PHP: Construire des sites Web dynamiquesApr 15, 2025 am 12:18 AM

PHP est utilisé pour créer des sites Web dynamiques, et ses fonctions principales incluent: 1. Générer du contenu dynamique et générer des pages Web en temps réel en se connectant à la base de données; 2. Traiter l'interaction utilisateur et les soumissions de formulaires, vérifier les entrées et répondre aux opérations; 3. Gérer les sessions et l'authentification des utilisateurs pour offrir une expérience personnalisée; 4. Optimiser les performances et suivre les meilleures pratiques pour améliorer l'efficacité et la sécurité du site Web.

PHP: Gestion des bases de données et logique côté serveurPHP: Gestion des bases de données et logique côté serveurApr 15, 2025 am 12:15 AM

PHP utilise les extensions MySQLI et PDO pour interagir dans les opérations de base de données et le traitement de la logique côté serveur, et traite la logique côté serveur via des fonctions telles que la gestion de session. 1) Utilisez MySQLI ou PDO pour vous connecter à la base de données et exécuter les requêtes SQL. 2) Gérer les demandes HTTP et l'état de l'utilisateur via la gestion de session et d'autres fonctions. 3) Utiliser les transactions pour assurer l'atomicité des opérations de base de données. 4) Empêcher l'injection de SQL, utiliser les connexions de gestion des exceptions et de clôture pour le débogage. 5) Optimiser les performances via l'indexation et le cache, écrivez du code très lisible et effectuez une gestion des erreurs.

Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD)Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD)Apr 15, 2025 am 12:15 AM

L'utilisation de déclarations de prétraitement et l'APD dans PHP peut effectivement empêcher les attaques d'injection SQL. 1) Utilisez PDO pour vous connecter à la base de données et définir le mode d'erreur. 2) Créez des instructions de prétraitement via la méthode de préparation et transmettez des données à l'aide des espaces réservés et exécutez des méthodes. 3) Traitez les résultats de la requête et assurez la sécurité et les performances du code.

PHP et Python: exemples de code et comparaisonPHP et Python: exemples de code et comparaisonApr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

PHP en action: Exemples et applications du monde réelPHP en action: Exemples et applications du monde réelApr 14, 2025 am 12:19 AM

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

PHP: Création de contenu Web interactif avec facilitéPHP: Création de contenu Web interactif avec facilitéApr 14, 2025 am 12:15 AM

PHP facilite la création de contenu Web interactif. 1) Générez dynamiquement du contenu en intégrant HTML et affichez-les en temps réel en fonction des données d'entrée ou de base de données utilisateur. 2) Traitez la soumission du formulaire et générez une sortie dynamique pour garantir que HTMLSpecialChars est utilisé pour empêcher les XS. 3) Utilisez MySQL pour créer un système d'enregistrement des utilisateurs, et utilisez des instructions Password_hash et du prétraitement pour améliorer la sécurité. La maîtrise de ces techniques améliorera l'efficacité du développement Web.

PHP et Python: comparaison de deux langages de programmation populairesPHP et Python: comparaison de deux langages de programmation populairesApr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

La pertinence durable de PHP: est-elle toujours vivante?La pertinence durable de PHP: est-elle toujours vivante?Apr 14, 2025 am 12:12 AM

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.