Иногда встречается следующая ситуация: Ваш ресурс работает медленно, несмотря на то, что сервера хостинга не загружены (это можно понять после консультации со службой поддержки).
Из этого документа вы узнаете причины этого явления и сможете принять решение о ваших дальнейших действиях.
Ряд проблем можно решить.
В том случае, если вы хотите узнать причины проблемы, вы можете читать дальше.
Нормальная скорость работы сайта на общем сервере виртуального хостинга - открытие страницы за 2-5 секунд. Обычно сайт открывается гораздо быстрее, типично, веб-сервер обслуживает более 98% запросов к страницам сайта менее чем за доли секунды, но нагруженный сайт может открываться 2-5 секунд и это является нормальной скоростью его работы.
В том случае, если сервер занят или вы выполняете особенно трудный для сайта запрос, открытие страницы может занимать 5-15 секунд, это не должно происходить часто, но если сайт иногда открывается с такой скоростью, то это является нормальным.
Скорость работы сайта сильно зависит от его посещаемости. Чем ВЫШЕ посещаемость сайта, тем ЗНАЧИТЕЛЬНО БЫСТРЕЕ он будет работать.
Верно и обратное: если посещаемость сайта близка к нулю (т.е. сайт открывается реже чем один раз в 10-20 минут), то добиться его быстрой работы значительно труднее. Сервер просто не готов быстро сформировать страницу сайта, так как данные сайта не находятся в памяти сервера и не готовы к быстрой работе. Считывать данные с жесткого диска значительно медленнее.
Сайт, посещаемость которого очень низка, первый раз может открываться долго, до 30-60 секунд. Это неизбежная проблема непосещаемого сайта - "холодный старт". Вы можете либо просто дождаться реальной работы вашего сайта, тогда его скорость придет в норму, или создать искусственную посещаемость. Например, с помощью раздела личного кабинета "полный список функций", "выполнение скриптов по расписанию (CRON)" вы можете открывать главную страницу вашего сайта раз в 3-5 минут. Делать это не рекомендуется, так как это лишняя нагрузка на ваш сайт.
В любом случае, скорость работы непосещаемого сайта будет существенно плавать. Эффект "холодного старта" на общем сервере неизбежен.
Если вы хотите добиться быстрой работы непосещаемого сайта, вам нужна технология виртуального выделенного сервера с жестким разделением ресурсов - это https://www.1gb.ru/phv и https://www.1gb.ru/pnv. Технология виртуализации OpenVZ (https://www.1gb.ru/pvz) в данном случае не поможет решить проблему.
Сайт со сложной базой данных может работать медленно из-за проблем с базой данных. Чаще всего это происходит потому, что запросы к базе данных не приспособлены к виртуальному хостингу. Посмотрите "полный список функций", "медленные SQL запросы", возможно это поможет вам понять проблему.
Посмотрите также статью "проблема медленных SQL запросов".
Скорее всего, вам нужен свой mySQL сервер. Это можно получить либо на своём физическом сервере (предпочтительно, у нас нет таких услуг), либо на виртуальном сервере - см. https://www.1gb.ru/phv, https://www.1gb.ru/pnv и https://www.1gb.ru/pvz.
Если ваш сайт требователен к процессору (это может быть ясно из "статистики процессорной нагрузки" в личном кабинете), то понять проблему вам может этот раздел.
Время выполнения скрипта – время, за которое сервер формирует содержимое страницы сайта.
Процессорное время – время работы свободного от других задач процессора, которое требуется для выполнения скрипта.
Пример: Если процессор сервера не занят, процессорное время примерно равно времени выполнения скрипта. Если процессор сервера занят на 50%, время выполнения скрипта будет в два раза больше процессорного времени, которое затрачивается на генерацию страницы.
Суть услуги виртуального хостинга заключается в том, что на одном физическом сервере работает множество сайтов. Сервер способен обработать около сотни запросов в секунду, и этими ресурсами сервера пользуются сайты клиентов. Средняя нагрузка сервера поддерживается на таком уровне, чтобы сервер никогда не был занят на 100%, при этом на каждый новый запрос клиента гарантируются свободные серверные ресурсы, позволяющие его обслужить.
В нормальном режиме работы на один запрос к странице сайта (скрипту) обычно затрачивается в среднем около 1% ресурсов сервера, от 0.01 до 0.1 секунд процессорного времени. Сервер хостинга не предназначен для ресурсоемких операций запросов.
Поскольку одновременно исполняется десятки процессов, реальное время генерации страницы в несколько раз больше процессорного времени, которое требуется для работы скрипта.
Пример: Стандартным общепринятым временем генерации страницы портала PHP Nuke или форума PHPBB является от 0.2 до 0.5 секунд – это считается нормальной и даже хорошей скоростью генерации страницы. Однако полностью свободный сервер смог бы справится с такой операцией гораздо быстрее, почти мгновенно, ведь типичное процессорное время на генерацию страниц этих проектов – от 0.03 до 0.1 секунды.
Некоторые системы работают таким образом, что обработка одного запроса может занимать существенное процессорное время. Например, обработка поискового запроса форума PHPBB может занимать около 1 секунды процессорного времени. Такая «тяжелая» страница формируется от 3 до 10 секунд, в зависимости от загрузки сервера. В качестве исключения для построения отдельных сложных страниц проекта такая задержка является нормальной.
Некоторые портальные системы, среди них Joomla, Wordpress, "Битрикс", некоторые другие, потребляют около 0.5 - 1 секунды процессорного времени на создание каждой страницы, включая главную страницу проекта. Это принципиальный недостаток (ошибка), которую допустили разработчики этих систем, или программист проекта, если система сайта – его собственная разработка.
Для нашего примера, если сервер абсолютно свободен, страница будет сформирована за секунду (но не быстрее!). Это уже не является хорошим результатом. На практике для нормально работающего сервера хостинга, который работает в штатном режиме, формирование такой страницы может занимать от 3 до 10 секунд.
Исходя из принципов работы виртуального хостинга, которые описаны выше, более быстрая генерация страниц сайтов для таких проектов невозможна. В том уникальном случае, если сервер хостинга свободен более чем на 80% и заметных конкурентов у вас нет, время генерации страниц может временно подниматься до 1 – 2 секунд. Однако не нужно обольщаться, ни один провайдер виртуального хостинга не поддерживает столь низкую нагрузку серверов.
Для ускорения работы подобного проекта есть единственный вариант – выделенный сервер, процессор которого не загружен обработкой других запросов. Таким образом, время генерации страниц будет сравнима с процессорным временем.
Отчасти поможет виртуальный выделенный сервер (https://www.1gb.ru/phv и https://www.1gb.ru/pnv, полная виртуализация, или в меньшей степени https://www.1gb.ru/pvz, частичная виртуализация)
Заметим, однако, что даже в режиме выделенного сервера возможна генерация не более 45 страниц в минуту – больше не позволит процессор. Это дает всего около 25 000 посещений в обычный 10 часовой день (около 5 000 – 10 000 уникальных пользователей) даже на выделенном сервере. Для серьезного проекта это очень маленькие цифры.
Если на генерацию одной страницы вашего проекта требуется более 0.5 секунд процессорного времени – это тревожный знак, говорящий о том, что у вашего проекта сложное будущее, и вам нужно задуматься об используемых технологиях и системах.