Maison développement back-end tutoriel php 并发性能测试 apache nginx

并发性能测试 apache nginx

Aug 08, 2016 am 09:32 AM
apache nbsp nginx worker

并发性能测试
1        测试目的   
根据Apache、Nginx并发性能测试结果分析其并发模型各自优缺点。
性能评价项包括:RPS(每秒钟处理请求数)、CPU占用率、内存占用率、最大并发数。
根据Apache、Nginx并发模型优缺点,选择合适的并发模型框架。
2        测试环境
1、硬件环境
服务器:Interl server Borad
8核CPU,2G内存,160G硬盘,
客户端:与服务器端环境相同
2、操作系统
        操作系统:Red Hat EnterPrise 内核Linux 2.6.18
客户端:Red Hat EnterPrise 内核Linux 2.6.9
3、网络拓扑
服务器与客户端通过百兆网线连通一台交换机
服务器IP地址:192.168.192.201
客户端IP地址:192.168.192.200
3        测试方法                           
3.1        测试工具
        Apache 2.2.10 自带工具bench       
        webbench 1.5
3.2        测试步骤                               
1、设备检查安装
检查系统所有设备是否完好可用,并将设备连接到主机上。
2、网络连接检查
服务器和客户端用百兆网线连接在同一交换机
3、操作系统准备
启动Red Hat Enterprise
安装鼠标驱动,配置网络
4、下载、安装、配置
参考附录
5、apache测试
运行apache
cd /usr/local/apache/bin
./apachectl -k start
测试apache服务成功启动
在windows下访问:http://192.168.192.201/index.html
出现“it works!”测试页面
运行apche bench测试程序
cd /usr/local/apache/bin
./ab -c Clients -n Requests http://192.168.192.201/index.html
运行webbench测试程序
cd /usr/local/bin
webbench -c Clients -t time http://192.168.192.200/index.html
(Clients代表用户数,Requests代表并发数)
6、Nginx测试
运行nginx
./nginx
测试nginx服务成功启动
在windows下访问:http://192.168.192.201/index.html
出现“Welcome to nginx!” 页面
为了测试结果可对比性,将apache测试页面index.html拷贝覆盖nignx测试页面   
运行apche bench测试程序
cd /usr/local/apache/bin
./ab -c Clients -n Requests http://192.168.192.201/index.html
运行webbech测试程序
cd /usr/local/bin
webbench -c Clients -t time http://192.168.192.200/index.html

7、记录测试结果
记录bench测试结果:Time taken for tests(测试时间,单位:秒),Requests per second(每秒处理请求数)
记录webbench测试结果:Speed(每分钟处理请求数,为了与Apache bench一致,记录时*30转换成每秒钟处理请求数),运行时间根据操作命令-t指定,默认30秒
查看CPU占用情况命令:top
内存占用情况命令:free
4    测试方案
Nginx单线程测试
Nginx多线程测试
Apache woker模式测试
Apache prefork模式测试
5        数据汇总   
测试配置:Apache配置参考7.4,Nginx配置参考7.5
原始数据参见原始数据xls
数据汇总如下:
    server    client    RPS
    Idle    Free(used)    Idle    Free(used)   
Nginx 单进程    79    102526K    82    185196K    20757
Nginx 多进程    81    395444K    85    177405K    20861
Apahce prefork    38    154380K    75    178215K    30181
Apache worker    41    81506K    81    183166K    24669

6        测试结论

7    附录
7.1    Webbench安装
步骤    操作
下载安装包    wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
解压    tar zxvf webbench-1.5.tar.gz
编译    cd webbench-1.5
make
安装    make install
7.2    Apache安装
步骤    操作    说明
下载安装包    在http://www.apache.org下载软件包httpd-2.2.10.tar.gz    最新stable版
解压    tar xvzf httpd-2.2.10.tar.gz   
编译选项    ./configure --prefix=/usr/local/apache    安装路径
    --enable-module=shared    进程间共享内存
    --enable-module=rewrite   
    --enable-threads    线程支(Worker模式有效)
    --enable-shared=max   
    --with-mpm=worker     Worker模式选择
    --with-mpm=prefork    Prefork模式选择
    --with-mpm=event     I/O复用支持
            make     编译
