VPS периодически испытывает задержки (10-30 секунд для загрузки страницы).

Вопрос или проблема

У меня есть проблема на моем VPS, которую я пытаюсь решить уже несколько недель.

Я использую HestiaCP, PHP FPM, Mariadb, только NGINX.

Я на плане VULTR High Frequency с 2 vcpu, 4 ГБ оперативной памяти и SSD.

На htop мой процессор почти никогда не используется полностью, средняя нагрузка составляет 0.43 0.36 0.66 при времени работы в 4 дня.

Даже когда у меня самый большой трафик, используется около 800 МБ – 1.3 ГБ оперативной памяти.

Ввод-вывод всегда кажется нормальным.

Но у меня все равно есть эта проблема, что время от времени в течение 10-20 минут почти случайно (но часто около 17-18 часов) происходят ужасные лаги.

Страница загружается с 0.7 секунд до около 30 секунд, чтобы просто показать страницу, и затем еще 30 секунд, чтобы показать картинки.

Есть ли у вас какие-либо идеи? Я занимаюсь этим уже несколько недель, гуглил, сидел на форумах, использовал chatgpt, но не могу найти причину, вызывающую это.

(Я учусь, так что, возможно, я что-то упускаю, я полный новичок).

Вот один из моих сайтов на случай, если понадобится: https://www.antennerequin.com Я использую Cloudflare cache everything + cache enabler, и он довольно хорошо оптимизирован.

Если сломать кэш, он загружается довольно медленно (думаю, это нормально? Хотя на общем хостинге – hostinger – было лучше, не уверен, проблема ли это), но когда происходит описанный лаг, все становится в 30 раз хуже.

Заранее спасибо (надеюсь, мой английский в порядке, хаха)

Ответ или решение

Здравствуйте,

Ваш случай с лагами на VPS, установленными с использованием HestiaCP, PHP FPM, MariaDB и NGINX, может иметь множество причин, несмотря на то, что ресурсы сервера (процессор и память) на первый взгляд не перегружены.

Теория:
Проблемы с производительностью на вашем VPS могут вызываться различными факторами, даже если и сами физические ресурсы, такие как ЦП, память и диск, выглядят нормально. Многие процессы зависят от правильной конфигурации и взаимодействия между компонентами. Обычно проблемы производительности могут быть связаны с:

  1. Конфигурацией сервера: возможны ошибки в конфигурации NGINX, PHP-FPM или MariaDB.
  2. Узкими местами в I/O: даже если на первый взгляд кажется, что узких мест нет, именно непродолжительные пиковые нагрузки могут вызывать задержки.
  3. Высокой нагрузкой на базу данных: неоптимизированные запросы или недостаточность индексов могут замедлять обработку данных.
  4. Проблемами с сетью: задержки в сети между вашим сервером и Cloudflare могут повлиять на скорость загрузки страницы.
  5. Пиковыми нагрузками: определенные задачи, выполняемые с высокой частотой, или скрипты, которые запускаются в определенное время, например, при обновлении кэшированных данных.
  6. Настройками кэша и CDN: конфликты в настройках могут приводить к задержкам.

Пример:
Из вашего описания следует, что наиболее серьёзные задержки наблюдаются в определённое время и когда кэш ломается. Это может указывать на пиковую нагрузку на базу данных или неправильную конфигурацию PHP-FPM, которая не может справиться с увеличенным количеством входящих запросов в определённое время.

Применение:

  1. Анализ логов: Просмотрите логи NGINX, PHP-FPM и MariaDB в момент возникновения задержек. Это поможет выявить ошибки или специфические запросы, вызвавшие нагрузки.
  2. Оптимизация БД: Проверьте наличие индексов в базах данных для часто используемых запросов. Используйте инструменты, такие как slow-query log в MariaDB, чтобы идентифицировать медленные запросы.
  3. Настройки PHP-FPM: Убедитесь, что параметры pm.max_children, pm.start_servers, pm.min_spare_servers и pm.max_spare_servers настроены в соответствии с нагрузкой, которую вы ожидаете.
  4. Мониторинг сети: Воспользуйтесь инструментами для мониторинга состояния сети и проверьте, не происходит ли увеличения задержек в облаке.
  5. Перепроверка работы кэша и CDN: Убедитесь, что кэширование и работа с CDN (Cloudflare) правильно интегрированы и оптимизированы без конфликтов.

Если после проверки и корректировки этих аспектов проблема остается нерешённой, возможно, стоит провести нагрузочное тестирование в разные временные интервалы, чтобы увидеть полную картину и более точно определить, в каком компоненте или моменте времени происходит сбой.

С уважением,
[Ваше имя]

Оцените материал
Добавить комментарий

Капча загружается...