Я пытаюсь определить узкое место 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
Надеюсь, кто-то может помочь.
Эми