- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую. Пишу в связи с проблемой, а именно - у любой версии vbulletin линейки 3.8, в панели администрирования, в запланированных задачах есть задача под названием
Этот скрипт производит ежедневную рассылку обзора новых тем и сообщений.
На моем форуме это задача так же присутствует и выполняется. Ее суть заключается в рассылке чего-то там пользователям (точно еще не выяснил что именно) через встроенный почтовик сервера, в моем случае это sendmail. Проблема заключается в том, что когда наступает время и этот скрипт (./includes/cron/digestdaily.php) начинает рассылку, мой веб-сервер (использую nginx + spawn_cgi) перестает отвечать на запросы. Не подумайте, дело не в нагрузке, дело в другом:
1. Наступает время (специально перенес выполнение digestdaily.php на более позднее)
2. Стартует скрипт digestdaily.php, начинается успешная рассылка писем через sendmail. Почему успешная? Потому что следил за поведением почтовика - письмо формируется, письмо отправляется
3. Нагрузка машины близка к 0, процессы php-cgi есть (аж 6 штук) и каждый из них как я понимаю занимается формированием этих самых писем, общее кол-во которых около 150-200.
4. Форум перестает открываться. Nginx принимает запрос, отправляет его php-cgi и через некоторое время отваливается по таймауту.
5. Через 15-20 минут рассылка заканчивается и форум моментально начинает открываться.
Такое происходит каждый день потому как задача digestdaily.php по умолчанию стояла на ежедневное выполнение.
Немного данных:
машина под хостинг своя, Vbulletin 3.8.4, FreeBSD (хотя в данном контексте не важно какая ОС, предпологаю что на linux была бы та же проблема)
Гуру, как быть и что делать ? (с)
перестает отвечать что именно? nginx (сервер) вообще или только fcgi, то есть 504?
и каждый из них как я понимаю занимается формированием этих самых писем
сильно сомневаюсь, скрипт же не 6 раз запускается
перестает отвечать что именно? nginx (сервер) вообще или только fcgi, то есть 504?
сильно сомневаюсь, скрипт же не 6 раз запускается
Nginx работает на ура, чего не скажешь про php-cgi. К сожалению сам не понимаю почему подобный скрипт-рассылки "ложит" все 6 php процессов, хотя по top-у видно что работают в лучшем случае 1-2 шт. php-cgi процессов, остальные просто простаивают.
ps - письма идут в однопоточном режиме, соблюдая некую очередность. это заметил при мониторинге, с помощью команды mailq
угу, не внимательно прочел первый раз
быть может таблицы лочатся? может скриптом этим, плюс мы не знаем что у вас там за почтовая система...
вы проверяли работоспособность каким образом? обращением к этому же форуму или он не работает глобально, то есть не отрабатывает вообще никакой скрипт (простейший echo "bla bla")?
я к сожалению не знаю воблу совсем, но где-то с этого начал бы копать...
угу, не внимательно прочел первый раз
быть может таблицы лочатся? может скриптом этим, плюс мы не знаем что у вас там за почтовая система...
вы проверяли работоспособность каким образом? обращением к этому же форуму или он не работает глобально, то есть не отрабатывает вообще никакой скрипт (простейший echo "bla bla")?
я к сожалению не знаю воблу совсем, но где-то с этого начал бы копать...
На счет таблиц - таблиц бд mysql? даже не знаю что сказать на это, в смысле не знаю как проверить. Почтовый демон sendmail с настройками по умолчанию, ос freebsd 7*. Работоспособность проверял простым методом - открываю браузер и пытаюсь открыть страницу своего форума, в ответ получаю
В это время, в nginx начинают сыпаться ошибки таймаутов от php-cgi:
2010/11/17 02:01:30 [error] 43200#0: *1476 upstream timed out (60: Operation timed out) while reading response header from upstream, client: 95.74.7.112, server: адрес_форума, request: "GET /forum/showthread.php?t=1542&page=5 HTTP/1.0", upstream: "fastcgi://unix:/var/run/fastcgi_sock:", host: "адрес_форума", referrer: "http://адрес_форума/forum/showthread.php?t=1542&page=4"
Думаю попытаться каким-либо образом разделить письма на потоки, но это лишь теоретическая зацепка...
это еще что за модель? памяти там сколько ? почему всего 6 штук php-cgi его вешают?
попробуйте в vbulletin переключиться на SMTP. Может быть не будут создаваться процессы или поменьше будет расход ресурсов.
Количество электронных писем, отправляемых за один раз - ОДНО.
Как последнее средство - CommunigatePro и тоже отправка через SMTP.
это еще что за модель? памяти там сколько ? почему всего 6 штук php-cgi его вешают?
попробуйте в vbulletin переключиться на SMTP. Может быть не будут создаваться процессы или поменьше будет расход ресурсов.
Количество электронных писем, отправляемых за один раз - ОДНО.
Как последнее средство - CommunigatePro и тоже отправка через SMTP.
"своя машина" это чтобы никто не думал что проблема из-за других клиентов/пользователей, модель - PC с 3mhz двуядерной головой. Памяти 2 gb, i386. На счет php-cgi - не совсем понял Вас. В моей проблеме речь не идет о нагрузке (в момент проявления проблемы она нулевая), речь идет о прекращении нормальной работы (многопоточной) php-cgi, в момент запуска скрипта, который рассылает пользователям уведомления о новых темах и делает прочие рассылки писем через sendmail.
На счет SMTP - спасибо, изменил настройки форума, посмотрю что будет твориться сегодня.
gilas, допустим php-cgi что-то делает и виснет. допустим все 6 штук. но почему ваш сервер не может запустить еще больше процессов php-cgi, чтобы обработать запросы остальных клиентов?
не пора ли уже перейти на apache, если с другими методами запуска php у вас не сложилось? ?
gilas, допустим php-cgi что-то делает и виснет. допустим все 6 штук. но почему ваш сервер не может запустить еще больше процессов php-cgi, чтобы обработать запросы остальных клиентов?
не пора ли уже перейти на apache, если с другими методами запуска php у вас не сложилось? ?
Проблеме, описанной мною выше, уже несколько месяцев (все никак не доходили руки разобраться). Раньше кол-во php-cgi процессов было 4 шт., форум вел себя так же в процессе этой злополучной рассылки. Спустя некоторое время число пользователей увеличилось и я решил увеличить число процессов до 6 шт. - в момент рассылки ведет себя абсолютно так же, как и с 4-мя.
Дело в том, что при выполнении скрипта, php-cgi процессы начинают жить "своей жизнью". 4-5 процессов висят как будто бы на них и вовсе не приходит запросы, остальные php-cgi процессы то и дело мелькают в top-е вместе с демоном sendmail. Хочу сказать что возникает ощущение полной блокировки всех процессов, в момент работы скрипта. Кстати говоря сами письма уходят не так уж и быстро, это я опять к тому что вычислительная задача на php-cgi и на sendmail очень маленькая.
На apache переходить не хочу, т.к. уже давно от него ушел и возвращаться на него нет желания.
ps - php-cgi виснет в буквальном смысле, так то он работает и не требует каких-либо рестартов. Если рестарт сделать во время работы скрипта-рассылки, форум мгновенно становится доступным и открывается, но через несколько секунд опять происходит затык.
вы так и не сказали полностью ли вешается fcgi
судя по логам nginx не может дождаться ответа от fcgi, но это при обращении к форуму. а при обращении к какому-то другому скрипту что будет?
и покажите top, может у вас там i/o-wait под завязку и оно просто не успевает отработать... у меня была подобная ситуация, когда умники запускали массовую рассылку, правда там vds дохлый совсем и пользователей более 10К (следовательно и писем), но мало ли...
На apache переходить не хочу, т.к. уже давно от него ушел и возвращаться на него нет желания.
настал момент прекратить выпендреж.