Назад | Перейти на главную страницу

Как справиться со всплесками перегрузки сервера?

На моем веб-сайте, VPS-сервере с 2 ГБ ОЗУ, я размещаю репозиторий, пользователи которого могут загрузить небольшой пакет (около 2 МБ) на свои машины.

Проблема в том, что со временем это репо стало очень популярным - десятки тысяч пользователей, если не сотни тысяч, и теперь каждый раз, когда я обновляю пакет, сервер сильно перегружается, пока кеш не начнет работать. Но это может занять часы (в прошлый раз - пару дней), пока нагрузка снова не спадет.

Я попытался увеличить объем оперативной памяти до 4 ГБ, но заметных улучшений не было. покупать больше просто слишком дорого.

Могу ли я как-нибудь справиться с этими обновлениями, не забиваясь?

Редактировать: Я должен был упомянуть об этом с самого начала, я уже пробовал CloudFlare, однако использование CF лишает меня контроля над временем кэширования zip-файлов, поэтому мои обновления никогда не успевали к моим клиентам.

Я в основном ищу способ поставить соединения в очередь без перегрузки сервера (если это вообще возможно) ...

Два довольно простых в реализации решения:

  1. Поставьте Cloudflare перед вашим сервером. Это направит запросы для этого файла в CDN Cloudflare и снизит нагрузку на ваш сервер.
  2. Подавать файл прямо из Amazon S3 (или что-то в этом роде). S3 легко отправит вашим пользователям столько данных, сколько они могут сгенерировать.

2 МБ статического содержимого должны оставаться в кеше файловой системы, если это требуется часто.

Используйте сеть доставки контента для масштабирования до множества глобальных узлов и уменьшения нагрузки на веб-сервер.

Вы можете настроить httpd MPM и, возможно, выбрать другой. worker - это вариант с резьбой. Попробуйте установить начальный предел потока немного выше, чем пиковая частота запросов, наблюдаемая ранее.