安装    make install   
7.3    Nginx安装
步骤    操作    说明
下载安装包    在http://sysoev.ru/nginx/download.html下载软件包nginx-0.7.24.tar.gz    最新stable版
解压    tar xvzf ginx-0.7.24.tar.gz   
编译    ./configure --prefix=/usr/local/                安装路径
    make    编译
安装    make install   
7.4    Apache配置
Apache配置命令:
cd /usr/local/apache/conf
vi http.conf

prefork模式下参数配置:
配置    Apache
prefork模式    --with-mpm=prefork
系统启动创建进程数    StartServers 128 //为跟Nginx可比
活动子进程数    ServerLimit 50000
子进程生命周期内处理连接数    MaxRequestsPerChild 0 // 0为不限制
最大子进程数    MaxClients 50000
监听端口    Listen 80
timeout    Timeout 300
keepAlive    KeepAlive On
Sendfile    EnableSendfile on

Worker模式配置:
配置项    实现
Worker模式    --with-mpm=worker
系统启动创建进程数    StartServers 32
活动子进程数    ServerLimit 7812
最大线程数    MaxClients 500000
子进程线程数    ThreadsPerChild 64 //等于Apache允许设置的最大值
监听端口    Listen 80
timeout    Timeout 300
keepAlive    KeepAlive On
Sendfile    EnableSendfile on


7.5    Nginx配置
Nginx配置命令 :
cd /usr/local/nginx/conf
vi nginx.conf
测试Nginx配置命令:
./nginx –t


单工作进程主要配置:
配置    Nginx
进程    worker_processes 1;
进程处理连接数    worker_connections 102400;
监听端口    server {
        listen       80;
}
Sendfile    sendfile   on;
I/O复用方法    use epoll;

多工作进程配置:
配置    Nginx
进程    worker_processes 16;
进程处理连接数    worker_connections 102400;
监听端口    server {
        listen       80;
}
Sendfile    sendfile   on;
I/O复用方法    use epoll;

以上就介绍了并发性能测试 apache nginx,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration de ce site Web
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

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment effectuer des tests de concurrence et le débogage dans la programmation simultanée Java ? Comment effectuer des tests de concurrence et le débogage dans la programmation simultanée Java ? May 09, 2024 am 09:33 AM

Tests de concurrence et débogage Les tests de concurrence et le débogage dans la programmation simultanée Java sont cruciaux et les techniques suivantes sont disponibles : Tests de concurrence : tests unitaires : isolez et testez une seule tâche simultanée. Tests d'intégration : tester l'interaction entre plusieurs tâches simultanées. Tests de charge : évaluez les performances et l'évolutivité d'une application sous une charge importante. Débogage simultané : points d'arrêt : suspendez l'exécution du thread et inspectez les variables ou exécutez le code. Journalisation : enregistrez les événements et l'état du fil. Trace de pile : identifiez la source de l’exception. Outils de visualisation : surveillez l'activité des threads et l'utilisation des ressources.

Comment ajouter un serveur dans Eclipse Comment ajouter un serveur dans Eclipse May 05, 2024 pm 07:27 PM

Pour ajouter un serveur à Eclipse, procédez comme suit : Créer un environnement d'exécution du serveur Configurer le serveur Créer une instance de serveur Sélectionner l'environnement d'exécution du serveur Configurer l'instance de serveur Démarrer le projet de déploiement du serveur

Application d'algorithmes dans la construction de 58 plateformes de portraits Application d'algorithmes dans la construction de 58 plateformes de portraits May 09, 2024 am 09:01 AM

