отдельный сервер mysql и веб-сервер и последствия

отдельный сервер mysql и веб-сервер и последствия

У меня есть веб-приложение. Купил для него довольно мощный сервер. Характеристики сервера ниже: Процессор: DUAL E5-2620 Оперативная память: 32 ГБ DDR3 Жесткий диск: 2 x 300 ГБ SAS 10K Сеть: Интернет 100 Мбит/с/10 ТБ.

Спецификация веб-сервера: Apache/nginx/PHP База данных: MySQL

Теперь мои пользователи кайфуют день ото дня. Мой сервер не выдерживает такого давления. и время ожидания увеличивается. Поэтому я подумал о разделении MySQL и веб-сервера на два одинаковых сервера, чтобы сбалансировать нагрузку на процессор. Теперь я узнал, что с разделением mysql и php у меня будут еще проблемы ниже!

  • Ожидание сетевой передачи: у меня есть такой запрос MySQL: "SELECT * FROM table" Если таблица содержит более 500 МБ данных. С моей скоростью соединения потребуется несколько секунд, чтобы получить такую ​​таблицу по сети. и это только для одного пользователя с одним подключением, но это умножается на 10 подключений от одного пользователя и более 100 онлайн-пользователей.

Приведенный выше пример — всего лишь пример, но реальные данные показывают следующую информацию для 100 пользователей онлайн одновременно:

Трафик + ø + в час

Полученный+ 14,7 ГиБ + 201,4 МиБ

Отправил+ 429,4 ГиБ + 5,7 ГиБ

Общий+ 444,2 ГиБ + 5,9 ГиБ


Так что, похоже, разделение — это нечто невозможное для моего веб-приложения. Теперь я застрял, что делать, чтобы сбалансировать нагрузку на эти два сервера, не имея такой большой проблемы. Какой может быть альтернативный способ сбалансировать нагрузку на мой процессор, не имея проблемы с задержкой (по крайней мере, с меньшими проблемами)?

*****примечание: запрос - это пример. Мои запросы достаточно оптимизированы, но мое приложение намного сложнее, поэтому оно очень много взаимодействует с базой данных. Но информация mysql показывает, что передано 6GiB данных.

решение1

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

Если нет, то сейчас делают адаптеры Ethernet по крайней мере до 10 Гбит/с. Для некоторых более экзотических типов даже быстрее. Более быстрая связь между серверами поможет. Но не так сильно, как правильные SQL-запросы.

Связанный контент