我刚刚了解了Heroku,很高兴能测试它。我很快就用Node.js语言组装了他们的演示,却偶然发现了一个问题。当在本地运行应用程序时,apache基准测试大约打印3500个请求/秒,但当它在云上时,它会降至10个请求/s,并且不会根据网络延迟而增加或降低。我不敢相信这就是他们要求的每小时5美分的性能,并高度怀疑我的应用程序不是多线程的。
这是我的代码.js:http://pastebin.com/hyM47Ue7
我需要应用什么配置才能在Heroku上"运行"(更快)?或者我可以使用node.js的其他哪些web服务器?
我感谢关于这个话题的每一个回答。
您的小示例不是多线程的。(甚至在你自己的机器上也不需要。)但你不需要立即为更多的dyno付费,因为你可以在一个dyno上使用多个内核,看到这个答案了吗?在Heroku中运行带有集群模块的Node.js应用程序没有意义?
重复这个答案:使用多个进程来提高吞吐量的节点解决方案是使用(内置)集群模块。
我想你可以很容易地从heroku dyno获得超过10个req/s的请求,而不会有任何问题,参见这个基准,例如:
http://openhood.com/ruby/node/heroku/sinatra/mongo_mapper/unicorn/express/mongoose/cluster/2011/06/14/benchmark-ruby-versus-node-js/
你用什么来进行基准测试?
你是对的,网络服务器不是多线程的,直到你为更多的网络dynos付费。我发现Heroku在原型设计方面很方便;根据您时间的货币价值,您可能希望也可能不希望使用它来设置可扩展服务器,而不是直接使用EC2。