Производительность MySQL - 100 МБ Ethernet против 1 ГБ Ethernet - PullRequest
1 голос
/ 17 апреля 2010

Я только начал новую работу и заметил, что компьютеры аналитиков подключены к сети на скорости 100 Мбит / с. Запросы ODBC, которые мы выполняем к серверу MySQL, могут легко вернуть 500 МБ +, и иногда, когда серверы находятся под высокой нагрузкой, администраторы баз данных убивают задания с низким приоритетом, так как для их выполнения требуется слишком много времени.

У меня такой вопрос ... Сколько времени сервера затрачивается на выполнение запроса и сколько времени уходит на возврат данных клиенту? Можно ли повысить скорость запросов путем обновления сетевых подключений до 1 Гбит / с?

(Обновлено по причине): соответствующая база данных была создана для удовлетворения потребностей в отчетности и содержит огромные объемы данных. Мы обычно работаем с подмножествами этих данных на гранулярном уровне во внешних приложениях, таких как SAS или Excel, что является причиной больших объемов передаваемых данных. Запросы не плохо структурированы - они очень просты и используются соответствующие объединения / индексы и т. Д. Я удалил «запрос» из заголовка поста, поскольку понял, что этот вопрос больше связан с общей производительностью MySQL, а не с производительностью запросов. Я надеялся, что кто-то с гигабитным соединением сможет на самом деле подсчитать для меня некоторые результаты, выполнив запрос, который возвращает приличный объем данных, затем он может ограничить скорость соединения до 100 Мб и повторно выполнить тот же запрос. Надеюсь, это можно сделать в условиях, когда нагрузки достаточно стабильны, чтобы не искажать результаты.

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

Спасибо Rob

Ответы [ 3 ]

3 голосов
/ 17 апреля 2010
  1. Benchmark. MySQL имеет много инструментов для определения продолжительности запросов. Скорее всего, у вас действительно плохие запросы. Используйте медленный журнал запросов.
  2. Почему вы передаете / храните 500 МБ данных из / в MySQL?
2 голосов
/ 17 апреля 2010

Разделите объем данных на момент запроса, и вы получите ответ. Если вы приближаетесь к пропускной способности 100 Мбит / с, у вас будут проблемы с вводом-выводом.

1 голос
/ 17 апреля 2010

Мое подозрение - да. Должно быть.

В оболочке MySQL я бы запустил:

показать полный список процессов

на машине и проверьте состояние запросов. Если вы видите состояния, похожие на: «чтение из сети» или «запись в сеть», это подразумевает, что передача по сети напрямую влияет на MySQL. Вы также можете посмотреть результаты IOStat, чтобы узнать, сколько IO использует система. Если система находится на управляемом коммутаторе, вы также можете проверить загрузку там.

Ссылка: Показать список процессов

Ссылка: Определения статуса

...