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,如需转载请自行联系原作者
目录
打赏
0
0
0
0
235
分享
相关文章
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
Linux云服务器如何搭建LNMP环境
LNMP环境是Linux系统中常用的Web服务架构,由Linux、Nginx、MySQL/MariaDB和PHP组成,适用于高效托管动态网站。本文以CentOS 7为例,详细介绍了LNMP环境的搭建步骤,包括Nginx、MariaDB和PHP的安装与配置,以及最终通过创建`index.php`文件验证环境是否成功部署。具体操作涵盖配置YUM仓库、安装服务、编辑配置文件、启动服务等关键步骤,确保用户能够顺利搭建并运行LNMP环境。
54 1
Linux云服务器如何搭建LNMP环境
快速搭建LNMP环境
Nginx是一款小巧而高效的Web服务器软件,可帮您在Linux系统下快速方便地搭建出LNMP Web服务环境。本教程介绍如何搭建LNMP环境,其中LNMP分别代表Linux、Nginx、MySQL和PHP。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等