1. Contexte de la construction de la plateforme 58 Portraits Tout d'abord, je voudrais partager avec vous le contexte de la construction de la plateforme 58 Portraits. 1. La pensée traditionnelle de la plate-forme de profilage traditionnelle ne suffit plus. La création d'une plate-forme de profilage des utilisateurs s'appuie sur des capacités de modélisation d'entrepôt de données pour intégrer les données de plusieurs secteurs d'activité afin de créer des portraits d'utilisateurs précis. Elle nécessite également l'exploration de données pour comprendre le comportement et les intérêts des utilisateurs. et besoins, et fournir des capacités côté algorithmes ; enfin, il doit également disposer de capacités de plate-forme de données pour stocker, interroger et partager efficacement les données de profil utilisateur et fournir des services de profil. La principale différence entre une plate-forme de profilage d'entreprise auto-construite et une plate-forme de profilage de middle-office est que la plate-forme de profilage auto-construite dessert un seul secteur d'activité et peut être personnalisée à la demande. La plate-forme de mid-office dessert plusieurs secteurs d'activité et est complexe ; modélisation et offre des fonctionnalités plus générales. 2.58 Portraits d'utilisateurs de l'arrière-plan de la construction du portrait sur la plate-forme médiane 58

Comment déployer et maintenir un site Web en utilisant PHP Comment déployer et maintenir un site Web en utilisant PHP May 03, 2024 am 08:54 AM

Pour déployer et maintenir avec succès un site Web PHP, vous devez effectuer les étapes suivantes : Sélectionnez un serveur Web (tel qu'Apache ou Nginx) Installez PHP Créez une base de données et connectez PHP Téléchargez le code sur le serveur Configurez le nom de domaine et la maintenance du site Web de surveillance DNS les étapes comprennent la mise à jour de PHP et des serveurs Web, la sauvegarde du site Web, la surveillance des journaux d'erreurs et la mise à jour du contenu.

Comment implémenter les meilleures pratiques de sécurité PHP Comment implémenter les meilleures pratiques de sécurité PHP May 05, 2024 am 10:51 AM

Comment mettre en œuvre les meilleures pratiques de sécurité PHP PHP est l'un des langages de programmation Web backend les plus populaires utilisés pour créer des sites Web dynamiques et interactifs. Cependant, le code PHP peut être vulnérable à diverses failles de sécurité. La mise en œuvre des meilleures pratiques de sécurité est essentielle pour protéger vos applications Web contre ces menaces. Validation des entrées La validation des entrées est une première étape essentielle pour valider les entrées utilisateur et empêcher les entrées malveillantes telles que l'injection SQL. PHP fournit une variété de fonctions de validation d'entrée, telles que filter_var() et preg_match(). Exemple : $username=filter_var($_POST['username'],FILTER_SANIT

Comment tirer parti de Kubernetes Operator pour simplifier le déploiement cloud PHP ? Comment tirer parti de Kubernetes Operator pour simplifier le déploiement cloud PHP ? May 06, 2024 pm 04:51 PM

KubernetesOperator simplifie le déploiement du cloud PHP en suivant ces étapes : Installez PHPOperator pour interagir avec le cluster Kubernetes. Déployez l'application PHP, déclarez l'image et le port. Gérez l'application à l'aide de commandes telles que l'obtention, la description et l'affichage des journaux.

Quels sont les protocoles et bibliothèques couramment utilisés dans la programmation réseau Java ? Quels sont les protocoles et bibliothèques couramment utilisés dans la programmation réseau Java ? May 09, 2024 pm 06:21 PM

Protocoles et bibliothèques couramment utilisés pour la programmation réseau Java : Protocoles : TCP, UDP, HTTP, HTTPS, FTP Bibliothèques : java.net, java.nio, ApacheHttpClient, Netty, OkHttp

Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système. Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système. May 03, 2024 pm 04:31 PM

Environnement local : système redhat6.7. nginx1.12.1, php7.1.0, le code utilise le problème du framework yii2 : le site web local doit utiliser le service elasticsearch. Lorsque PHP utilise elasticsearch construit sur un serveur local, la charge locale est normale. Lorsque j'utilise le service elasticsearch d'AWS, la charge sur le serveur local est souvent trop élevée. Vérifiez les journaux nginx et php et ne trouvez aucune exception. Le nombre de connexions simultanées dans le système n’est pas non plus élevé. À ce moment-là, j'ai pensé à un outil de diagnostic strace que notre patron m'a présenté. Processus de débogage : recherchez un sous-processus php idstrace-

See all articles