Наш shared hosting на GoDaddy начал периодически выдавать 500-ю ошибку. Как выяснилось, иногда PHP не может подключиться к MySQL. Это происходило пару раз в день, и сайт либо полностью умирал, либо работал кое-как. Минут через 10-20 всё проходило само собой. Обращение в службу техподдержки ничего не дало, конечно: "Мы не можем вопроизвести Вашу проблему; позвоните именно в тот момент, когда снова такое повторится".
Я заменил mysql_pconnect на mysql_connect; убедился, что все скрипты закрывают соединение с базой; оптимизировал некоторые "тяжелые" запросы. Кажется, это немного помогло, но радикально проблему не решило.
Решил искать новый хостинг. Если помните, для меня это не совсем простая задача, потому что нужна поддержка PHP, MySQL, MS SQL и ASP.NET 3.5 одновременно. Решил попробовать WebHost4Life, тем более, что у них в течение 30 дней можно попросить назад деньги. Сайт заработал не сразу, было три проблемки из-за разных настроек PHP и IIS. Служба техподдержки была вполне отзывчивой, гораздо лучше, чем в GoDaddy. Отвечали они не так чтобы очень быстро, но у меня не горело (это было тестовый сайт). Для боевого сайта, я думаю, стоит купить Premium-поддержку, чтобы отвечали быстрее.
У меня создалось впечатление, что WebHost4Life - это не очень большая фирма, у которых не всё работает гладко.. но зато видно, что они постоянно стараются что-то улучшить, дать возможность пользоваться самыми свежими технологиями. Как пишут люди на форумах, они вполне могут по твоей просьбе поставить на сервер что-то именно для тебя. В GoDaddy такое невозможно. Там надо, чтобы тысячи людей попросили, и только тогда они начнут чесаться. Мне очень понравилось, что у WebHost4Life есть мини-блог, где в основном они честно описывают свои проколы, примерно в таком духе: "01 марта - сломалось то-то; 02 марта - починили... 03 марта - поставили новую контрольную панель, а она глючит... пока думаем, что делать..."
Ещё важный для меня момент - ASP.NET-приложения работают у них в full trust, т.е. можно использовать практически все, что хочешь.
К сожалению, я всё же решил отказаться от их услуг: не знаю, почему, но уж очень медленно работает MySQL. Может, дело не в них, а в моем сайте... но, с другой стороны, в хорошие времена тот же самый сайт с той же самой базой работает на GoDaddy в два раза быстрее. Деньги мне вернули, как и обещали.
А с GoDaddy мне пока удалось решить проблему таким образом: я сделал backup базы, создал новую базу и сделал в неё restore. После этого (тьфу-тьфу!) всё стало шикарно работать. Я не знаю, что произошло: может, новая база физически создалась на другом сервере, где хостится меньше сайтов; а может, глючило потому, что у меня был разрешен внешний доступ к базе (сейчас я на всякий случай его отключил); а может, в MySQL тоже бывают битые индексы, как в FoxPro? Но в таком случае почему проблема проявлялась не всегда, а только пару раз в день?
Во всяком случае, старый добрый способ "всё перезагрузить" на это раз сработал. Ну, и хорошо.
2 комментария:
Я могу ошибаться на счёт MySQL, но для остальных SQL-серверов большое значение имеет статистика, которая должна собираться автоматом раз в некий период... Возможно тут и кроется проблема..
А может просто надо отдефрагментировать раздел.
База была восстановлена из бакапа, т.е. по идее статистика должна быть сама свежая. Хотя иногда бывает, что как раз лучше работает без актуальной статистики. В большинстве таблиц не больше нескольких тысяч записей.
Отправить комментарий