Рейтинг:1

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

флаг jp

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

У меня три сервера. Веб-сервер с Nginx, удаленный сервер MySQL с моей БД Wordpress и еще один удаленный сервер MySQL, на котором хранятся наши данные.

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

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

Аппаратное обеспечение и установка:

Мой сервер MySQL — это AWS R6G.Large, 2 ядра и 16 ГБ оперативной памяти, SSD со скоростью 150 операций ввода-вывода в секунду и пропускной способностью 128 МБ. innodb_page_size — 32, buffer_pool_size — 11000M, innodb_buffer_pool_instances — 10 и innodb_log_file_size — 1G Веб-сервер представляет собой AWS C6G.Xlarge, 4 ядра и 8 ГБ оперативной памяти, SSD на 150 IOPS и пропускную способность 128 МБ. Использует FPM и Opcache.

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

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

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

Ссылка на мой гугл диск:

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

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

Эми

Michael Hampton avatar
флаг cz
Видео настолько низкого качества, что почти невозможно что-либо разобрать. Но кажется, что mysqld работает на 100% ЦП в течение всего времени. Это говорит о том, что ваши запросы действительно являются проблемой. Запустите mysqltuner.pl и опубликуйте вывод здесь.
aimee avatar
флаг jp
@Майкл Хэмптон, странно. Качество хорошее на моем компьютере и мобильном телефоне.Я не знаком с mysqltuner. Я погуглю. Спасибо
djdomi avatar
флаг za
@MichaelHampton Должен ли я поддержать вас, чтобы починить ваш Интернет? XD Нет, извините, качество отличное, кажется, гугл напугал вас. Однако я думаю, что вы имеете в виду [этот проект GitHub] (https://github.com/major/MySQLTuner-perl)
djdomi avatar
флаг za
@aimee, я думаю, вы могли бы просто опубликовать то же самое с помощью текстового сообщения, потому что это облегчило бы задачу.
флаг ua
Серверы _физически_ удалены друг от друга? (Я ищу задержку сети.)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.