我的node.js服务器遇到缓慢或无响应的时间,甚至偶尔会在尝试连接服务器时导致503网关超时。
我99%肯定(根据我已经运行的测试),这种滞后来自于我使用node-oauth module与外部API(Facebook,Twitter和Google)联系的大量出站请求很多其他的)。无可否认,正在进行的出站请求数量相对较大(每分钟大约30个左右)。更糟糕的是,这经常意味着对我的服务器的相应入站请求可能需要大约5-10秒才能完成。但是,我有一个以前用于PHP编写的API版本,它能够处理这一数量的出站请求而没有任何问题。实际上,使用我的Node.js API的相同数量(甚至更少)请求的CPU使用率大约是我的PHP API的5倍。
所以,我试图找出可以改进的地方,最重要的是要确保不会发生503超时。以下是我读过或试验过的一些内容:
我可以继续,但简而言之,我已经能够找到关于如何优化性能的非常简明的信息,因此这些出站连接不会滞后来自客户端的入站请求。
提前感谢任何想法或贡献。
FWIW,我也在使用express和mongoose,我的服务器托管在Amazon Cloud上(2x M1.Large用于节点服务器,2x负载均衡器和3x M1.Small MongoDB实例)。
答案 0 :(得分:2)
对我来说,代理正在将您的请求限制为每个主机的默认级别为5。你的测试显示,启动代理maxSockets
帮助......你应该这样做。
您可以通过启动数据包嗅探器或向应用程序添加更多调试代码来证明这是问题,以证明这是限制因素。
答案 1 :(得分:-1)