#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-сервера.
Поэтому мои предложения таковы:
- Разверните службу приложений в регионе рядом с вашими пользователями, чтобы уменьшить задержку в сети.
- Если ваша бизнес-логика сложна, а загрузка процессора службы приложений высока, увеличьте ее до более высокого уровня.
- MySQL в приложении только для разработки, его производительность не так хороша и не рекомендуется для производства, вы можете создать новый экземпляр Azure MySQL в том же регионе, что и служба приложений, для хорошей производительности SQL.
- Оптимизируйте свой SQL-запрос, чтобы повысить эффективность SQL-запросов, например, создайте индексы для столбцов, которые всегда будут использоваться запросами, избегайте хранения больших текстовых или двоичных файлов в БД и создайте кэш для данных, которые всегда запрашиваются, но стоят дорого.
Комментарии:
1. Спасибо за ваши предложения, мой начальник дал мне задание выяснить, можно ли уменьшить задержку между базой данных и веб-приложением. До сих пор мне удавалось узнать, что переход на протокол HTTP 2.0 вместо HTTP 1.0 может немного улучшиться, и он действительно улучшился на 1,5 с быстрее по сравнению с 2,5 с ранее, и ответ постоянно сохраняется на уровне 1-1, 5 с, когда я пытаюсь его запросить. Кроме этого, я не знаю, что я мог бы сделать больше, чтобы улучшить его. :))
2. @nsuspect Пожалуйста, опубликуйте дополнительную информацию, запрошенную 27 мая 2021 года, для предложений по сокращению задержки.