У меня есть кластер ECS, работающий за балансировщиком сетевой нагрузки, подключенным к API-шлюзу.2 - экземпляры t3.medium работают в разных AZ.Инфраструктура работает и работает, но когда живой трафик достигает шлюза API, время отклика очень медленное, иногда 12 000 мс.Я думаю, что это происходит на уровне Docker-контейнера, где код разработчика порождает некоторые процессы, которые могут делать что-то необычное.Я не уверен, хотя.Поскольку для тестирования на одной и той же виртуальной машине работают 2 одинаковых док-контейнера, возможно ли, что рабочие процессы контейнеров влияют на количество ядер vCPU, доступных для экземпляра t3.medium, заданного для 2 vCPU?Кластер ECS работает на 14%. Загрузка ЦП, по-моему, достаточна.4% загрузка процессора.Мне кажется, что он недостаточно используется, но время отклика очень медленное, когда запросы попадают в шлюз 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);
}