Узкое место MySQL / Веб-Сервера

#mysql #nginx

Вопрос:

Я пытаюсь определить узкое место MySQL / веб-сервера.

У меня три сервера. Веб-сервер под управлением Nginx, удаленный сервер MySQL с моей базой данных WordPress и другой удаленный сервер MySQL, хранящий наши данные.

Узкое место, которое я пытаюсь найти, находится между моим вторым сервером MySQL, хранящим наши данные, и моим веб-сервером. У нас есть страница, на которой есть три таблицы данных (три отдельных запроса). Он загружается очень медленно, если он все делает. Иногда я получаю ошибку тайм-аута шлюза.

Я не думаю, что сами запросы являются проблемой. Из DataGrip все три в среднем составляют от 200 до 500 мс. В настоящее время запросы не индексируются, так как мне сказали, что плагин не может использовать индексы, но я все равно могу попробовать.

Оборудование и настройка:

Мой сервер MySQL-это AWS R6G.Большой, 2 ядра и 16 ГБ оперативной памяти, SSD-накопитель 150 операций ввода-вывода и пропускной способностью 128 МБ. размер innodb_page_size равен 32, размер буферного пула равен 11000 М, innodb_buffer_pool_установок равен 10, а размер файла innodb_log_file_size равен 1 г

Веб-сервер представляет собой AWS C6G.Xlarge, 4 ядра и 8 ГБ оперативной памяти, SSD-накопитель 150 операций ввода-вывода и пропускной способностью 128 МБ. Использует FPM и Opcache.

Я пробовал отслеживать с помощью TOP на обоих серверах, но, честно говоря, я не уверен, что у меня есть знания, чтобы правильно использовать информацию.

Я действительно хотел бы каким-то образом определить, является ли это аппаратным или программным обеспечением, и если это аппаратное обеспечение, есть ли способ изолировать? У меня нет проблем с увеличением аппаратного обеспечения, если это действительно проблема.

Я не уверен, разрешено ли это в стеке, но я думаю, что было бы проще узнать, что происходит, если бы я записал свой экран с запущенным TOP на обоих серверах. Я добавил видео на свой публичный Google диск. На видео есть как мой сервер MySQL (вверху), так и веб-сервер (Nginx, внизу). Что я сделал, так это загрузил страницу (отметка 3 секунды в видео) и записал результат. Видео 1:05, сколько времени потребовалось, чтобы появился последний стол. Видео было записано во время обслуживания моего сайта, поэтому никакой другой IP / трафик не мог достичь ни одного сервера.

Моя ссылка на Google диске:

https://drive.google.com/drive/folders/1NtdE1Z4875i1Xx2Wy2EXGgknt9yuY1IN?usp=sharing

Надеюсь, кто-нибудь сможет помочь.

Эйми

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

1. Это не похоже на проблему программирования. Вы должны спросить об ошибке сервера

2. @TangentiallyPerpendicular, хорошо, мне удалить сообщение или оставить его и посмотреть, что могут подумать другие?

3. Нам нужно просмотреть запросы и SHOW CREATE TABLE . Это похоже на проблему с индексированием или формулировкой запроса. Даже 200 мс кажутся высокими, если только запросы не являются сложными.

4. К другим комментариям… Если это вопрос производительности запросов, то Stackoverflow-гораздо лучшее место, чем ServerFault. ОП (пока) не предоставила никакой информации, имеющей отношение к производительности запросов.