У меня растущий веб-сайт, который теперь использует один обычный сервер MySQL для своих задач. Интересно, как и когда мне следует перейти на более мощные серверы или, другими словами, когда лучше всего использовать зеркальные серверы или сетку или другой сервер, кроме одного обслуживающего?
Как я мог узнать, что мои веб-приложения нуждаются в улучшенных решениях и конфигурациях серверов баз данных? Я знаю, что могу изучать использование и нагрузку на серверы, но поскольку у меня недостаточно опыта в управлении и разработке крупномасштабных веб-сайтов, мне нужны советы о том, как настроить сервер (-ы) MySQL для быстрорастущего веб-сайта? какие лучшие практики?
Стандартные системные метрики могут дать хорошее представление о том, насколько ваша производительность ограничена в настоящее время, но они не измеряют производительность напрямую.
Для решений для толстых клиентов довольно сложно измерить производительность.
Для встроенных приложений легко измерить, поглощает ли ваша база данных данные так же быстро, как они создаются - вы либо получаете неприемлемые задержки, либо выпадения данных.
И в вашем случае, для веб-приложений, измерения снова просты (начните регистрировать и анализировать время ответа HTTP - NB в Apache использует% D, а не% T).
Кроме того, вам необходимо решить, какой уровень производительности вам действительно нужен - чем быстрее, тем лучше, но это должно компенсироваться затратами на достижение такой производительности.
Мне нужны советы о том, как настроить сервер (ы) MySQL
Список чтения Провидицы Фрэн.
Обратите внимание, что нет волшебной пули (хотя mysqltuner.pl обычно дает хорошее начало для настройки параметров СУБД). Наибольшие преимущества будут получены от хорошей архитектуры / дизайна оборудования и настройки приложений - и то, и другое зависит от хорошего анализа достоверных данных.
«Я знаю, что могу изучить использование и нагрузку на сервер»
Вы знаете, что делать тогда :)
Первое, что вам нужно сделать, это надлежащая система мониторинга / графиков, чтобы иметь хорошую видимость производительности базы данных. Время от времени проверяйте его, выясняйте, какой является «базовый уровень» производительности вашей базы данных, и следите за ним.
Сопоставьте эти показатели с производительностью приложений, узнайте, как время отклика базы данных влияет на взаимодействие пользователя с веб-сайтом и процессы. Как только вы обнаружите, что сторона базы данных действительно ухудшает работу приложения (профилируйте ее, выясните, какой% времени ответа используется в серверной части базы данных), тогда начинайте беспокоиться об этом и принимать меры.
Перед началом масштабирования (увеличения и / или уменьшения) развертывания сервера базы данных попробуйте улучшить приложение и стороны SQL. Никогда не недооценивайте, насколько вы можете улучшить производительность, настроив планы выполнения и (правильную) индексацию. Обычно это быстрее и дешевле, чем масштабирование инфраструктуры.
Я рекомендую вам взглянуть на эти книги, они могут вам помочь: