Минимизировать задержку между сервером и веб-приложением

#mysql #azure-web-app-service #timedelay

Вопрос:

Всем добрый день, у меня есть некоторые проблемы со службой приложений Azure и встроенным приложением MySQL, надеюсь, я смогу получить от вас несколько советов. Ситуация здесь У меня есть веб-приложение, работающее в операционной системе azure linux, но база данных mysql в приложении. До сих пор запрос работал нормально, но дело в том, что мне сказали минимизировать задержку между веб-службой и базой данных. Я проверил время ответа на запрос с помощью Postman, и время ответа составляет около 1000 мс-2,5 с, я не знаю, можно ли уменьшить задержку между веб-службой и базой данных до, может быть, 500 мс или даже лучше? Спасибо.

Комментарии:

1. Это может помочь: php.net/manual/en/features.persistent-connections.php

2. @Luuk Спасибо, я только что взглянул на это, это решение выглядит многообещающим.

3. Запрос дополнительной информации. Размер оперативной памяти, # ядер, любые устройства SSD или NVME на хост-сервере MySQL? Сообщение на pastebin.com и делитесь ссылками. Из корневого каталога входа в систему SSH Текстовые результаты: B) ПОКАЗЫВАЮТ ГЛОБАЛЬНЫЙ СТАТУС; по истечении как минимум 24 часов БЕЗОТКАЗНОЙ работы C) ПОКАЗЫВАЮТ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ; D) ПОКАЗЫВАЮТ ПОЛНЫЙ СПИСОК ПРОЦЕССОВ; И дополнительная очень полезная информация, включая — htop ИЛИ top для большинства активных приложений, ulimit-a для списка ограничений Linux/Unix, iostat-xm 5 3 для ввода-вывода по устройствам и количеству ядер/процессоров, для анализа настройки рабочей нагрузки сервера для предоставления портала AZURE, НАСТРОЕК, параметров сервера.

4. @nsuspect На следующей неделе я посмотрю, не опубликовали ли вы запрошенную дополнительную информацию — для анализа рабочей нагрузки и предложений по настройке глобальных переменных для повышения производительности. Желаю вам ОТЛИЧНЫХ выходных.

Ответ №1:

Существует множество причин, которые приводят к задержке ответа. Трудно сказать,как его уменьшить, но в целом это может быть вызвано: задержкой в сети, бизнес-логикой службы приложений, сложностью SQL — запросов, производительностью SQL-сервера.

Поэтому мои предложения таковы:

  1. Разверните службу приложений в регионе рядом с вашими пользователями, чтобы уменьшить задержку в сети.
  2. Если ваша бизнес-логика сложна, а загрузка процессора службы приложений высока, увеличьте ее до более высокого уровня.
  3. MySQL в приложении только для разработки, его производительность не так хороша и не рекомендуется для производства, вы можете создать новый экземпляр Azure MySQL в том же регионе, что и служба приложений, для хорошей производительности SQL.
  4. Оптимизируйте свой SQL-запрос, чтобы повысить эффективность SQL-запросов, например, создайте индексы для столбцов, которые всегда будут использоваться запросами, избегайте хранения больших текстовых или двоичных файлов в БД и создайте кэш для данных, которые всегда запрашиваются, но стоят дорого.

Комментарии:

1. Спасибо за ваши предложения, мой начальник дал мне задание выяснить, можно ли уменьшить задержку между базой данных и веб-приложением. До сих пор мне удавалось узнать, что переход на протокол HTTP 2.0 вместо HTTP 1.0 может немного улучшиться, и он действительно улучшился на 1,5 с быстрее по сравнению с 2,5 с ранее, и ответ постоянно сохраняется на уровне 1-1, 5 с, когда я пытаюсь его запросить. Кроме этого, я не знаю, что я мог бы сделать больше, чтобы улучшить его. :))

2. @nsuspect Пожалуйста, опубликуйте дополнительную информацию, запрошенную 27 мая 2021 года, для предложений по сокращению задержки.