我有两台运行完全相同的nodejs应用程序的服务器。我正在进行负载测试,我无法弄清楚为什么我的一台服务器不会使用更多的CPU和RAM。
负载测试时速度要慢得多,但它甚至不能充分利用所有空闲的CPU和内存。
如果我在负载测试期间运行顶部,这些是我得到的数字
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并将GOVERNOR设置为性能,但我认为它不起作用。这是我运行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
任何想法或提示都将不胜感激
答案 0 :(得分:0)
如果两台服务器都运行相同的node.js应用程序,那么您可能需要 比较机器上的其他设置,它们是否相同? ulimit -a
对于双/多核核心机器,node.js是单线程的,除非你使用集群来使用它,否则它不会受益于双/多核。