Тестирование производительности сервера MySQL на основе существующей системы данных
Этот вопрос связан с сравнительным анализом не только текущей системы, но и текущей системы + текущие данные.
Позвольте мне начать вопрос с примера:
Предположим, что у меня есть компания, которая предоставляет интерфейсы / системы управления школам, которые помогают им управлять канцелярской деятельностью. Предположим, что все данные всех школ размещены на одном сервере с MySQL 5.7 как dbms. Обратите внимание на следующую информацию:
- Есть 1000 школ.
- 995 из этих школ фактически принадлежат родительской организации XYZ Inc., и они готовятся к сдаче выпускных экзаменов для всех учащихся в своих школах (всего 995) во всех классах.
Следовательно, записи студентов должны быть добавлены не только в таблицу учеников, но и
a. class-teacher table b. Exam table c. and let's say 8 other tables.
- Это было предпринято XYZ Inc. ранее, и было установлено, что
Вложение 4 студентов заняло в среднем 8 минут, когда использовались 4 параллельных соединения. Мало того, школа хотела получить более быстрые результаты и начала использовать еще больше параллельных соединений, и система потерпела крах при 16 параллельных соединениях.
Однако теперь система была изменена (обновлен MySQL, оптимизирован дизайн схемы, реплики чтения и т. Д.) И
Я хочу знать, какова средняя производительность системы (студентов / минуту) и абсолютное количество максимальных подключений, которые можно установить (при такой нагрузке, которая была наложена ранее)?
Теперь я знаю, что инструменты бенчмаркинга, такие как
- SysBench
- DBHammer
- Тест Перконы TPC-C
существуют на рынке, но во всех этих тестах система тестируется, фиксируя данные. Они дают хорошее представление о пропускной способности системы в целом, но не говорят мне, насколько хорошо будет работать моя система, когда она подвергается воздействию этих данных вместе с такого рода нагрузкой. Я знаю, что один будет думать,
"Просто напишите скрипт для загрузки данных, а затем напишите процедуру в MySQL для выполнения таких транзакций, которые эмулируют вашу ситуацию с XYZ Inc."
Хотя это очень возможно, это не умно. Причина в том, что текущее состояние общей сложности транзакций с XYZ Inc. является относительно простым. Могут существовать системы, в которых сложность транзакций намного выше. Для этих систем количество времени и ресурсов, которые могут потратить на разработку этих сценариев и процедур, может быть довольно много.
Следовательно, какое программное обеспечение (если таковое имеется) существует для исправления такого рода ситуации?
Спасибо.