我使用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之间平衡负载?
我注意到在400个并发用户后,JMeter会出现错误。在400个并发用户之前,负载是正常的。于是我决定增加CPU,添加了1个CPU。
但错误仍然存在,我又添加了2个CPU,总共4个CPU。问题仍然在400个并发用户后出现。
我不明白为什么1个CPU可以处理400个用户,而4个CPU也只有同样的结果。
在监控过程中,我注意到只有一个CPU在忙碌,其他3个CPU处于空闲状态。当我在控制台中检查JMeter摘要时,会出现错误,请求错误率约为5%。请参阅屏幕截图。
我想知道是否有可能在多个CPU之间平衡负载?
ulimit -n
检查你的打开文件限制。这会限制Node可以处理的并发请求数量。你可以使用ulimit -n 10000
来增加它(针对本地会话)。要创建一个Ghost服务器进程集群,你可以尝试使用pm2。只需使用npm install pm2 -g
安装pm2,并使用pm2 start <your_server>.js
启动它。 - Mukesh Soni