Чтобы дать вам небольшую справку, в настоящее время у меня есть веб-сайт, который позволяет пользователям загружать фотографии. Первоначально веб-сайт находился на общем сервере GoDaddy, но недавний всплеск трафика вынудил меня изучить другие варианты. В часы пик сайт содержит более 400 активных посетителей, что в сочетании с загрузками пользователей приводит к отключению общего сервера.
У меня небольшой опыт настройки серверов через AWS, и я пытался разместить веб-сайт на экземпляре c1.medium, Amazon Linux. Веб-сайт вместе с базой данных MYSQL находится в том же экземпляре. Хотя я читал, что это в целом осуждается, я также читал, что перенос базы данных в другой экземпляр не приведет к значительному увеличению скорости. К сожалению, экземпляр c1.medium также не смог поддерживать трафик, и вскоре я получил сообщение об ошибке «Установление соединения с базой данных». Сайт иногда загружается, поэтому проблема связана с нагрузкой трафика, а не с базой данных.
У меня вопрос, связана ли проблема исключительно с MySQL? Размер самой базы данных при резервном копировании составляет около 250 МБ. Проблема вызвана запросами ввода / вывода к базе данных? Я читал сообщения с людьми с похожими проблемами, в которых они заявляли, что установка MySQL 5.6 решила проблему, но также читал, что MySQL 5.6 медленнее MySQL 5.5, моей текущей версии.
После проведения некоторых предварительных исследований я начал верить, что могу решить проблему, увеличив IPOS EBS. Первоначально я установил IPOS в качестве стандартного, но изменил его на Provisioned IOPS и 30-кратный размер EBS (то есть 60GB - 1800 IOPS). Это опять же оказало небольшое влияние. Мне нужно обновить свой экземпляр? На какие меры следует ориентироваться при выборе экземпляра? Похоже, что самым дешевым экземпляром с высокой сетевой производительностью и оптимизацией для EBS будет c3.xlarge. Предложения?
Я бы посмотрел на настройки MySQL. По моему опыту, стандартный my.conf (/ etc / mysql) на всех дистрибутивах, которые я использовал до сих пор, далеко не оптимизирован для вашей работы. Имея у себя веб-серверы с большой пиковой нагрузкой на Amazon, я могу только посоветовать вам пересмотреть my.conf. Мои настройки на m1.large: key_buffer = 8G (по умолчанию 384 МБ). Также увеличьте query_cache_limit и query_cache_size.
Лучшим подходом к этому было бы наличие двух серверов. Я бы нашел провайдера, который поддерживает внутреннюю сеть между виртуальными хостами, чтобы трафик не перенаправлялся в Интернет из ящика A и не возвращался обратно в ящик B.
Amazon - крупный поставщик услуг, но в конечном итоге ваш нынешний подход не соответствует вашим потребностям.
Другие постеры абсолютно правы в отношении того, как mysql и веб-сервер будут вести борьбу за ресурсы. Сразу я могу думать только о том, что ваше приложение неправильно закрывает соединения.
Установление соединения с базой данных.
Вам нужно установить, в чем проблема:
Непонятно как решить. Вам нужно приблизиться к основной проблеме. Это поможет сделать следующий шаг.
Лучше всего воспроизвести проблему по запросу, чтобы вы могли изучить потенциальные проблемные области.