Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > WWW Masters. Прочее > Бурильня в Node.js |
Автор: old_lamer 12.04.17, 11:18 |
Доброго времени, товарищи. Нужна ваша помощь ) Есть приложение на Node.js Используется express для маршрутизации запросов и mongodb для БД. Требуется найти узкие места в производительности. Поставил несколько экспериментов, но затрудняюсь интерпритировать результат. Эксперимент №1 - сервер отвечает на запрос не думая (сразу возвращает ответ и делает сокету .end()) Клиент посылает 1000 запросов. Результат: Клиент в течении 2-3 секунд получает все ответы. Ответы поступают почти в то же время как их отдаёт сервер. Эксперимент №2 - сервер получая запрос думает, он производит поиск, вставляет и апдейтит данные в БД, потом возвращает ответ. Клиент посылает 1000 запросов. Результат: Сервер в течении ~5-10 секунд отдаёт последний ответ. Клиент продолжает получать ответы ещё около минуты. При втором эксперименте и загрузка процессора согласуется с результатом, первые несколько секунд процесс ноды нагружен, затем назгрузки нет. Тем не менее, если я убью процесс с нодой, клиент тоже отвалится и не получит ответы. т.е. Если сервер обращался к БД, то потом уже готовые ответы выдаётся сервером около минуты. Если к БД не обращаться, а сразу ваыдавать ответы, то они быстро доходят до клиента. |
Автор: old_lamer 12.04.17, 12:20 |
Бурильня вычислена методом последовательной ампутации частей кода. Бурильня в <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> var MySQLStore = require('express-mysql-session')(session); |