Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.12.155.148] |
|
Сообщ.
#1
,
|
|
|
Доброго времени, товарищи. Нужна ваша помощь )
Есть приложение на Node.js Используется express для маршрутизации запросов и mongodb для БД. Требуется найти узкие места в производительности. Поставил несколько экспериментов, но затрудняюсь интерпритировать результат. Эксперимент №1 - сервер отвечает на запрос не думая (сразу возвращает ответ и делает сокету .end()) Клиент посылает 1000 запросов. Результат: Клиент в течении 2-3 секунд получает все ответы. Ответы поступают почти в то же время как их отдаёт сервер. Эксперимент №2 - сервер получая запрос думает, он производит поиск, вставляет и апдейтит данные в БД, потом возвращает ответ. Клиент посылает 1000 запросов. Результат: Сервер в течении ~5-10 секунд отдаёт последний ответ. Клиент продолжает получать ответы ещё около минуты. При втором эксперименте и загрузка процессора согласуется с результатом, первые несколько секунд процесс ноды нагружен, затем назгрузки нет. Тем не менее, если я убью процесс с нодой, клиент тоже отвалится и не получит ответы. т.е. Если сервер обращался к БД, то потом уже готовые ответы выдаётся сервером около минуты. Если к БД не обращаться, а сразу ваыдавать ответы, то они быстро доходят до клиента. |
Сообщ.
#2
,
|
|
|
Бурильня вычислена методом последовательной ампутации частей кода.
Бурильня в var MySQLStore = require('express-mysql-session')(session); |