- Что такое «разрешенная статистическая нагрузка ср» на хостинге и как выбрать необходимое значение
- Bluehost – лучший хостинг для wordpress-сайтов → детальный обзор
- Hostgator – высокопроизводительный и надёжный хостинг с безлимитными тарифами → обзор
- Litespeed cache
- Timeweb – отличный российский хостер с комплексным предложением → детальный обзор
- Timeweb — хостинг с лидерскими качествами
- Дополнительные рекомендации по оптимизации
- Использование турбо-страниц от яндекса и amp от гугла
- Как выбирать хостинг для cms
- Как выбрать хостинг для интернет-магазина
- Как проводить мониторинг vps
- Каким должен быть хостинг для интернет-магазина
- Методы исследования нагрузки на сайт
- Мой опыт использования cdn (content delivery network)
- Отключение встроенного в wordpress cron’а
- Отличия vps от vds
- Переход на php 7
- Преимущества и недостатки vps
- Причины повышенного потребления ресурсов
- Проблемы со скриптами и базой данных
- Результаты тестирования некоторых хостеров
- Статистика использования ресурсов хостинга
Что такое «разрешенная статистическая нагрузка ср» на хостинге и как выбрать необходимое значение
Любой начинающий веб-программист рано или поздно принимает решение разместить свой сайт на хостинге и начинает изучать предложения провайдеров. Тарифные планы включают в себя различные параметры, одним из которых является «допустимая статистическая нагрузка (CP)». Попробуем разобраться что это такое и на что это влияет.
Итак, вы заканчиваете работу над своим сайтом и готовитесь приступить к следующему шагу — переносу его с локального сервера своего компьютера на хостинг. При выборе тарифного плана вы обнаружили загадочную фразу: «Разрешённая нагрузка 65 CP в день». Как вычисляется данный параметр? А самое главное, максимальная нагрузка 65 CP — это много или мало?
CP (cpu points) — это величина, показывающая количество времени, потраченного процессором на обработку поставленных задач. Обычно на хостинге указывают два параметра: нагрузка на центральный процессор (CPU — Central Processing Unit) веб-сервера и сервера баз данных (MySQL).
СP показывает количество времени в минутах, затраченное на выполнение всех процессов клиента (клиентского оборудования). Например, 0,2cp означает, что время работы процессора составило 0,2 минуты (т.е. 12 секунд). Полученные в течении каждого часа данные всех клиентов складываются и заносятся в базу данных. Если полученное число превысит установленное провайдером допустимое значение, то в следующий период (час) все процессы будут работать с пониженным приоритетом. Что бы узнать допустимое максимальное значение, необходимо разрешенную нагрузку разделить на 24. Таким образом, если на хостинге этот параметр составляет 65ср, то получается 65/24 = 2,708cp в час. Это значит, что если суммарное время выполнения процессов всех клиентов составит более 2 мин. 43 сек., в следующий час приоритет будет снижен.
Измерение указанных значений производится системой Process accounting в ОС Linux; данные выводятся на панель управления хостингом (не путать с панелью управления сайтом).
В данном случае CP измеряется не в минутах, а в секундах. Фраза «разрешённая нагрузка 2500 CP для MySQL в день» означает, что допустимая суммарная нагрузка за день составляет 41 мин. 40 сек., но не более 1 мин.44 сек. в час.
Величина CP зависит от многих причин: тематики и посещаемости сайта, его настроек, наличия модулей и т.д. Чем больше востребованы пользователями материалы сайта, тем выше его посещаемость. Нельзя просто так оценить нагрузку, которую будет создавать сайт на сервер, можно только назвать прогнозируемое значение, причем лишь после детального изучения его страниц.
В большинстве случаев для первого сайта вполне достаточно того минимума, который предлагают самые простые тарифные планы хостинга. После индексации страницы сайта появятся в выдаче поисковиков; количество пользователей будет постепенно увеличиваться, а значит, возрастет нагрузка на сервер. С этого момента нужно периодически просматривать графики статической нагрузки, обычно представленные на основной странице панели управления хостингом в виде диаграммы. Если показатели приблизятся к критическим, необходимо либо поменять тарифный план, либо увеличить суточный лимит (зависит от условий, определяемых провайдером).
Bluehost – лучший хостинг для wordpress-сайтов → детальный обзор
Bluehost – это американский хостинг, работающий с 2002 года, специализируется преимущественно на CMS WordPress. Обеспечивает комплексную инфраструктуру для работы сайтов с разной производительностью и тематикой. Что примечательно, разработчики WordPress рекомендуют этот хостинг уже не первый год (номер 1 в списке рекомендаций).
Плюсы:
- Многие тарифы shared-хостинга без явных ограничений по занимаемому месту на диске, по размеру баз данных и по пропускной способности сетевого канала.
- Любой тариф включает доступ к CDN-сервису.
- Установка движков (не только WordPress) в один клик.
- WordPress обновляется автоматически силами хостинга.
- Удобная и понятная хостинг-панель.
- Есть специальные тарифы для электронной коммерции и для профессионалов.
- Отдельная линейка Managed WordPress (улучшенная производительность специально для этой CMS).
Минусы:
- Выгодные тарифы можно получить только при предоплате за продолжительный период.
- Бэкапы на стартовых тарифах нужно оплачивать отдельно.
- Техподдержка не понимает русский язык.
- Технические лимиты все же есть, хоть и тяжело достижимы для обычных сайтов.
Стоимость:
Минимальная оплата – от $2,95/месяц (для 1 сайта, диск 50 Гб), безлимитные тарифы – от $4,95/месяц. Managed WordPress – от $9,95/месяц. Специальные тарифы для WooCommerce (интернет-магазин на WordPress) – от $12,95/месяц.
Виртуальные серверы (VPS) – от $18,99/месяц, выделенные (аппаратные серверы) – от $79,99/месяц.
Hostgator – высокопроизводительный и надёжный хостинг с безлимитными тарифами → обзор
Hostgator – ещё один крупный зарубежный провайдер, который в один из периодов своей истории входил в перечень рекомендуемых для WordPress. Подходит для работы практически любых CMS-систем, есть предложения с VPS и выделенными серверами, специальные конфигурации для хостинга ПО, имеется свой собственный конструктор сайтов.
Плюсы:
- Качественная инфраструктура, ЦОДы сразу в двух локациях мира.
- Все shared-тарифы без явных ограничений и лимитов (по пропускной способности, месту на диске и размеру баз данных).
- Бесплатные домены на 1 год и перенос сайта.
- Автоматические SSL-сертификаты.
- Бесплатная круглосуточная техподдержка.
- SSH-доступ даже на shared-тарифах.
- Установка движков в один клик.
- Широкий набор основных и дополнительных услуг (есть даже высокопроизводительные тарифы специально для WordPress с включёнными опциями SiteLock и CodeGuard).
Минусы:
- Существенная скидка предоставляется только на первый период оплаты.
- Нужно знать английский для общения с техподдержкой.
- Технические ограничения для shared-тарифов всё-таки есть.
Стоимость:
Минимальные цены на классический общий хостинг – от $2,75/месяц. Специальные тарифы для WordPress – от $5,95/месяц. VPS – от $19,95/месяц, выделенные серверы – от $89,98/месяц. Тарифы на облачные конфигурации – от $4,95/месяц.
Litespeed cache
В 2020 году я перешла на использование LiteSpeed Cache. Этот плагин снизил нагрузку на сервер в 2 раза прямо сразу, но для того чтобы его использовать мне пришлось перенести сайт на новый хостинг. Чтобы плагин заработал необходим вебсервер OpenLiteSpeed, он есть не на всех хостингах.
Ниже графики нагрузки. 10 апреля 2020 я переключила сайт на новый хостинг. По вертикальной оси отложены минуты на обеих графиках. Посещаемость практически одинаковая. Причем я и по окончании сотрудничества с Sweb много работала с сайтом, т.к. перешла на новую тему и возилась с настройками и по началу я много работала с сайтом на fozzy, полностью сбрасывала кеш по 3-4 раза в день.
Плагин кеширования нужно подбирать. Total Cache предназначен больше для выделенных серверов, для виртуального хостинга это плохое решение.
Timeweb – отличный российский хостер с комплексным предложением → детальный обзор
Timeweb – уникальный российский провайдер хостинга, который использует хостинг-панель собственной разработки и предлагает большой перечень дополнительных услуг в режиме одного окна. Дело в том, что хостинг совмещает статус официального регистратора доменных имён и работает на мощностях собственного дата-центра.
Плюсы:
- Уникальная админ-панель, для управления со смартфонов предоставляются приложения под Android и iOS.
- Свой сервис web-почты (может работать с почтой для доменов).
- Конфигурация VPS-серверов может меняться на лету. Есть опция снапшотов.
- В shared-тарифы включено автоматическое резервное копирование.
- При переносе сайта от другого хостера можно перенести и неизрасходованный баланс (в рамках лимита).
- Техподдержка понимает русский язык.
- ЦОД работает в Санкт-Петербурге (минимальный пинг до клиентов из России даже без CDN-сети).
- Бесплатный тестовый период – 10 дней.
- Есть специальные тарифы для WordPress и других CMS, в том числе для 1С-Битрикс.
Минусы:
- Shared-тарифы отличаются не только лимитами на диск и на количество сайтов, но и лимитами на процессорное время/оперативную память.
- Тестовый период предоставляется только для shared-хостинга.
Стоимость:
Минимальная оплата – от ₽169/месяц, только 1 сайт, диск 10 Гб. Shared-тариф для 10 сайтов – от ₽212/месяц, уже 30 Гб диска. В тарифах можно дополнительно докупать нужные лимиты (сайты, место на диске, процессорное время и т.п.). VPS-серверы – от ₽170/месяц. Выделенные серверы – от ₽2900/месяц.
Timeweb — хостинг с лидерскими качествами
Первое место рейтинга можно смело отдать недорогому и удобному российскому хостингу Timeweb, успешно работающему на протяжении 13 лет. Ежемесячный прирост числа пользователей — 4 тысячи человек. Timeweb пр едлагает клиентам на выбор 4 тарифных плана, стоимостью от 119 до 439 рублей в месяц.
К преимуществам Timeweb относятся:
- доступная стоимость тарифных планов. Для осуществления масштабных проектов пользователям предоставляется существенная скидка. Например, такое условие выгодно для крупных торговых площадок, посещаемых игровых серверов. Многие эксперты считают, что Timeweb — самый оптимальный вариант для владельцев интернет-магазинов;
- приличный объем хранилища на жестком диске;
- десятидневный период бесплатного тестирования;
- собственный конструктор сайтов;
- гарантии на бесперебойную работу;
- простой алгоритм управления сайтом при помощи инновационной панели;
- круглосуточная сервисная поддержка;
- быстрые SSD-диски;
- поддержка всех популярных движков;
- сильный антивирусный инструмент.
Однако востребованный Timeweb имеет и некоторые недостатки. Один из них — жесткий лимит допустимой нагрузки, при превышении которого происходит блокировка аккаунта. Для увеличения лимита требуются дополнительные финансовые затраты.
Дополнительные рекомендации по оптимизации
Комплексный подход обеспечит эффективный рост производительности. Что нужно сделать:
- уменьшить скорость отдачи страниц – стабилизация работы уберет «качели» и снизит нагрузку на сервер;
- проверить код – в предыдущих пунктах об этом говорили. Повторим еще раз, что полный мониторинг выявит даже самые простые ошибки, которые ухудшают работу сайта;
- сменить CMS сайта – увесистые системы управления «едят» часть производительности. Поэтому лучшее решение – переход на более современную и легкую CMS;
- провести анализ вашего сайта и сделать его “легче” – поменяйте дизайн, удалите ненужные разделы, улучшьте навигацию – все это непременно положительно скажется на скорости сайта.
Регулярно проводите нагрузочное тестирование. Это поможет быть в курсе актуального состояния сайта и избежать неожиданных проблем.
Конечно, самый простой способ снизить нагрузку – переход на дорогостоящий тариф у хостинга или перенести сайт на выделенный сервер. Так вы предотвратите блокировку вашего ресурса. Но есть нюанс – миграция не поможет вам, если у сайта есть проблемы с оптимизацией.
Поэтому покупать дорогой тариф целесообразно, если потери производительности обусловлены ростом посещаемости сайта. Сначала проведите аудит вашего сайта и уже после исправления проблем задумывайтесь о смене тарифного пакета.
Использование турбо-страниц от яндекса и amp от гугла
Я настроила себе обе эти опции еще осенью 2022 года. Но явного снижения нагрузки на сервер не заметила. Многие жалуются напротив на возрастание нагрузки из-за постоянного сканирования страниц amp гуглом и турбо-страниц яндексом. При использовании яндекс-турбо нужно кешировать rss-ленты.
Вообще я уже почти жалею, что я связалась с быстрыми страницами от гугла и яндекса. Реально я потеряла на этом изрядную сумму, потому что настройка размещения рекламы в несколько этапов продолжалась чуть ли не 4 месяца, пришлось купить еще один плагин за 30$ для размещения рекламы на amp, мучать свой мозг настройкой adfox для показа рекламы на турбо-страницах.
Один раз после обновления плагина amp, всё пропало, на страницах amp появилась ошибка и вся посещаемость c amp благополучно перешла на обыкновенные страницы. Ничего не поменялось. Общая посещаемость осталась на том же уровне.
Использование технологий турбо-страниц от яндекса и amp от гугла никак не повлияло на нагрузку на сервер и посещаемость. Поэтому не советую.
Как выбирать хостинг для cms
Каждая CMS (система управления контентом) рассчитана на определённые условия применения, на тип сайта, на тот или иной язык программирования, на совместимость с сервером баз данных и т.п. Некоторые типы CMS, например, «безголовые» (Headless) CMS в большинстве своём требуют Node.js-среду, а классические, как WordPress или Joomla, работают одинаково хорошо на shared-хостингах, и на выделенных серверах, в качестве среды требуют связки PHP MySQL. Но та же Joomla «всеядна» и работает из коробки сразу с несколькими типами баз данных.
Поэтому от выбора CMS обязательно зависят требования к базовой конфигурации хостинга.
Покажем на примере WordPress (самая популярная CMS с открытым исходным кодом). Для работы актуального релиза движка требуется поддержка:
- стабильной версии PHP – желательно 7.4 или выше;
- MySQL версии 5.6 или MariaDB (это полный аналог MySQL) версии 10.1 или выше;
- любого web-сервера, совместимого с PHP/MySQL, но лучше всего Apache или Nginx.
Движок может работать и на устаревших legacy-версиях PHP/MySQL, но следует помнить, что их использование небезопасно из-за закончившейся техподдержки.
Под такую конфигурацию подходят, наверное, около 90% всех хостингов в мире. Но есть нюансы. Некоторые провайдеры предоставляют специальные тарифы, предполагающие (включающие) поддержку дополнительных услуг, на примере, Bluehost, которого рекомендуют разработчики движка:
- автоматические обновления силами хостинга;
- поддержка кэширования (в оперативной памяти или файловое);
- установка в один клик из хостинг-панели;
- доступ к CDN-сети (нужна для ускорения доставки статичного контента, в том числе кэшированных страниц);
- защита от вирусов и изменения кода;
- свой каталог премиум-тем (шаблонов);
- безлимитное место на диске и неограниченный объём баз данных (почти во всех тарифах).
Конечно, такие выгоды имеют решающее преимущество.
В целом, WordPress потребляет много ресурсов сервера, поэтому лучше предусмотреть рост потребления заранее.
Технические требования других движков могут отличаться, а это значит, что хостинг нужно будет подбирать с учётом их особенностей.
Как выбрать хостинг для интернет-магазина
Чисто технически для хостингов не важно, какие именно вы размещаете у них сайты: информационные порталы, блоги или интернет-магазины. Вам предоставляют вычислительные ресурсы, а вы используете их по своему усмотрению.
Но на практике, особенно для владельцев самих сайтов, отличия есть. Дело в том, что интернет-магазины предполагают работу либо специальных CMS, либо специальных плагинов для общих движков (как WooCommerce для WordPress). Некоторые страницы, особенно с фильтрами товаров, требуют намного больше ресурсов хостинга для обсчёта и вывода. Есть и другие особенности работы ecommerce-сайтов:
- Большое количество страниц (в расчёт берутся не только страницы товаров, но и специальные фильтры, страницы категорий, производителей/брендов и т.п.).
- Сложные условия формирования страниц (= увеличенный расход процессорного времени и оперативной памяти).
- Особые требования к устойчивости при повышении нагрузок (например, после запуска рекламных кампаний).
- Высокая надёжность всего хостинга (время простоя будет компенсироваться только в случае официального прописывания параметров в SLA/условиях обслуживания, а время, как известно – деньги).
- Обязательное резервное копирование.
- В идеале – наличие тестового и продакшн-сервера (один – для обкатки изменений, второй – для постоянной работы).
Как проводить мониторинг vps
Для анализа сетевой активности используется утилита atop. Она записывается в лог событий, в котором можно найти процесс, приводящий к перегрузке сервера.
В Linux Ubuntu утилиту можно установить, воспользовавшись командой из терминала:
sudo apt-get install atop
После инсталляции требуется запустить команду:
sudo atop 1
В терминале отобразится информация, разделенная на две секции. В первой — основная (загруженность CPU, RAM и диска), а во второй — данные о выбранном процессе.
Посмотреть нагрузку на сервер можно при помощи команды:
sudo atop –r
Использование дисковых ресурсов сервера можно увидеть в строке DSK («busy» — процентное соотношение текущего потребления). Если последнее значение эквивалентно 100%, это означает, что проблема заключается в операциях ввода/вывода или использовании самого VDS.
Посмотреть сетевую активность можно при помощи команды:
sudo top
Она выводит список всех процессов, работающих в системе, в режиме реального времени. Обновление экрана происходит каждые 3-4 секунды. В первых строках отображается информация о системе, а ниже — список всех процессов, который упорядочен по убыванию.
Каким должен быть хостинг для интернет-магазина
Как это отражается на выборе хостингов? Очень просто – вам нужно оценить ещё больше параметров: не только цены на тарифы и выделяемые ресурсы, но инфраструктуру хостера, коммерческую деятельность (не лишним будет оценка его, как любого другого контрагента перед заключением сделки/договора – можно даже пробить налоговую отчётность по ИНН/ОГРН, если хостер из России).
Надёжность хостера и его устойчивость к нагрузкам складывается из разных факторов, например, должна быть организована система резервного питания, несколько каналов доступа к сети (для дублирования функционала), система пожаротушения и т.п.
Те хостеры, которым нечего скрывать, предоставляют официальные сервисы мониторинга своего оборудования. Если такого сервиса нет, можно использовать данные специальных сторонних онлайн-служб мониторинга.
Высокая производительность зависит в первую очередь от выбранной конфигурации аппаратных серверов. Для коммерческих сайтов лучше всего использовать NVMe-диски (они быстрее и производительнее классических SSD-дисков).
Какие-то мероприятия вы можете организовать сами (например, систему бэкапов, CDN, файловое кеширование и кэширование в оперативную память, оптимизацию некоторых запросов к БД и т.п.).
Обязательно нужно обратиться к официальной документации выбранной CMS на предмет рекомендуемых конфигураций. Например, 1С-Битрикс предполагает, что она будет работать на виртуальном сервере с оперативной памятью от 2 Гб и более. Хотя всегда возможны компромиссы.
Методы исследования нагрузки на сайт
Существует, по меньшей мере, 3 способа проанализировать уровень нагрузки, оказываемой вашим веб-сайтом на сервер. Речь идёт об изучении логов, подробном аудите исходного кода и профилировании.
В процессе рассмотрения логов можно узнать, какие поисковые запросы чаще приводят пользователей на ваш сайт, какая категория посетителей обеспечивает наибольшую глубину просмотров и какие конкретно страницы пользуются спросом. Получить примерные статистические сводки по логам можно с помощью сервисов типа Webalizer.
Рассмотрите информацию, доступную из панели управления, и проанализируйте, каковы отличия участков логов при минимальной и максимальной нагрузке. Как правило, уже на этом этапе можно сделать важные выводы. Возможно, нагрузка возрастает в момент прихода поисковых роботов, начинающих выкачивать ресурс.
Следующий метод исследования нагрузки – аудит кода. Он подразумевает подробный разбор работы отдельных скриптов, задействуемых для решения разных задач. Проще говоря, вы должны проанализировать код и выявить в нём неоптимальные, медленные участки. Может быть, в каких-то местах можно сократить код или упростить запросы к базам данных.
Профилированием называют анализ времени выполнения отдельных частей кода, а также расчет числа вызовов функций. Профилирование выполняется для определения участков скрипта, которые нужно оптимизировать. Чтобы отследить время выполнения любой функции, в момент её вызова и после получения результата снимаются данные с таймера.
Если вы не в состоянии провести тестирование нагрузки на сайт, а хорошего программиста в штате нет, можете воспользоваться помощью онлайн-сервисов – их в Интернете хватает.
Мой опыт использования cdn (content delivery network)
Я дождалась очередного злостного письма от своего хостера Sweb. В связи с наступлением активного туристического сезона посещаемость моего сайта скачкообразно возросла и нагрузка на сервер, создаваемая процессами на моем сайте достигла критической величины 120 минут в сутки, напомню что согласно договору моему сайту положено было потреблять всего 60 минут процессорного времени в сутки.
Sweb предложил мне перейти на другой тариф стоимостью всего 800 руб. в месяц!!! Эта не гуманная сумма меня никак не устраивала, тогда я платила всего 120 руб. в месяц, повысить цену почти в 6 раз, это грабеж. В результате жаба меня задушила и я решила попробовать CDN от CloudFlare, в конце концов другого выхода у меня не было.
У CloudFlare есть бесплатный тариф, именно на него я и подключилась. Больше всего беспокойства вызывало требование переписать на CloudFlare мои DNS записи, но я сделала это, и в результате вы видите на графике нагрузка на сервер существенно снизилась до порога который Sweb склонен прощать. Момент подключения CDN я отметила зеленой меткой на картинке.
Я конечно ожидала большего, мне мечталось увидеть цифру 30 минут в сутки, но этого не произошло. CDN это система серверов по всему миру на которые копируется ваш сайт и при запросе, например идущем из США, отвечает сервер расположенный в США, а не в Санкт-Петербурге, что должно сократить время загрузки сайта и попутно этот метод сокращает нагрузку на мой сервер.
Кроме системы доставки контента CloudFlare предлагает еще защиту от DOS-атак, аналитику и минимизацию html, css, и js. Вот тут я включила минимизацию, раз CloudFlare берет это все на себя.
Бесплатный аккаунт CloudFlare имеет ряд ограничений, что вполне естественно. За один запрос посетитель может загрузить с CloudFlare не более 100Мб и сервера обновляются в течении 24 часов. Т.е. если продать ссылку покупатель увидит ее не сразу, а в течении 24 часов.
Из недостатков CloudFlare я заметила следующие:
Отключение встроенного в wordpress cron’а
В WordPress встроен аналог cron’а. Он участвует в автоматической проверке и установки обновлений самого WordPress, в публикации статей по расписанию и в других автоматизированных задачах. Cron в WordPress по умолчанию включен.
При анализе логов я обратил внимание, что количество запросов к файлу wp-cron.php превышает разумное количество, например, команда для подсчёта запросов ‘POST /wp-cron.php’ в файле access_log.2.gz:
zcat access_log.2.gz | grep 'POST /wp-cron.php' | wc -l
За сутки только для одного сайта было сделано 23674 запросов! Я полистал веб журнал — некоторые запросы отправляются каждую секунду или по несколько раз за одну секунду — это почти как маленькая DoS атака. Это не только слишком много, это просто не нужно в таком количестве.
Дело в том, WordPress инициирует запрос к файлу wp-cron.php при каждом открытии любой страницы сайта любым пользователем. Если посещаемость сайта несколько десятков человек в сутки или несколько сотен — то это более-менее нормально. Но если посещаемость измеряется тысячами, то получаются такие запредельные цифры запросов к файлу wp-cron.php.
Из такой ситуации самым лучшим является следующий выход:
- отключения автоматического cron в WordPress
- настройка автоматического cron на хостинге, которые «вручную» будет запускать cron в WordPress
Для отключения cron в WordPress откройте файл wp-config.php и добавьте туда после <?php строку:
define('DISABLE_WP_CRON', true);
Сохраните и закройте файл. Всё, теперь крон отключён. Для ручного запуска cron в WordPress, чтобы он проверил и выполнил задачи по расписанию, нужно делать запрос к файлу wp-cron.php. Для этого достаточно в веб-браузере открыть адрес вида ДОМЕН/wp-cron.php. Эту рутинную работу за нас может делать программа curl, чтобы она открывала адрес используется команда вида:
Отличия vps от vds
VPS можно считать хорошим решением для сайтов, которые быстро развиваются. Это оптимальный вариант, если выбирать между виртуальным хостингом и выделенным сервером – VDS. Вообще VPS-сервер «разбивают» на несколько виртуальных машин, которые работают как отдельные независимые сервера.
Это позволяет каждому пользователю получить куда больше возможностей в плане настройки, чем не может похвастаться виртуальный хостинг. На VPS-машину клиент сам инсталлирует операционную систему, подбирает и настраивает скрипты, добавляет свои панели управления сайтом (cPanel, ISPManager, Vesta, Agenti).
Кроме стандартного набора программ для управления сайтом, пользователи VPS могут устанавливать на свои машины много дополнительного ПО для обеспечения безопасности, аналитики, взаимодействия с CDN.
VDS – выделенный виртуальный сервер, который отличается максимальной надежностью, мощностью, безопасностью. Но, подходит такое решение далеко не каждому сайту. И вот по каким причинам:
- Новичку нереально даже за неделю освоить все принципы и правила настройки сервера.
- Стоимость VDS самая высокая на рынке.
Но, зато вам предоставляется максимальный контроль над своими проектами. Плюс, вы всегда будете уверены в сохранности своих файлов, надежности работы программного обеспечения.
Вы сможете не только балансировать нагрузку на серверные мощности, но и на свое усмотрение инсталлировать другие операционные системы, выбирать оптимальные варианты и систематичность резервного копирования данных, устанавливать автомиграции проектов, подключать/отключать выделенные IP-адреса.
Переход на php 7
В октябре 2022 меня постигло очередное горе. После обновления wordpress и плагинов, нагрузка на сервер опять значительно возросла, это при том, что в сентябре посещаемость по сравнению с июлем меньше. В логах ошибок на сервере чисто. Вообще эта картина довольно типична, когда после обновления плагинов возрастает нагрузка на сервер.
Я перевела сайт на php7. Это было не просто. Сначала при переключении вместо своего сайта я видела белую страницу с надписью:«Ошибка соединения с базой данных». Хостер мне не смог помочь советами, пришлось разбираться самостоятельно. Оказалось я использовала устаревшее соединение с базой данных.
После переключения нагрузка на сайт начала зашкаливать за разумные пределы, вопреки многочисленным предсказаниям о том, что она просто обязана упасть. Еще несколько дней раздумий и экспериментов и я решила и эту проблему. Оказалось в function.php моей темы я добавила (по советам от опытных вебмастеров из интернета) функцию, которая содержала в себе лишний цикл, давно уже.
Однозначно рекомендую переключить сайт на PHP7 и выше. Эта мера реально приводит к снижению нагрузки на сайт.
Преимущества и недостатки vps
Плюсы использования VPS:
- абсолютная независимость от других веб-проектов. Вам не придется «делить» мощности сервера с тысячами других сайтов;
- отдельный IP-адрес, который не позволит другим сайтам, находящемся на том же IP (как в случае с обычным хостингом) навредить вашему проекту;
- более совершенные и мощные параметры «железа»;
- индивидуальный доступ ко всем настройкам сервера;
- личная операционная система со всеми необходимыми установленными программами.
Минусы VPS:
- довольно высокая цена за аренду сервера;
- сложность настройки для новичка.
Но, вышеописанные недостатки скорее условные, так как если ваш сайт со временем станет более раскрученным, то и денег с него вы будете иметь больше. То есть, вам не составит никаких проблем оплатить виртуальный сервер.
Также, если перейти с упрощенной системы управления хостингом на более продвинутую и «замороченную», то вы сможете либо постепенно разобраться со всеми тонкостями настройки, либо обратиться за помощью к профессионалам на том же хостинге.
Чтобы оценить VPS, можно использовать те же советы, что были расписаны для обычного хостинг-провайдера. Но, при выборе выделенного сервера нужно обращать внимание и на дополнительные нюансы, о которых далее.
Причины повышенного потребления ресурсов
В случае превышения установленных лимитов по тарифу, на контактный e-mail договора отправляется уведомление о необходимости проанализировать ситуацию и принять меры по снижению нагрузки на хостинг.
Основные причины повышенного потребления ресурсов:
- Использование ресурсоёмкой CMS, например 1C-Bitrix. Выбирайте адаптированный хостинг для CMS-систем.
- Высокая посещаемость сайта. В этом случае рекомендуем переход на высокопроизводительный тариф виртуального хостинга или VDS.
- Неоптимизированные скрипты на сайте — скрипты, алгоритм выполнения которых является неэффективным. Например: подсчёт заведомо известных данных, неоптимальные методы расчёта, лишние циклы и др.
- Неоптимизированные запросы к базе данных MySQL. Проблемы могут возникать из-за неправильно сформированных индексов, большого объёма выбираемых данных, большой вложенности запроса и т.д.
- Активность поисковых роботов. Роботы могут замедлять работу сайта, если их много и они проводят одновременное сканирование для обновления своей поисковой базы.
- Вредоносный код на сайте. Нагрузка на сервер может быть вызвана работой вредоносных скриптов на хостинге.
Проблемы со скриптами и базой данных
Сложности с базой данных чаще всего возникают на сайтах с большим количеством контента и высокой посещаемостью. К таким сайтам относятся интернет-магазины, сайты-агрегаторы, крупные новостные порталы. Скорость работы на них зависит, в первую очередь, от скорости выполнения скриптов и запросов к базе данных.
Оптимизация скриптов. На их выполнение должно уходить минимум оперативной памяти и времени. Вот несколько советов:
- Кешируйте данные, которые редко обновляются. Если для генерации страницы нужно выполнить запрос к БД, данные которой не обновляются каждые несколько минут, имеет смысл сохранять результаты запроса в файле. Если файл небольшой, получить готовый результат из файла проще, чем обратиться к БД. Можно кешировать результаты генерации HTML-кода, как описано выше.
- Используйте актуальную версию PHP. Переход на новую версию PHP почти всегда повышает производительность сайта. К тому же с новым релизом закрываются уязвимости и появляются новые возможности, удобные для разработчиков. Но учтите, что смена версии PHP — это сложно, долго и часто требует доработки кода сайта. Но замена версии PHP оправдана, если другие способы повышения производительности не сработали.
Оптимизация запросов к БД. Главные требования:
- используйте индексы во всех запросах для выборки данных;
- старайтесь создавать запросы так, чтобы при их выполнении по минимуму использовались временные файлы и операции сортировки в файле (filesort);
- минимально используйте временные файлы и операции filesort.
Чем быстрее сервер базы данных выполняет запросы, тем быстрее он получит необходимые данные, сформирует ответ клиенту и освободит память.
Все эти данные для каждого из запросов можно получить с помощью команды EXPLAIN в соответствии с документацией по MySQL.
Иногда медленные запросы появляются случайно, например, как результат мгновенной нагрузки на сервере. Но если ситуация повторяется системно, значит, проблема в неэффективных запросах. Для сайтов на WordPress проверить наличие медленных запросов к базе можно с помощью плагинов Query Monitor или Debug Bar.
Результаты тестирования некоторых хостеров
Давайте разберём для примера проверку хостера «Provisov»:
- Чёрный график всегда ровный – количество виртуальных посетителей
- Сиреневый – среднее время загрузки страницы
- Красный – среднее время загрузки со всеми элементами
- Жёлтый – сколько раз успел загрузить страницу за 1 секунду
Результаты хорошие, время загрузки небольшое и плавно увеличивается. Перейдём на вкладку «Bandwidth»
Здесь наблюдаем пропускную способность канала между вами и хостером, со скидкой на скорость вашего интернет-подключения. Эта информация не особо отличается между разными компаниями, и в основном упирается в скорость и способность сервера отдать контент.
Следующая вкладка «Errors». Здесь статистика по ошибкам:
Многовато. В идеале ошибок должно быть ноль, но такое редко встречается. Бывает, что по всем графикам красота, а ошибки зашкаливают. Значит просто не получена информация с сервера.
Для сравнения возьмём хостинг «Timeweb»
Результаты плохенькие, время загрузки с элементами страницы – большое! Соответственно, мало страниц в секунду загружается. Ошибки также присутствуют:
Обновление 2020: прошло несколько лет, и провайдер Timeweb стал одним из лидеров ниши, теперь используются мощные сервера.
А вот провайдер «Appletec»
Тоже так себе, очень нестабильно.
Внимание! Ваш ресурс может работать по-другому, необязательно учитывать мои результаты за основу при выборе хостинга для себя!
Хостинг «Link-Host», графики производительности:
Красота, а теперь посмотрим на ошибки:
Примерно 10% всех запросов выполнены с ошибками, то, о чём я чуть выше писал. Вот за счёт этого и красота, такое обхожу стороной. Некоторые хостинги очень разочаруют, например «Netangels» оказался вообще никакущим, страница ошибок:
Статистика использования ресурсов хостинга
На каждой услуге виртуального хостинга RU-CENTER ведётся учёт использования следующих ресурсов:
- Оперативная память — размер выделенной памяти для работы программного обеспечения на хостинге, устанавливается в мегабайтах в соответствии с тарифным планом.
- Процессорное время — время в секундах, которое потратил процессор сервера на выполнение задачи, например, скрипта сайта. Значение лимита 50% на процессорное время в тарифном плане означает, что за период в 1 минуту скрипт может полностью использовать 1 ядро процессора в течение 30 секунд. Лимит 200% означает, что за период в 1 минуту допустимо использовать полностью 2 ядра процессора, то есть 120 секунд процессорного времени.
- Число дисковых операций — количество операций ввода-вывода, выполняемых системой хранения данных за минуту.
- HDD чтение — скорость чтения информации с диска сервера, мегабайт в минуту.
- HDD запись — скорость записи информации на диск сервера, мегабайт в минуту.
Информация об использовании ресурсов размещена в разделе Ресурсы → Статистика панели управления хостингом.
При нажатии на график происходит переход к детальной информации по использованию отдельного ресурса:
При наведении курсора на точку графика, вы увидите потребление ресурсов в этот момент времени.