- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть проблема.
Имеется nginx + php-fpm и постоянно запущенные скрипты через крон php-cli для тяжелых задач.
Суть в том что если я на постоянной основе запускаю более 2-х скриптов в консоли (через крон),
то nginx + php-fpm перестает отвечать, уходит в ожидание, и как только потушишь процессы в консоли (SigKill), все снова работает и отвечает.
скрипты в консоли стоят в режиме ожидания задач, т.е.
while(true) {
// some code
sleep(1);
}
Среда выполнения:
Alt Linux p10
php 7.4.33
Postgres 15
Nginx
Laravel
Если есть идеи куда смотреть / копать буду признателен.
Есть проблема.
Имеется nginx + php-fpm и постоянно запущенные скрипты через крон php-cli для тяжелых задач.
Суть в том что если я на постоянной основе запускаю более 2-х скриптов в консоли (через крон),
то nginx + php-fpm перестает отвечать, уходит в ожидание, и как только потушишь процессы в консоли (SigKill), все снова работает и отвечает.
скрипты в консоли стоят в режиме ожидания задач, т.е.
while(true) {
// some code
sleep(1);
}
Среда выполнения:
Alt Linux p10
php 7.4.33
Postgres 15
Nginx
Laravel
Если есть идеи куда смотреть / копать буду признателен.
Может, проблема в лимитах одновременных подключений или памяти? Попробуй проверить настройки max_children для php-fpm и лимиты в системе. А еще можно попробовать запускать тяжелые скрипты через очереди вроде Redis или RabbitMQ, чтобы не блокировать фнд.
Может, проблема в лимитах одновременных подключений или памяти? Попробуй проверить настройки max_children для php-fpm и лимиты в системе. А еще можно попробовать запускать тяжелые скрипты через очереди вроде Redis или RabbitMQ, чтобы не блокировать фнд.
По железу, то же вроде все в норме:
8 ядер / 16 потоков
32 Гб озу
------------------------------------
Redis или RabbitMQ не очень подходят, если опираться на готовые решения, а если городить свой велосипед, то лучше без доп. технологий.
Суть в том, что есть задачи в фоне и некоторые задачи еще могут распараллеливаться на потоки в определенные моменты.
то какая задача и на сколько потоков может распараллелиться определяется конфигом.
Ну и еще пока задача выполняется и не завершилась ее может отменить пользователь.
По этому Redis или RabbitMQ пока не рассматриваю.
1. При запущенных cli просмотри через top htop что по памяти и cpu
процессы спят - S , по памяти потребление около 100-200 Мб, по процессору загрузка 0,1-0,4% ядра/потока
2. посмотри не блокируется ли бд
Нет бд не блокируется, там в настройках выставил max_connections = 68, с запасом (это для разработки на моей машине), и если упираешься в лимит подключений у БД - то в логах соответственно есть ошибка
и ли подобное
3. посмотри при запущенных cli скриптах доходит ли запрос до самого php (сделай простой файл который просто отдает строку.
проверил, не доходит, т.е. скрипт index.php даже не запускается, иначе отписывался бы лог, специально до запуска лары и инициализации соединения с БД строку вставил.
Если не доходит перенастраивай fpm - вот и хочу понять как, и какая связь между fpm и cli.
Совет не делай while(true) - думал по этому поводу, но тут еще время запуска скрипта добавляется.
Да и скрипты нужно на дежурстве держать постоянно. т.е. проверка идет еже секундно.
Проблема в настройке пользователя php-fpm.
Т.к. у меня, на моей машине php-fpm и php-cli работают из под одного пользователя - то fpm видит запущенные процессы и пытается им скормит строку запроса.
а процессы запущены как cli и это вызывает зависание fpm.
Если сработает отпишусь.
По ходу появилась мысль, завтра поверю, сейчас уже поздно.
Проблема в настройке пользователя php-fpm.
Т.к. у меня, на моей машине php-fpm и php-cli работают из под одного пользователя - то fpm видит запущенные процессы и пытается им скормит строку запроса.
а процессы запущены как cli и это вызывает зависание fpm.
Если сработает отпишусь.
Перевел nginx и php-fpm на одну группу/пользователя -> _nginx, настроил права и запустил.
Все работает, но проблема сохранилась.
если более 2-х одновременно запущенных процессов cli , то fpm не отвечает
Проблема решена. Загвоздка была в подключенном расширении XDrbug.
После его отключения все встало на свои места и начало работать как надо.