За последние 24 часа нас посетили 18338 программистов и 1620 роботов. Сейчас ищет 931 программист ...

несколько очередей в laravel

Тема в разделе "Laravel", создана пользователем ananas, 11 июл 2024.

Метки:
  1. ananas

    ananas Новичок

    С нами с:
    11 июл 2024
    Сообщения:
    2
    Симпатии:
    2
    Захотел на своём сайте задействовать несколько очередей для обработки заданий.
    В консоле прописываю php artisan queue:work, запускаю обработчик очереди, всё прекрасно работает.
    Открываю второе и третье окно консоли аналогично запускаю в каждом воркеры, тоже всё работает.
    Все задачи при выполнении распределяются между тремя воркерами, всё как надо.

    Но когда я запускаю 4ый воркер, у меня начинает жутко тормозить весь сайт, страницы вместо 1-2сек открываются по 20-40сек или вообще выскакивает ошибка превышение таймаута ожидания. Отваливается сервис web socket pusher.
    И при этом воркеры находятся в простое без задач, просто запущены.
    При запуске 5го воркера сайт полностью лежит.

    Первое что в голову приходит это не достаточно ресурсов, но и оперативы полно и проц грузится на 1-2% в простое, но при этом php уже не работает сайт лежит.

    Подумал что может это особенность локальной машины, и выгрузил это на сервер с 2мя процессорами 36 ядер, там тоже сайт ложиться от 4х запущеных воркеров.

    Почитал интернет, вроде ограничений на количество воркеров в laravel не где нет, chatgpt тоже ничего не подсказал.

    В чём может быть проблема?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.105
    Симпатии:
    1.243
    Адрес:
    там-сям
    Любопытная проблема. У нас работает более четырех воркеров одновременно и всё окей. Поэтому я думаю что проблема в конкретных джобах, где-то что-то или блокирует или исчерпывает некий ресурс.
     
    don.bidon нравится это.
  3. ananas

    ananas Новичок

    С нами с:
    11 июл 2024
    Сообщения:
    2
    Симпатии:
    2
    Коллега спасибо за помощь, но ситуация решилась другим способом
    Тоже по подсказке, до этого фиг догадаешься)
    На сервере крутится proxmox, там в качестве виртуалки стоит ubuntu, а уже на ubuntu стоят docker контейнер с laravel.
    Раньше на ubuntu в proxmox было выделено 2 сокета по 20 ядер, я исправил на 1 сокет, и всё заработало, запускается 10 воркеров и всё остальное не тормозит.

    Как подобное сделать на WSL на винде я не знаю, но оно мне и не нужно, на тестовой машине мне и 3х воркеров предостаточно
     
    artoodetoo и don.bidon нравится это.