【发布时间】:2014-08-14 22:30:09
【问题描述】:
我用 JMeter 创建了测试来测试 Ghost 博客平台的性能。 Ghost 用 Node.js 编写并安装在具有 1Gb RAM、1 个 CPU 的云服务器中。
我注意到在 400 个并发用户之后 JMeter 出现错误。直到 400 个并发用户负载是正常的。我决定增加 CPU 并添加 1 个 CPU。
但错误重现并添加了 2 个 CPU,总共 4 个 CPU。 400 个并发用户后出现此问题。
我不明白为什么 1 个 CPU 可以处理 400 个用户,而 4 个 CPU 的结果相同。
在监控过程中,我注意到只有一个 CPU 处于忙碌状态,而其他 3 个 CPU 处于空闲状态。当我在控制台中检查 JMeter 摘要时出现错误,大约占请求的 5%。见截图。
我想知道是否可以在 CPU 之间平衡负载?
【问题讨论】:
-
您可能还想使用
ulimit -n检查您的打开文件限制。这限制了节点可以处理的并发请求数。您可以使用ulimit -n 10000增加它(用于本地会话)。要创建 Ghost 服务器进程的集群,您可以尝试 pm2。只需使用npm install pm2 -g和pm2 start <your_server>.js安装 pm2 -
问题部分解决了。以下是我得到的步骤和结果: 1. 将 ulimit 更改为 10000。结果:没有变化。 2.启用节点集群模块。结果:+200 个并发用户 3. 调整 Nginx 工作进程。结果:+2k 并发用户我可以假设问题出在 Nginx 上。当我测试没有集群模块的服务器时,服务器处理了 2000 个用户。当我达到限制时,我会尝试启用集群模块。
标签: performance node.js jmeter cpu cpu-usage