我有两台服务器运行完全相同的nodejs应用程序。我正在做负载测试,我不明白为什么我的一台服务器不能使用更多的CPU和RAM。
它在负载测试时要慢得多,但它甚至还没有接近于利用所有空闲的CPU和内存。
如果我在负载测试期间运行top,这些是我得到的数字
PID User PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
1308 ubuntu 20 0 1002524 87508 9788 S 5.3 4.3 0:03.06 nodejs
1307 ubuntu 20 0 925540 75288 9436 S 5.0 3.7 0:02.17 nodejs
1308 ubuntu 20 0 992076 77068 9788 S 14.0 3.8 0:03.48 nodejs
1307 ubuntu 20 0 937140 86904 9436 S 2.7 4.3 0:02.25 nodejs
1308 ubuntu 20 0 1012936 98000 9788 S 14.3 4.8 0:03.91 nodejs
1307 ubuntu 20 0 942940 92644 9436 S 1.0 4.5 0:02.28 nodejs
1307 ubuntu 20 0 943204 92976 9436 S 6.0 4.6 0:02.46 nodejs
1308 ubuntu 20 0 1011764 96804 9788 S 6.0 4.7 0:04.09 nodejs
1307 ubuntu 20 0 933644 83388 9436 S 8.6 4.1 0:02.72 nodejs
1308 ubuntu 20 0 1008720 93556 9788 S 5.3 4.6 0:04.25 nodejs
1308 ubuntu 20 0 1000184 85256 9788 S 8.6 4.2 0:04.51 nodejs
1307 ubuntu 20 0 944092 93988 9436 S 7.6 4.6 0:02.95 nodejs
1307 ubuntu 20 0 941748 91816 9436 S 15.0 4.5 0:03.40 nodejs
1308 ubuntu 20 0 1004832 90008 9788 S 1.3 4.4 0:04.55 nodejs
1307 ubuntu 20 0 933460 82632 9436 S 9.0 4.1 0:03.67 nodejs 运行两个进程,我没有看到内存超过4.7%,CPU在14%。
与只有一个核心和一半内存的机器相比,为完全相同的资源提供服务所需的时间是机器的两倍。
我的另一台服务器占用了%52的CPU。虽然它有一个核心,上面有两个核心,但看起来这不会有什么不同。
我下载了cpufrequtils并将调控器设置为性能,但我认为它不起作用。这是我在运行cpufreq-info时得到的结果
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.
analyzing CPU 1:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 4294.55 ms.这是CPU
Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz如有任何想法或建议,我们将不胜感激。
发布于 2015-04-18 06:55:18
如果两台服务器运行的是同一个node.js应用程序,那么您可能想要比较两台机器上的其他设置,它们是否相同?ulimit -a
此外,对于双核/多核机器,node.js是单线程的,除非您使用集群来利用它,否则它不会从双核/多核机器中受益。
https://stackoverflow.com/questions/29709323
复制相似问题