Находя оптимальный баланс ввода-вывода, ЦП и RAM для MySQL

Удаленный рабочий стол. Это точно не похоже на это, но делает задачи, что Вы приучены к в соответствии с Linux.

Раньше был сервер telnet в окнах, но telnet слишком небезопасен в эти дни.

0
задан 2 June 2011 в 09:20
3 ответа

Нет никакого единого решения каждой среды, но процесс настройки производительности всегда является тем же. Настройка производительности является итеративным процессом:

  1. Сравнительный тест и метрики дорожки
  2. Найдите узкие места
  3. Узкие места твердости
  4. Повториться

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

Главным искать на всех уровнях анализа производительности является задержка. Какие операции приведение в рабочее состояние большая часть времени? Какие операции находятся в критическом пути пользовательского действия? Задержка в критическом пути является прямой мерой пользовательской боли, тогда как другие метрики как пропускная способность, iops, CPU и использование памяти не имеют очевидного значения.

Определите свои медленные запросы и оптимизируйте их - если это возможно, перепишите запрос или добавьте индексы, но в противном случае добавьте аппаратные средства. Если Ваши метрики покажут, что большая часть времени запроса проведена, ожидая для чтения из диска, то добавление памяти для увеличения кэша поможет разрешить то узкое место. Если большая часть времени проведена, ожидая, чтобы записать синхронно в диск, получить больше дисков или получить более быстрые диски (например, SSD). Если большая часть времени проведена, ожидая в течение процессорного времени или на ЦП, доберитесь больше или более быстрые центральные процессоры.

Если у Вас есть возможность выполнить Вашу базу данных по системе с DTrace, прочитайте книгу DTrace Brendan Gregg, и просвещены.

3
ответ дан 4 December 2019 в 11:20

В течение долгого времени я хотел знать, как MySQL масштабируется, поскольку Вы добавляете больше памяти к серверу

В значительной степени как Oacle, SQL Server и все другие серверы баз данных. Физика операций базы данных под Кислотными средами не изменяется.

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

Каков оптимальный автомобиль?

Тот же ответ: IT ЗАВИСИТ. Вы не говорите ничего соответствующего для ответа, проголосовавший для закрытия.

Посмотрите, я выполняю SQL-сервер. МАЛЕНЬКАЯ установка - ТОЛЬКО 16 ГБ памяти, 4 ядер, 8 быстрых жестких дисков и 1 ssd + загрузочный диск. Да, это является маленьким - в другом мире (anothe контракт) я работаю над оракулом exadata с 21 000 ГБ пространства базы данных, которое стоит больше, чем самые супер спортивные автомобили. Поскольку нам нужен он. Мое следующее обновление моего sql служит, rwill имеют место для 80 дисков, 128 ГБ памяти и получают намного больше ssd. Большинство людей здесь считало бы это большим, я считаю это хорошим низкокачественным сервером.

Можно быть в лиге, где Вы думаете, что SSD на 60 ГБ является дорогим. Вы не говорите. Вы ничего не говорите о том, что необходимо сделать, сколько загрузки Вы имеете. На что Вы ожидаете, что мы ответим?

Единственный разумный ответ: настройте свой bottlenexks и запланируйте расширение. Например, SuperMicro имеет хорошие 4 единицы высоты монтируемого в стойку устройства высокие случаи сервера максимум для 72 дисков плюс mobherboard. 2 единицы высоты монтируемого в стойку устройства = 24 диска. Один из них дает Вам в компьютерной масштабируемости. Получите много мудрую плату ЦП процессора, thn включают тот. То же с RAM. Разрешите bottlnecks, как они появляются. Знайте то, что Вы делаете ;) Сокращение системы complexitiy является бесполезной операцией, когда Вы получаете базу данных более высокого уровня. Это похоже на пятизвездочного повара, говорящего, что он не хочет готовить, и скорее предпочитает заранее приготовленную еду. Системы баз данных более высокой производительности сложны. Соглашение с ним.

2
ответ дан 4 December 2019 в 11:20

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

Поскольку O/S не знает о структурах данных MyISAM, он не даст предпочтения индексным страницам базы данных кроме должного к сходству того, чтобы быть среди "последний раз используемых" данных базы данных. Любой "надлежащий" DBMS в вычислительном мире сделал бы собственное управление памятью, иногда даже владел бы управлением потоком на операционной системы, поскольку оптимизация производительности имеет размеры - таким образом уделяющий первостепенное значение для индексации таблиц при кэшировании и отъезде измененных страниц строки данных в памяти некоторое время прежде, чем записать им в диск ("ленивый писатель").

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

И если Вы ищете сбалансированную и настраиваемую производительность с "реальными" запросами (больше, чем "ВЫБОР * от ПРЕДЕЛА 10" используемый для приложений PHP), необходимо определенно смотреть вокруг для другого DBMS.

1
ответ дан 4 December 2019 в 11:20

Теги

Похожие вопросы