Однако я заметил, что использование ОЗУ, помеченное как кеш, со временем медленно растет, пока не заполнится, вызывая нехватку ОЗУ (кэш не освобождается).
Я тестирую свое приложение, отправляя 1000 одновременных POST-запросов к серверной части, которая настроена с пулом до 100 соединений PostgreSQL. В PostgreSQL для параметра Shared_buffers установлено значение 128 МБ и максимум 100 подключений.
Я не обнаружил большого использования памяти ни процессом .NET, ни моим простым приложением Node, которое я использую для тестов.
Тест просто создает множество одновременных HTTPS-соединений:
Тест представляет собой простой https-клиент, пытающийся установить множество одновременных подключений.
Код: Выделить всё
while (true) {
await stressREST(token, url, msg, 1000);
}
Код: Выделить всё
const httpsAgent = new https.Agent({
keepAlive: true,
maxSockets: 100,
maxTotalSockets: 100,
});
const client = axios.create({
httpsAgent,
timeout: 10_000,
});
export default async function stressREST(
token: string,
url: string,
content: object,
times: number
) {
const promises = [];
for (let i = 0; i < times; i++) {
promises.push(
client.post(url, content, {
headers: { Authorization: `Bearer ${token}` },
})
);
}
await Promise.all(promises);
console.log(times, "requests done");
}
Я также установил значение shmmax ядра на 8 ГБ, но это не имело никакого значения.
Я использую Fedora 43 с 32 ГБ ОЗУ.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ackend-app
Мобильная версия