我有一个ECS集群,该集群在连接到API网关的网络负载均衡器后面运行。 2-t3.medium实例在不同的可用区中运行。基础架构已启动并正在运行,但是当实时流量到达API网关时,响应时间非常慢,有时为12,000ms。我认为这是在Docker容器级别发生的,开发人员代码在其中生成了一些可能在做一些时髦的过程。我不确定。由于要进行测试,在同一个VM上运行2个相同的docker容器,容器工作程序进程是否有可能影响2个vCPU规格的t3.medium实例可用的vCPU核心数量? ECS集群的运行速度为14%,在我看来,还有很多可用空间。
我已将ssh放入t3.medium实例中,并执行了“ top”命令,该命令显示了2个进程以3-4%的CPU利用率运行。对我来说似乎确实没有充分利用,但是当请求到达API网关时,响应时间非常慢。
下面是创建进程的节点server.js代码。
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
var cluster = require('cluster');
// Code to run if we're in the master process
if(cluster.isMaster) {
// count the machine cpus
var cpuCount = require('os').cpus().length;
// create a worker for each cpu
for (var i=0; i<cpuCount; i+=1) {
cluster.fork();
}
// code to run if we are in a worker process
} else {
var express = require('express');
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.listen(port);
var routes = require('./api/routes/routes.js');
routes(app);
}