我有一个节点API,通常可以很好地处理流量。但是,在我们的高峰时段,它将进入此状态,开始使用100%CPU,需要重新启动。重新启动后,它将在接下来的几天内恢复为正常状态。

使用负载测试站点,我能够重现此问题。我正在进行负载测试的请求非常简单,因此我担心问题出在我正在使用的第三方库中。

我是调试节点的新手,我不确定如何处理node-tick-processor的以下输出。有人可以破译吗?

更新:我正在运行节点v0.10.4

[Unknown]:
ticks  total  nonlib   name
   5    0.0%

[Shared libraries]:
ticks  total  nonlib   name
11943   49.1%    0.0%  /lib64/libc-2.12.so
10754   44.2%    0.0%  /usr/local/bin/node
  314    1.3%    0.0%  /lib64/libpthread-2.12.so
   50    0.2%    0.0%  7fff318b4000-7fff318b5000
    5    0.0%    0.0%  /lib64/libm-2.12.so
    3    0.0%    0.0%  /usr/lib64/libstdc++.so.6.0.17

[JavaScript]:
ticks  total  nonlib   name
 40    0.2%    3.2%  LazyCompile: ~read tls.js:397
 36    0.1%    2.8%  LazyCompile: *EventEmitter.addListener events.js:126
 29    0.1%    2.3%  LazyCompile: *Readable.read _stream_readable.js:226
<clipped>

[Bottom up (heavy) profile]:
Note: percentage shows a share of a particular caller in the total
amount of its parent calls.
Callers occupying less than 2.0% are not shown.

ticks parent  name
11943   49.1%  /lib64/libc-2.12.so
10754   44.2%  /usr/local/bin/node
 8270   76.9%    LazyCompile: *use tls.js:222
 5162   62.4%      LazyCompile: ~read tls.js:397
 5074   98.3%        LazyCompile: *Readable.read _stream_readable.js:226
 3396   66.9%          LazyCompile: ~write tls.js:315
 3396  100.0%            LazyCompile: *Writable.write _stream_writable.js:155
 1063   20.9%          LazyCompile: *write tls.js:315
 1063  100.0%            LazyCompile: *Writable.write _stream_writable.js:155
 370    7.3%          LazyCompile: *Writable.write _stream_writable.js:155
 370  100.0%            LazyCompile: ~write _stream_readable.js:546
 186    3.7%          LazyCompile: ~callback tls.js:753
 180   96.8%            LazyCompile: *onclienthello tls.js:748
 6    3.2%            LazyCompile: ~onclienthello tls.js:748
 2417   29.2%      LazyCompile: *read tls.js:397
 2417  100.0%        LazyCompile: *Readable.read _stream_readable.js:226
 2320   96.0%          LazyCompile: *Writable.write _stream_writable.js:155
 2315   99.8%            LazyCompile: ~write _stream_readable.js:546
   57    2.4%          LazyCompile: ~callback tls.js:753
   57  100.0%            LazyCompile: *onclienthello tls.js:748
  691    8.4%      LazyCompile: *Readable.read _stream_readable.js:226
  675   97.7%        LazyCompile: *write tls.js:315
  675  100.0%          LazyCompile: *Writable.write _stream_writable.js:155
  674   99.9%            LazyCompile: ~write _stream_readable.js:546

最佳答案

对于仍然来这里的人来说,这是由于系统节点模块中的SSL处理代码中的某处引起的。我将堆栈重新配置为在nginx上执行SSL终止,并在节点级别使用基本的HTTP处理,此问题完全消失了。

07-25 21:15