Nodejs Утомительная Ms sql Низкая производительность - PullRequest
0 голосов
/ 15 января 2020

Я выполняю тестирование нагрузки HTTP по простому маршруту NodeJS, который выполняет запрос к базе данных разных пользователей и возвращает результат клиенту, используя Vegeta (https://github.com/tsenart/vegeta), но я сталкиваюсь с медленной производительностью с утомительным соединителем пула MS SQL (https://github.com/tediousjs/tedious-connection-pool).

Тест был запущен с этими конфигурациями:

  • Запрос (это простой запрос): SELECT fields1 FROM таблица
  • Мин. Пула: 10
  • Макс. Пул: 100
  • скорость: 1000 запрос ( в секунду)
  • продолжительность: 30 с c

Вот результаты:

  1. Процент успеха:

    • MS SQL (пакет: пул утомительных соединений ): 60% запросов были успешными и 30% сбоев с этим сообщением ometimes: прочитайте tcp 127.0.0.1:55998->127.0.0.1:8000: прочитайте: сброс соединения по пиру
    • MySQL (пакет: mysql ): 100% успеха
    • PostgreSQL (пакет: узел- postgres): 100% успеха
  2. Средняя задержка:

    • MS SQL (пакет: пул утомительных соединений ): 39s c
    • MySQL (пакет: mysql): 100мс
    • PostgreSQL (пакет: узел- postgres ): 50мс

Я не думаю, что проблема возникает из-за конфигурации сервера или реализации кода, потому что все базы данных находятся на одном сервере, но не работают в одно и то же время для теста, и код маршрута NodeJS очень базовый c, и это одинаково для каждого соединителя.

Кроме того, я ' мы выполняем тест Jmeter t только для проверки запроса на SQL сервере, и никаких проблем, график задержки был хорошим (график задержки показывает линию менее 800 мс в течение периода тестирования).

Кто-то сталкивался с подобной проблемой или имеет Любая идея о низкой производительности на SQL сервере ( Я думаю, что низкая производительность на базе SQL Server происходит из-за утомительного драйвера, но я не уверен, и я не знаю, как его определить )?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...