lnmp压力测试

简介:

最近在自己的台式机上搭了个lnmp,想用压力压一压,看看结果怎么样。


由于nginx只是个静态web服务器,并发能力超强,因此lnmp的性能瓶颈在于php的处理能力,即php-fpm。


硬件


  1. CPU AMD Phenom(tm) II X4 945

  2. 内存 4G x 4

  3. 硬盘 西数绿盘 7200rpm

  4. 网卡 realtek 8169 千兆自适应


软件版本


  1. nginx 1.4.0

  2. mysql 5.5.31

  3. php 5.4.14


重新编译的rpm包有


  1. nginx

  2. mysql

  3. php

  4. php-pecl-zendopcache

  5. libevent


lnmp的优化手段主要有


1
2
3
4
5
6
7
8
内核参数
文件句柄数
php缓存
nginx编译
nginx pagespeed
nginx缓存
nginx压缩
nginx CPU绑定


采用autobench ,模拟300至1000个并发,每次并发持续2分钟,之后并发递增100,每个连接5次请求。

命令


  1. autobench --single_host --host1 192.168.1.101 --port1 80 --uri1 /phpinfo.php --low_rate 300 --high_rate 1000 --rate_step 100 --num_call 5 --const_test_time 120 --timeout 2 --file result.tsv


结果


1
2
3
4
5
6
7
8
9
连接数     请求速度req/s           连接速度conn/s          总连接数
300          291.4                    287.9                    1500
400          374.4                    383.9                    2000
500          384                      394.3                    2500
600          389.9                    399.2                    3000
700          385.7                    397.2                    3500
800          390.8                    399.7                    4000
900          389.3                    399.1                    4500
1000         379.8                    391.9                    5000


结果分析,

并发在300开始,php处理能力逐渐加强,在800时达到最高峰390.8req/s,之后逐渐下降,可见,php整体处理请求能力在每秒380左右,理论上全天访问量约3千万(380x60x60x24=32832000).


根据二八原理,80%的请求完成在20%的时间段里,20%的时间为4.8小时,可承受的请求数为650万(380x60x60x4.8=6566400),换算成实际全天访问量就是820万(6566400/0.8=8208000)。


根据大牛张宴的博客,他能达到700req/s(理论上折合日访问量6千万),不过他是全程编译,而我这里全程是rpm,只对部分核心软件包进行了srpm重新编译,硬件也只是普通台式机。


总之,还有很大的优化空间,继续加油!


update 2015-10-12

由于phpinfo 页面比较大,一次获取会有几十k的数据,连接数一多,网卡会成为瓶颈。

建议同时使用别的页面进行测试,比如hello world,或者计算1-100求和。


hello world

1
2
3
4
5
6
7
8
9
10
< html >
   < head >
     < title >First program</ title >
   </ head >
   < body >
     <? php
     echo "hello, world\n";
     ?>
   </ body >
</ html >


0-100求和

1
2
3
4
5
6
7
<?php
     $i =1;  $sum =0;
     while  $i <=100) {
         $sum  $sum  + $i $i ++;
     }
     echo  $sum ;
?>












本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1192188,如需转载请自行联系原作者
目录
相关文章
|
关系型数据库 测试技术 应用服务中间件
|
Web App开发 关系型数据库 测试技术
|
应用服务中间件 PHP nginx
|
7月前
|
关系型数据库 MySQL 应用服务中间件
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
201 0
|
4月前
|
关系型数据库 应用服务中间件 nginx
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
|
7月前
|
应用服务中间件 PHP nginx
基于Anolis OS 3快速搭建LNMP环境制作KodBox
本教程介绍如何搭建LNMP环境,其中本实验的LNMP分别代表Anolis OS 3、Nginx、Mariadb和PHP。
135 0
|
7月前
|
关系型数据库 MySQL 应用服务中间件
快速搭建LNMP环境
Nginx是一款小巧而高效的Web服务器软件,可帮您在Linux系统下快速方便地搭建出LNMP Web服务环境。本教程介绍如何搭建LNMP环境,其中LNMP分别代表Linux、Nginx、MySQL和PHP。
287 2
|
3月前
|
API PHP 数据库
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
32 0
|
8月前
|
关系型数据库 MySQL 应用服务中间件
centos7 配置LNMP环境
centos7 配置LNMP环境
100 0