我正在将我的应用程序转换为node.js集群,我希望这将提高应用程序的性能。
目前,我正在将应用程序部署到2个EC2 t2.media实例中。我有Nginx做代理和ELB。
这是我的快速集群应用程序,它是文档中非常标准的。
var bodyParser = require('body-parser');
var cors = require('cors');
var cluster = require('cluster');
var debug = require('debug')('expressapp');
通过比较Apache2.2和Nginx1.2.6在Ubuntu13.04上使用完全库存包运行的负载测试,我发现Nginx请求的性能一直低于Apache请求;我正在寻找指导,以便在任何情况下都能使我们的Nginx性能优于Apache,如果可能的话,。
Apache设置()是相当标准的,但是Nginx设置是大量定制的;它们是在基准结果下面列出的。
我使用名为攻城v3.0.2 ()的基准测试工具为单个并发用户(c1)、10个并发用户(c10)和100个并发用户(C100)生成结果;结果如下:
Apache结果:
Date & Time, Trans, Elap Time,
一段时间后,我收到了一个要求,看看我们是否可以提高cloudant db的每秒并发写入数。IBM建议将Cloudant中的并发性从默认的50或100提高到50或100,看看它是否对性能有所帮助。下面是有关这些的IBM文档的链接。
因此,我用python编写了一个脚本,它用Cloudant创建一个文档,并在我们的两个dev Cloudant集群上针对不同数量的线程运行它。结果如下:
开发人员
Number of records : 10000
Number of client threads : 4
Total Time : 3.47 mins
Number of writes/sec : ~
我们有一个流行的iPhone应用程序,人们互相对决一个字仇。我们今天有近1百万注册用户。
在高峰时段,应用程序的响应时间非常长,也有相当多的超时时间。我们试图找出瓶颈,但很难找到。在所有服务器上,CPU、内存和I/O都在50 %以下。这个问题只出现在高峰时间。
我们的设置
1 VPS with nginx (1.1.9) as load balancer
4 front servers with Ruby (1.9.3p194) on Rails (3.2.5) / Unicorn (4.3.1)
1 database server with PostgreSQL 9.1.5
数据库日志没有显