В период высокой посещаемости ваш сервер должен иметь возможность обрабатывать все запросы посетителей вашего сайта. Но есть некоторые ограничения в одновременных соединениях, обрабатываемых сервером. Поэтому лучше всего обслуживать запросы страниц как можно быстрее.
Вот несколько предложений для рассмотрения в этих ситуациях,
Улучшения уровня приложения:
1. Минимизируйте HTTP-запросы для ускорения загрузки страниц.
а) Объедините все файлы JS вместе в один объединенный файл JS, и все файлы CSS в один объединенный файл CSS.
б) Сократите файлы JS и CSS, чтобы уменьшить размер файла и ускорить его загрузку.
в) Использование CSS-спрайтов - когда вы объединяете большинство или все ваши изображения в спрайт, вы превращаете несколько запросов изображений в один. Затем вы просто используете CSS-свойство background-image для отображения нужного вам фрагмента изображения.
г) задерживать загрузку изображений с отложенной загрузкой, это будет полезно для уменьшения http запросов.
2. Подготовьте легкие страницы, которые ожидают больше посещений:
а) по возможности исключайте декоративные элементы, такие как изображения или Flash; используйте текст вместо изображений в навигации по сайту и в Chrome и поместите большую часть контента в HTML.
б) использовать статические HTML-страницы, а не динамические; последнее увеличивает нагрузку на ваши серверы. Вы также можете кэшировать статический вывод динамических страниц, чтобы уменьшить нагрузку на сервер.
Улучшения на уровне сервера:
1. Сократите значения времени ожидания сервера , проконсультировавшись с вашим хостинг-провайдером (не должно быть слишком низким).
Когда тайм-ауты будут меньше, соединение будет вскоре освобождено, поэтому сервер сможет обрабатывать больше соединений.
2. Используйте сторонние сервисы, такие как CloudFlare, для статического кэширования данных и для защиты вашего сайта от злонамеренных пользователей и атак, таких как DDOS.
3. Обновите серверное оборудование. Обновите физическую и виртуальную память, увеличьте, если необходимо, ограничения процессов ввода-вывода и ввода. Ваш хостинг провайдер сможет помочь вам лучше.
4. Кэшируйте динамический код - используйте APC для кэширования кода операции PHP.
5. Балансировка нагрузки. Распределите нагрузку между несколькими серверами балансировки нагрузки.
Когда все необходимые действия будут предприняты, пришло время проверить, готов ли сайт к огромному скачку трафика.
Есть некоторые сторонние сервисы, такие как loadimpact.com, которые предоставляют нагрузочное тестирование с имитацией трафика. Анализ поможет вам понять, какую нагрузку может выдержать ваш веб-сайт и что можно улучшить.
Кроме того, в период всплеска трафика избегайте операций с высокой загрузкой ЦП, таких как резервное копирование веб-сайтов и т. Д.