LUA与PHP在WEB应用的性能对比

  这几天用在WEB开发的LUA框架已经完成,框架中已包括数据库操作和模板操作的功能,能够很简单方便的应用在WEB开发上。在此时我对这个LUA框架和PHP开发的WEB应用分别进行充分的压力测试 ;)

  服务器配置:WEB服务器一台,压力测试服务器一台,均为双核+4G内存,CentOS 64位操作系统

  网络环境:局域网

  软件环境:yo2lua (50线程),Nginx+PHP-FPM (50进程)
       应用程序均为连接MySQL数据库查询1行数据并输出(表中就只有一行数据)

  压力测试软件:httperf+autobench

  操作命令行:autobench –host1=192.168.200.251 –port1=8001 –host2=v2.54xing.com –port2=80 –uri1=/ –uri2=/a.php –quiet –low_rate=500 –high_rate=5000 –rate_step=100 –num_call=1 –num_conn=10000 –timeout=10 –file /tmp/result.tsv
  从500并发起步,直到5000个并发,每次测试以10000个连接为基准取得平均值

result

  从测试结果中分析得出,PHP在并发数达到800的时候,性能出现严重的下降并且不稳定。而LUA则一直达到3200个并发时出现一次突发的性能下降,上升到3800个并发后性能下降一半并且不稳定,但依然能维持在2000个并发以上。

  这份简单的测试告诉我,LUA在WEB应用上,性能可以是PHP的4倍以上,并且LUA在3000个并发时,占用的服务器资源非常少,远比PHP要低得多。

  这个LUA的WEB开发框架定位就是简单、高性能,也许一些复杂的功能无法实现,我认为这部分功能可以转到PHP类的语言进行开发就可以,不必要把这个开发框架变得复杂庞大起来,不然就背离原来简单、高效的宗旨了 :P

  LUA跟C的无缝对接,彻底征服俺了 _-!! ~ 刚用一台四核8G内存的WEB服务器跑个压力测试,稳定达到4500个并发/秒。