单服务器node.js和php性能测试
发布于 13 年前 作者 DoubleSpout 11527 次浏览 最后一次编辑是 8 年前

<br/><div><strong>选手介绍:</strong></div> <br/> <br/><div><span style=“color: #3366ff;”>node.js</span>,服务端javascript语言,以出色的事件驱动和I/O异步广受关注,它更像一辆性能出色的<span style=“color: #3366ff;”>Mitsubishi Evlution X</span>;</div> <br/><div><span style=“color: #ff9900;”>php</span>,耳熟能详的服务端语言,在互联网领域中市场占有率相当高,它更像一辆性能出色,品牌知名度高的<span style=“color: #ff9900;”>BMW 330i</span>。</div> <br/><!–more–> <br/><div><strong>驾驶员以及测试员介绍:</strong></div> <br/><div> <br/><div style=“line-height: 22px;”>网络环境:内网</div> <br/><div style=“line-height: 22px;”>驾驶员(压力测试服务器):</div> <br/><div style=“line-height: 22px;”>服务器系统:Linux 2.6.18</div> <br/><div style=“line-height: 22px;”>服务器配置:Intel® Xeon™ CPU 3.40GHz 4 CPUS</div> <br/><div style=“line-height: 22px;”>内存:6GB</div> <br/><div style=“line-height: 22px;”>测试员(发包服务器):</div> <br/><div style=“line-height: 22px;”>发包工具:apache 2.2.19自带的ab测试工具</div> <br/><div style=“line-height: 22px;”>服务器系统:Linux 2.6.18</div> <br/><div style=“line-height: 22px;”>服务器配置:Pentium® Dual-Core CPU E5800 @ 3.20GHz 2CPUS</div> <br/><div style=“line-height: 22px;”>内存:1GB</div> <br/>  <br/><div style=“line-height: 22px;”><strong>车辆介绍:</strong></div> <br/></div> <br/><div><span style=“color: #3366ff;”>Mitsubishi Evlution X(node.js):以下简称EVO(node)</span></div> <br/><div>版本:V0.4.9;</div> <br/><div>官方提供性能:6985req/sec(http请求);</div> <br/><div>改装情况:</div> <br/><div>1、涡轮增压套件:multi-node(在多核服务器上多开node进程提高性能);</div> <br/><div>2、运动避震和地盘套件:generic-pool(链接池,用以提高对mysql、redis等i/o操作的性能);</div> <br/><div><span style=“color: #ff9900;”>BMW 330i(php):以下简称330(php)</span></div> <br/><div>版本:<span style=“line-height: 24px; font-family: arial, 宋体, sans-serif;”>5.2.17;</span></div> <br/><div><span style=“line-height: 24px; font-family: arial, 宋体, sans-serif;”>官方提供性能:8220 req/sec(http请求);</span></div> <br/><div><span style=“line-height: 24px; font-family: arial, 宋体, sans-serif;”>改装情况:</span></div> <br/><div><span style=“font-family: arial, 宋体, sans-serif;”><span style=“line-height: 24px;”>宝马御用改装ACSCHNITZER提供:Nginx+FastCgi;</span></span></div> <br/><div><span style=“color: #3366ff;”> <br/></span></div> <br/><div><span style=“color: #3366ff;”><span style=“color: #ff0000;”><strong>注意:可能我php配置不是最优化,应该还可以再快一些,下面的一些测试配置都是根据网上的文章进行配置的,如果大师级高手来配的话,估计PHP性能还能提升50%左右,所以这个测试数据仅供参考。</strong></span></span></div> <br/><div><span style=“color: #3366ff;”><span style=“color: #ff0000;”><strong>配置是根据张宴的博客再根据实际情况修改来的,原文地址:</strong></span></span><a href=“http://blog.s135.com/nginx_php_v6/” rel=“nofollow”>http://blog.s135.com/nginx_php_v6/</a></div> <br/><div><span style=“color: #3366ff;”> <br/></span></div> <br/><div><span style=“color: #3366ff;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53; color: #000000;”><strong>序:</strong></span></span></div> <br/><div><span style=“color: #3366ff;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53; color: #000000;”><span style=“line-height: 22px;”>对于原厂</span></span></span><span style=“color: #3366ff;”>EVO(node)</span><span style=“color: #3366ff;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53; color: #000000;”><span style=“line-height: 22px;”>和经过改装的</span></span></span><span style=“color: #3366ff;”>EVO(node)</span>之间到底性能会差多少?我们让他们在场地上小试一下身手。</div> <br/><div>测试内容:</div> <br/><div>分别对redis的一个key值进行get操作,并返回这个值。压力分别在3000、5000、7000,压测30秒。</div> <br/><table width=“95%” border=“1” cellspacing=“0” cellpadding=“0”> <br/><tbody> <br/><tr> <br/><td>com</td> <br/><td>3000/30</td> <br/><td> 3000/30</td> <br/><td>3000/30</td> <br/><td>5000/30</td> <br/><td>5000/30</td> <br/><td> 5000/30</td> <br/><td>7000/30</td> <br/><td> 7000/30</td> <br/><td>7000/30</td> <br/></tr> <br/><tr> <br/><td>type</td> <br/><td> node0</td> <br/><td> node1</td> <br/><td>node2</td> <br/><td> node0</td> <br/><td> node1</td> <br/><td>node2</td> <br/><td>node0</td> <br/><td>node1</td> <br/><td>node2</td> <br/></tr> <br/><tr> <br/><td><strong><span style=“color: #ff0000;”>rps</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 4025</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 5479</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 5262</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 3913</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 5283</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 5353</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 3823</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 5258</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 5269</span></strong></td> <br/></tr> <br/><tr> <br/><td> tpq</td> <br/><td> 0.24</td> <br/><td> 0.18</td> <br/><td> 0.19</td> <br/><td> 0.26</td> <br/><td> 0.19</td> <br/><td> 0.18</td> <br/><td> 0.26</td> <br/><td> 0.21</td> <br/><td> 0.19</td> <br/></tr> <br/><tr> <br/><td> 80%req</td> <br/><td> 63</td> <br/><td> 131</td> <br/><td> 671</td> <br/><td> 448</td> <br/><td> 417</td> <br/><td> 1210</td> <br/><td> 1961</td> <br/><td> 856</td> <br/><td> 1650</td> <br/></tr> <br/><tr> <br/><td> fail</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 227</td> <br/><td> 0</td> <br/><td> 0</td> <br/></tr> <br/></tbody> <br/></table> <br/><div>说明:(下同)</div> <br/><div>node0表示原装,node1表示只进行了multi-node改装,node2表示进行了multi-node和generic-pool改装。</div> <br/><div> <br/><div style=“line-height: 22px;”>3000/30:代表命令./ab -c 3000 -t 30 http://10.1.10.150:8888/</div> <br/><div style=“line-height: 22px;”>rps:代表每秒处理请求数,并发的主要指标</div> <br/><div style=“line-height: 22px;”>tpq:每个请求处理的时间,单位毫秒。</div> <br/><div style=“line-height: 22px;”>fail:代表平均处理失败请求个数</div> <br/><div style=“line-height: 22px;”>80%req:代表80%的请求在多少毫秒内返回。</div> <br/><div style=“line-height: 22px;”>接下来我们看下对mysql的操作,3者的区别,对mysql的testtable进行select * 操作,testtable有2个字段,1条数据。返回name值为test。</div> <br/><table width=“95%” border=“1” cellspacing=“0” cellpadding=“0”> <br/><tbody> <br/><tr> <br/><td>com</td> <br/><td>3000/30</td> <br/><td> 3000/30</td> <br/><td>3000/30</td> <br/><td>5000/30</td> <br/><td>5000/30</td> <br/><td> 5000/30</td> <br/><td>7000/30</td> <br/><td> 7000/30</td> <br/><td>7000/30</td> <br/></tr> <br/><tr> <br/><td>type</td> <br/><td> node0</td> <br/><td> node1</td> <br/><td>node2</td> <br/><td> node0</td> <br/><td> node1</td> <br/><td>node2</td> <br/><td>node0</td> <br/><td>node1</td> <br/><td>node2</td> <br/></tr> <br/><tr> <br/><td><strong><span style=“color: #ff0000;”>rps</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”>1247</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 2465</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 2999</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 1211</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 2451</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 3013</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”>1243</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”>2440</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 3054</span></strong></td> <br/></tr> <br/><tr> <br/><td> tpq</td> <br/><td> 0.82</td> <br/><td> 0.40</td> <br/><td> 0.33</td> <br/><td> 0.82</td> <br/><td> 0.41</td> <br/><td> 0.33</td> <br/><td> 0.80</td> <br/><td> 0.42</td> <br/><td> 0.33</td> <br/></tr> <br/><tr> <br/><td> 80%req</td> <br/><td>2424</td> <br/><td> 2080</td> <br/><td> 627</td> <br/><td> 4329</td> <br/><td> 3103</td> <br/><td> 1365</td> <br/><td> 5433</td> <br/><td> 3610</td> <br/><td> 3188</td> <br/></tr> <br/><tr> <br/><td> fail</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td>0</td> <br/><td> 0</td> <br/><td> 0</td> <br/></tr> <br/></tbody> <br/></table> <br/><div style=“line-height: 22px;”>multi-node的应用显然大大提升了node的性能,连接池只有在特定的情况下才能更好的作用。</div> <br/><div style=“line-height: 22px;”>如果连接时间越长,操作DB越复杂,例如对redis操作多个key或是排序等,连接池的性能就更能体现出来了。</div> <br/></div> <br/><div style=“line-height: 22px;”>具体如何对EVO(node)进行改装,详见我的博客:<a href=“http://snoopyxdy.blog.163.com/blog/static/601174402011841174351/”>http://snoopyxdy.blog.163.com/blog/static/601174402011841174351/</a></div> <br/>  <br/><div style=“line-height: 22px;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><strong>chapter1:男人之间的战斗,0-400M直线加速</strong></span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>0-400米直线竞速赛又称为“直线加速度赛”,是专为赛车性能而生的比试,没有办法逃避,只能勇往直前。 <br/></span></div> <br/><div style=“line-height: 22px;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><span style=“line-height: 22px;”>在空旷的飞机场,</span></span><span style=“color: #3366ff;”>EVO(node)</span>和<span style=“color: #ff9900;”>330(php)</span>正准备着一场赤手空拳的较量。</div> <br/><div style=“line-height: 22px;”>测试内容:</div> <br/><div style=“line-height: 22px;”>对“hello world” web服务器进行测试,空框架,无任何业务负载。</div> <br/>  <br/><div style=“line-height: 22px;”> <br/><table width=“95%” border=“1” cellspacing=“0” cellpadding=“0”> <br/><tbody> <br/><tr> <br/><td> com</td> <br/><td> 3000/30</td> <br/><td> 3000/30</td> <br/><td>5000/30</td> <br/><td>5000/30</td> <br/><td>7000/30</td> <br/><td>7000/30</td> <br/></tr> <br/><tr> <br/><td> type</td> <br/><td> node</td> <br/><td>php</td> <br/><td>node</td> <br/><td>php</td> <br/><td> node</td> <br/><td>php</td> <br/></tr> <br/><tr> <br/><td><span style=“color: #ff0000;”><strong> rps</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 7677</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 3624</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 7232</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 3760</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 6743</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 3731</strong></span></td> <br/></tr> <br/><tr> <br/><td> tpq</td> <br/><td> 0.13</td> <br/><td> 0.39</td> <br/><td> 0.14</td> <br/><td> 0.41</td> <br/><td> 0.15</td> <br/><td> 0.42</td> <br/></tr> <br/><tr> <br/><td> 80%req</td> <br/><td> 138</td> <br/><td> 843</td> <br/><td> 477</td> <br/><td> 1343</td> <br/><td> 898</td> <br/><td> 2445</td> <br/></tr> <br/><tr> <br/><td> fail</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/></tr> <br/></tbody> <br/></table> <br/></div> <br/>  <br/><div style=“line-height: 22px;”><span style=“color: #3366ff;”> <br/></span></div> <br/><div style=“line-height: 22px;”><span style=“color: #3366ff;”>EVO(node)</span>在multi-node的4涡轮增压下(4CPU),一路领先,直到终点,不过在测试中4个CPU一直出于饱和状态,如果有8个核,估计能更快。</div> <br/><div style=“line-height: 22px;”>而php由于我菜鸟级的配置改装,无法完全发挥他的性能,网上有TX将php裸奔到5000+rps的,大家可以去参考一下。</div> <br/><div style=“line-height: 22px;”><span style=“color: #ff0000;”><strong> <br/></strong></span></div> <br/><div style=“line-height: 22px;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><strong>chapter2:都市街跑,考量你的驾驶技术</strong></span></div> <br/><div style=“line-height: 22px;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>跑在都市的路上,经常会看见有两部车子先后从你身边呼啸而过,伴随着引擎轰鸣声的远去,你能感受到速度的激情。犹如我们经常穿梭在繁华的都市内,所以先将生产中最常用到的mysql进行对比测试。 <br/></span></div> <br/><div style=“line-height: 22px;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>测试内容:</span></div> <br/><div style=“line-height: 22px;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>对数据表test进行select * 操作,test数据表内只有一条数据,2个字段,然后返回name,值为test。</span></div> <br/><div style=“line-height: 22px;”><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”> <br/></span></div> <br/><table width=“95%” border=“1” cellspacing=“0” cellpadding=“0”> <br/><tbody> <br/><tr> <br/><td> com</td> <br/><td> 3000/30</td> <br/><td> 3000/30</td> <br/><td>5000/30</td> <br/><td>5000/30</td> <br/><td>7000/30</td> <br/><td>7000/30</td> <br/></tr> <br/><tr> <br/><td> type</td> <br/><td> node</td> <br/><td> php</td> <br/><td> node</td> <br/><td> php</td> <br/><td> node</td> <br/><td> php</td> <br/></tr> <br/><tr> <br/><td><strong><span style=“color: #ff0000;”> rps</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 2999</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 1293</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 3013</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 1349</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 3054</span></strong></td> <br/><td><strong><span style=“color: #ff0000;”> 1301</span></strong></td> <br/></tr> <br/><tr> <br/><td> tpq</td> <br/><td> 0.33</td> <br/><td> 0.82</td> <br/><td> 0.33</td> <br/><td> 0.80</td> <br/><td> 0.33</td> <br/><td> 0.80</td> <br/></tr> <br/><tr> <br/><td> 80%req</td> <br/><td> 627</td> <br/><td> 1369</td> <br/><td> 1365</td> <br/><td> 1979</td> <br/><td> 3188</td> <br/><td> 3903</td> <br/></tr> <br/><tr> <br/><td> fail</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 111</td> <br/><td> 0</td> <br/><td> 573</td> <br/></tr> <br/></tbody> <br/></table> <br/>  <br/><div>mysql是建立和释放连接都比较长的,所以node和php性能相比裸奔都大幅下降。</div> <br/><div>由于php每次请求都需要建立释放连接,所以耗时更长。</div> <br/><div><span>而</span><span style=“color: #3366ff;”>EVO(node)</span><span>在这时的优势就发挥出来了,multi-node和generic-pool两大利器无缝合作,在街头巷尾远远的甩开了</span><span style=“color: #ff9900;”>330(php)</span><span>。</span></div> <br/><div>还是那句老话,可能php改装的不到位,各位做个参考把。</div> <br/>  <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><strong>chapter3:城市高架,隧道口,匝道上都是我们展现速度的舞台</strong></span></div> <br/><div>高架的诞生是为缓和日益阻塞的城市交通,高架上不仅是豪车的天下,更是性能车的舞台,让我们去体验砸道秒杀一切的快感吧。</div> <br/><div>memcache是作为缓解mysql瓶颈的最佳工具,php+memcache+mysql一直是很经典的组合,广泛用于各大互联网站点内。</div> <br/><div>测试内容:</div> <br/><div>对memcache的“test”key取值,然后返回这个值“test”。</div> <br/><table width=“95%” border=“1” cellspacing=“0” cellpadding=“0”> <br/><tbody> <br/><tr> <br/><td> com</td> <br/><td> 3000/30</td> <br/><td> 3000/30</td> <br/><td>5000/30</td> <br/><td>5000/30</td> <br/><td>7000/30</td> <br/><td>7000/30</td> <br/></tr> <br/><tr> <br/><td> type</td> <br/><td> node</td> <br/><td> php</td> <br/><td> node</td> <br/><td> php</td> <br/><td> node</td> <br/><td> php</td> <br/></tr> <br/><tr> <br/><td><span style=“color: #ff0000;”><strong> rps</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 5102</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 1957</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 4995</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 1841</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 4976</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 1872</strong></span></td> <br/></tr> <br/><tr> <br/><td> rpt</td> <br/><td> 0.2</td> <br/><td> 0.64</td> <br/><td> 0.2</td> <br/><td> 0.74</td> <br/><td> 0.19</td> <br/><td> 0.70</td> <br/></tr> <br/><tr> <br/><td> 80%req</td> <br/><td> 672</td> <br/><td> 1713</td> <br/><td> 1033</td> <br/><td> 2150</td> <br/><td> 1494</td> <br/><td> 3551</td> <br/></tr> <br/><tr> <br/><td> fail</td> <br/><td> 0</td> <br/><td> 7</td> <br/><td> 0</td> <br/><td> 79</td> <br/><td> 0</td> <br/><td> 335</td> <br/></tr> <br/></tbody> <br/></table> <br/><div>和mysql对比,memcache建立和释放连接时间要更短,而且直接操作内存,所以两者的测试结果都有不少的上升。</div> <br/><div>这里php还是受限于他建立和释放连接的损耗,成绩不理想。</div> <br/>  <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><strong>chapter4:决战纽博格林</strong></span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><span class=“Apple-style-span” style=“line-height: 22px;”>真正的赛车都必须去征服赛道之王——德国纽博格林北环赛道,这条被誉为绿色地狱的20.6km赛道是让赛车在原始的山林之间高速穿梭,赛道随着山势而起伏,宛若云霄飞车。evo在这条赛道的最佳成绩是7分32秒52,而 AC-Schnitzer改装的BMW M3,最佳成绩是7分36秒。 <br/></span></span></div> <br/><div><span style=“font-family: arial, 宋体, sans-serif;”><span style=“line-height: 24px;”>在高速信息化的时代,我们对速度的渴望越发的强烈,Redis作为高速nosql内存db,以其出色的性能被大众认可,现在越来越多的互联网站点加入到了nosql行列。</span></span></div> <br/><div><span style=“font-family: arial, 宋体, sans-serif;”><span style=“line-height: 24px;”>测试内容:</span></span></div> <br/><div><span style=“font-family: arial, 宋体, sans-serif;”><span style=“line-height: 24px;”>对Redis的“test”key取值,然后返回这个值“test”。</span></span></div> <br/><div><span style=“font-family: arial, 宋体, sans-serif;”> <br/></span></div> <br/><table width=“95%” border=“1” cellspacing=“0” cellpadding=“0”> <br/><tbody> <br/><tr> <br/><td> com</td> <br/><td> 3000/30</td> <br/><td> 3000/30</td> <br/><td>5000/30</td> <br/><td>5000/30</td> <br/><td>7000/30</td> <br/><td>7000/30</td> <br/></tr> <br/><tr> <br/><td> type</td> <br/><td> node</td> <br/><td>php</td> <br/><td>node</td> <br/><td>php</td> <br/><td> node</td> <br/><td>php</td> <br/></tr> <br/><tr> <br/><td><span style=“color: #ff0000;”><strong> rps</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 5262</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 2015</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 5353</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 1949</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 5269</strong></span></td> <br/><td><span style=“color: #ff0000;”><strong> 1901</strong></span></td> <br/></tr> <br/><tr> <br/><td> tpq</td> <br/><td> 0.19</td> <br/><td> 0.61</td> <br/><td> 0.18</td> <br/><td> 0.61</td> <br/><td> 0.19</td> <br/><td> 0.61</td> <br/></tr> <br/><tr> <br/><td> 80%req</td> <br/><td> 671</td> <br/><td> 1805</td> <br/><td> 1210</td> <br/><td> 2356</td> <br/><td> 1650</td> <br/><td> 3816</td> <br/></tr> <br/><tr> <br/><td> fail</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 0</td> <br/><td> 105</td> <br/><td> 0</td> <br/><td> 607</td> <br/></tr> <br/></tbody> <br/></table> <br/><div>这个测试结果和memcache相差不大,因为redis和memcache相比他的优势不再key-value上,而是hash和sort,还有pub/sub等,所以在纯粹的key-value上,这次测试两者性能不相伯仲。</div> <br/><div>最终在纽博格林北环赛道,<span style=“color: #3366ff;”>EVO(node)</span>率先冲过了终点,成为本次对比的赢家。</div> <br/>  <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><strong>尾声:</strong></span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>我想这次测试的结果应该早已经在各位的预料之中了,事件驱动对于内存消耗更少,非阻塞和连接池的加入让node对<em>I/O</em>操作更上一层楼。 <br/></span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>虽然php在各方面都落于下风,但是并不代表php就不如node,php有他更适合的应用场景和广泛的开源框架以及技术支持。</span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>node作为一种新型的服务器语言从被认可,到广泛用于生产环境要走的路还很长。</span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”> <br/></span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”><strong>有图有真像:</strong></span></div> <br/><div> <br/><div><span class=“Apple-style-span” style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”>这个是在3000并发连发30秒测试的7900+,如果1000并发连发30秒可以到8500+。</span></div> <br/><div>图片地址在我的博客,拉到最底部:</div> <br/><div><a href=“http://snoopyxdy.blog.163.com/blog/static/60117440201183101319257/”>http://snoopyxdy.blog.163.com/blog/static/60117440201183101319257/</a></div> <br/></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”> <br/></span></div> <br/><div><span style=“font-family: Arial, Helvetica, simsun, u5b8bu4f53;”> <br/></span></div> <br/><div> <br/> <br/>  <br/> <br/></div>

4 回复

PHP单纯在性能上确实和Node不是一个档次的。但是应用场景确有不同。 <br/> <br/>回到Node,在我的测试中,Node单台并发超过100W,内存占用上20G以后,GC的时候性能Drop非常厉害,所以现在仍然在评估Node并不停在找一个能让某个Node GC的时候自动降低权重前端中… <br/> <br/>目前感觉:Node成也V8,败也V8。 <br/> <br/>不得不提的是LZ对车的认识对我很对胃口,难道都是GT的粉丝?

@boin <br/>感谢你的关注~ <br/>单台并发超过100W。。太恐怖的数字啊~ <br/>20G内存,你的服务器超级强悍啊,哈哈哈 <br/>我对车是很喜欢的 ,GT玩的一般般,属于休闲,水平一般般啊。 <br/>以后代码写不动了,就准备去开黑车养家糊口了。。

PHP部分的测试你应该用长链接,堪比连接池。

成也V8,败也V8 好评

回到顶部