Назад | Перейти на главную страницу

Настройка MySQL и Linux специально для уменьшения максимального времени отклика

У нас есть приложение на основе MySQL, которое очень чувствительно ко времени отклика. Хранимая процедура MySQL должна отвечать в среднем менее чем за 10 миллисекунд, а максимально допустимое время ответа составляет 50 миллисекунд. Мы показываем среднее время отклика с честью (больше похоже на 3 миллисекунды), но в течение пятичасового нагрузочного теста мы получим некоторые (~ 50) откликов длительностью более 50 миллисекунд с максимальным временем отклика, иногда достигающим 265 миллисекунд.

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

Как я могу диагностировать причину этих выбросов времени отклика и какие настройки Linux и MySQL я могу применить для их уменьшения?

Вот несколько советов по повышению производительности MySQL:

1- Создайте индексы для полей, используемых для выбора вопросов, чтобы повысить скорость.

2- Храните небольшое количество записей, если это возможно, в одной таблице.

3- Используйте движок Myisam, поскольку он обычно быстрее Innodb, если вам не нужны транзакции и чужие ключи.

4- Оптимизируйте свои запросы.

5- Запустите mysql на выделенном сервере, если это возможно, и отключите ненужные службы, чтобы сэкономить ресурсы сервера.

Какой здесь уровень отклонения? Если вы соблюдаете средний SLA, то всегда будут некоторые выбросы, которые составляют три, четыре и пять стандартных отклонений. Что-то, с чем вам нужно будет разобраться в отношении SLA, - это какой уровень исключения допустим для вашего максимума?

Несколько лет назад Motorola выпустила отличный рекламный ролик, в котором рассказывалось о принципах производства шести сигм и в качестве аналогии использовался игрок в гольф, в котором отмечалось, что уровень их дефектов был аналогичен отсутствию одного удара за 100 лет. Ключевым моментом здесь является то, что единственным исключением за 100 лет был допустимый уровень исключения. Стоимость перехода от 1: 100 000 до 1: 1 000 000 может быть невероятной за небольшую отдачу.

Вы отметили 50 исключений на уровне 50 миллисекунд. Это из общего размера выборки ??? Допустима ли / желательна ли такая ставка исключения с точки зрения бизнеса с учетом затрат, необходимых для снижения ставки?