高性能Web服务端 PHP vs Node.js vs Nginx-Lua 的对比分析

1. ngx_lua nodejs php 比较

我在研究一阵子ngx_lua之后发现lua语法和js真的很像,同时ngx_lua模型也是单线程的异步的事件驱动的,工作原理和nodejs相同,代码甚至比nodejs的异步回调更好写一些。

性能测试,100并发php:17400nodejs:31197ngx_lua:32628

单纯做http代理服务器加上一些简单的逻辑,似乎ngx_lua的方案更加合适。 引自: PHP vs Node.js vs Nginx-Lua

以下是从占用的资源上来分析:

出自:phpnode lua 由图中可以看出:

nodejs占用CPU比lua高一些,

nodejs与ngx_lua二者占用内存不变(在处理同一业务逻辑时),php占用内存不稳定(可能跟多线程有关,连接数越多,内存占用越多)

下面猿友对ngix_lua的一些看法:

xueyangkk 其实这样考虑是对的 ! ngx_lua是基于nginx的扩展 nginx已经有无数家验证过 他确实是个可靠的WEB应用。而且ngx_lua 已经有很多广泛的应用 可以说技术上来说已经很成熟了,你们的平台是一个OPANAPI的应用 。所以 在这个上 选ngx_lua 是对的 !当然这并不是说NODE不好 !语言没什么好坏 !只能从成本 技术成熟度来考虑 ! jayceefun 之前使用过章大神openresty, 确实很值得一试, 比node.js易用, 没有那么裸, 做的各种性能优化也都是c级别的, 刚出时也是号称并发超过node.js的. lua确实是很快, 据说是脚本语言里最快的了. 不过也有缺点就是lua的文件处理很弱, 各种库非常的少, 记得当初的想要个好点的orm都没有, 还得手写. 同意楼主说的lua某种程度上真的是跟js很像啊, 当初转型node.js语言上也基本没费多少劲. 推荐一个用lua完全模仿node.js写的一个东西, 叫luvit, 现在完全不成熟, 只有些简单的http server功能, 但是基础的性能测试结果是比node.js快2倍还是4倍来的, 很恐怖啊有木有.

结论:

并发请求数lua/nodejs相当,均比php快一倍

资源占用上lua最少,nodejs次之,二者对内存并不贪婪,php占用最多且不稳定。

2. nodejs python php 比较

国外某猿友做过一个关于php/nodejs/go/scala/python之间的性能比较:API Programming Language Bake-off

以下测试用例为使用mongodb添加删除数据时,各个语言每秒处理的最大请求数:

由上图可以看出,在并发线程达到一定程度时go和php写的测试脚本都挂了(go不是号称最快吗?)

另外两位中国猿友的评测,也证明了这一点,

1. 测了一下nodejs和php性能

2. 单服务器node.js和php性能测试

在他们的结论中node.js的并发处理能力均二倍于php.

结论:

在一般情况下python和node.js的处理能力相当,均2倍于php, 在并发数达到一定程序时,php可能会挂,可能源于多线程对内存资源的占用是不可测的。

引自 :http://bbs.phpchina.com/thread-278161-1-1.html

另附 测试报告:http://bluehua.org/demo/php.node.lua.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

降低大数据开发难度,轻量级计算实例

内容来源:2018 年 1 月 27 日,润乾软件创始人蒋步星在“TECH INSIGHT 暨 ArchData技术峰会成都站”进行《轻量级大数据引擎》演讲分享...

824
来自专栏友弟技术工作室

hadoop介绍

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。

842
来自专栏互联网高可用架构

互联网性能与容量评估的方法论和典型案例5 性能评估参考标准

2484
来自专栏IT大咖说

阿里巴巴:金融级别大数据平台的多租户隔离实践

内容来源:https://yq.aliyun.com/articles/466662

860
来自专栏IT技术精选文摘

PB级海量数据服务平台架构设计实践

基于PB级海量数据实现数据服务平台,需要从各个不同的角度去权衡,主要包括实践背景、技术选型、架构设计,我们基于这三个方面进行了架构实践,下面分别从这三个方面进行...

2506
来自专栏hadoop学习

hadoop集群管理系统搭建规划说明

Hadoop分布式集群环境搭建是每个入门级新手都非常头疼的事情,因为你可能花费了很久的时间在搭建运行环境,最终却不知道什么原因无法创建成功。但对新手来说,运行环...

480
来自专栏张善友的专栏

从APM角度上看:NoSQL和关系数据库并无不同

Michael Kopp拥有十年以上C++、Java/JEE的架构及开发经验,现Compuware技术策略师,专攻大规模产品部署的架构和性能。 以下为译文: 传...

1958
来自专栏携程技术中心

干货 | 携程实时用户行为系统实践

作者简介 陈清渠,毕业于武汉大学,多年软件及互联网行业开发经验。14年加入携程,先后负责了订单查询服务重构,实时用户行为服务搭建等项目的架构和研发工作,目前负责...

3276
来自专栏数据的力量

大索引技术,大数据的未来

不管你信也好,不信也好,大数据时代真的来临了,随着Hadoop技术的普及,其生态圈发展的越来越壮大,Hive、Hbase、Spark、Storm等的一系列新名词...

993
来自专栏云资讯小编的专栏

腾讯云 Postgres-XZ 的数据治理策略

2017第八届中国数据库技术大会于2017年5月11-13日召开,在5月11日的大会中,腾讯云数据库高级工程师,PostgreSQL数据库专家许中清做了腾讯云P...

9070

扫码关注云+社区