- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Которая абсолютно никак не поможет ТС найти "тяжелые" скрипты.
Так я знаю где эти медленные скрипты, они медленные из-за того, что в них идет вызов функции file_get_contents, которая подтягивает контент из выдачи поисковиков интернета. Соотвественно такой скрипт выполняется как минимум несколько секунд в лучшем случае.
Но что с того, если мне эти скрипты нужны, ускорить их по понятной причине и не получится...
Еще раз: баг в каком-то модуле php (пример возможной причины сегфолта) и наличие медленно работающих скриптов - связаны только вашей фантазией.
Проблема как раз в наличии медленно работающих скриптов. Баг начал проявляться после того, как та система с медленными скриптами была добавлена на сервер.
Самого "интересного" не рассказали - таки причем сегфолт к какой-то "медленности вызова функции"?
Тем паче, что "связь" настолько странная - что даже во времени никакой корреляции не видно. Или чукча просто не читатель?
Это не моя фантазия, читай ответ автора темы. Одни люди пишут софт с ошибками, другие не обновляют софт.
"Отсюда не видно", что имеет смысл увеличивать что-то даже и в два раза, не то что в 20. Забыли в подписи вывеску "лечим по фотографиям"?
5 процессов это не более 5 пользователей включая внутренний запросы. Обычный дефолт для средних серверов 100-150.
Которая абсолютно никак не поможет ТС найти "тяжелые" скрипты.
У него разрешено только пять процессов. 10-100 это совершенно нормальные значения.
Так я знаю где эти медленные скрипты, они медленные из-за того, что в них идет вызов функции file_get_contents, которая подтягивает контент из выдачи поисковиков интернета. Соотвественно такой скрипт выполняется как минимум несколько секунд в лучшем случае.
Смело увеличивай pm.max_children до 20. Это совершенно нормальное значение для выделенного сервера с 3-4Гб памяти и вашей задачи.
Ссылка специально для "специалистов по Debian" php.net/manual/ru/install.fpm.configuration.php и далее pm.max_children
5 это число между 4 и 6. У меня на серверах pm.max_children до 1000, если вы конечно работали с мощными серверами и большими нагрузками.
Если для Вас pm.max_children=5 нормально, то вы наверно обслуживаете VPS-ы за $10.
5 процессов это не более 5 пользователей включая внутренний запросы. Обычный дефолт для средних серверов 100-150.
НУ я не слишком большой специалист, но позволю себе с вами не согласится. Один чилдрен может обслуживать не 1 процесс, а много, сколько именно зависит от других параметров. Если бы это было только 5, то никак такое значение по дефолту в настройках не могло бы даже быть.
---------- Добавлено 11.08.2012 в 17:44 ----------
Это не моя фантазия, читай ответ автора темы.
Да, проблема в медленных скриптах, но все равно же при правильных настройках не должен падать php, ну пусть выполняет медлнее - не вопрос, но почему он должен от этого падать.
НУ я не слишком большой специалист, но позволю себе с вами не согласится. Один чилдрен может обслуживать не 1 процесс, а много, сколько именно зависит от других параметров. Если бы это было только 5, то никак такое значение по дефолту в настройках не могло бы даже быть.
Дефолт рассчитан на VPS с 256-512Мб
1 процесс = 1 рабочий процесс PHP, в лучшем случаи 1 запрос
---------- Добавлено 11.08.2012 в 18:47 ----------
Да, проблема в медленных скриптах, но все равно же при правильных настройках не должен падать php, ну пусть выполняет медлнее - не вопрос, но почему он должен от этого падать.
Какая версия PHP?
Ссылка специально для "специалистов по Debian" php.net/manual/ru/install.fpm.configuration.php и далее pm.max_children
5 это число между 4 и 6. У меня на серверах pm.max_children до 1000, если вы конечно работали с мощными серверами и большими нагрузками.
Если для Вас pm.max_children=5 нормально, то вы наверно обслуживаете VPS-ы за $10.
Ну раз нет желания пускать за свой сервер, то я даю правильный путь
1. Собрать php с debug
2. Подождать когда выпадет в кору
3. Натравить gdb и найти прчину
Учитывая уровень знаний, займет пару месяцев
Удачи!
Так я знаю где эти медленные скрипты
Собственно, я и не вам отвечал :)
Проблема как раз в наличии медленно работающих скриптов. Баг начал проявляться после того, как та система с медленными скриптами была добавлена на сервер.
Да, я тоже склонен так думать. И писал вам об этом выше.
Но с сегфолтами тоже вам нужно разобраться, если подобные ошибки часты.
Это не моя фантазия
Ваша. Вы не обращаете внимание даже на то, что ошибки никак не коррелируют.
читай ответ автора темы.
Ага, внимательно. "Автор темы" совершенно не представляет - являются ли для него проблемой сегфолты, не говоря уже о какой-то "связи".
5 процессов это не более 5 пользователей включая внутренний запросы.
Да ну :) Мы еще и как работает HTTP не знаем?
Даже ТС понимает, что с вашей "арихметикой" - рановато еще выбираться из школы...
Обычный дефолт для средних серверов 100-150.
Ну-ну. Для тех, кто не понимает для чего данный лимит нужен, зачем вообще системный администратор серверу и не постесняется отдать ~4Gb "просто так" толпе "нервно курящих" php-fpm детей (20/30Mb - вполне типичные значения).
Если для Вас pm.max_children=5 нормально, то вы наверно обслуживаете VPS-ы за $10.
Телепатия искрит...
Ну раз нет желания пускать за свой сервер, то я даю правильный путь
1. Собрать php с debug
В нормальном дистрибутиве должно быть достаточным установить пакеты с отладочными символами.
Ваша. Вы не обращаете внимание даже на то, что ошибки никак не коррелируют.
В PHP было много ошибок... есть ошибки SIGSEGV при получении request_terminate_timeout... есть ошибки SIGSEGV при использовании epoll и достижения max_children.
Мы еще и как работает HTTP не знаем?
Превосходно знаю HTTP. Не вижу аргументов.
Ну-ну. Для тех, кто не понимает для чего данный лимит нужен, зачем вообще системный администратор серверу и не постесняется отдать ~4Gb "просто так" толпе "нервно курящих" php-fpm детей (20/30Mb - вполне типичные значения).
Вы не понимаете зачем нужен лимит и почему он равен 5.
Для "супер" админов поясняю:
весть софт по дефолту не должен вызывать OOM, на любом железе. С учетом max_memory 128M выбрали маленький max_children...что бы скрипты, которые могут использовать 128M не вызывали OOM.
Телепатия искрит...
Мне жалко ваших клиентов, которые работают на дефолтных настройках PHP... Пора наверно научиться конфигурировать PHP, что бы он мог обрабатывать более 5-ти запросов.
В PHP было много ошибок... есть ошибки SIGSEGV
Не сомневаюсь. Просто ваше предположение о какой-либо связи сегфолта и превышения max_children из области "почему бы и нет". Только и всего.
Превосходно знаю HTTP. Не вижу аргументов.
Покуда "процессы" с "пользователями" путать будете - и не увидите. 5 - это просто столько одновременных обрабатываемых (не в беклоге, форкнут процесс) запросов к бакенду. Не больше. Одновременных "пользователей" же на сайте может быть за сотни.
Вы не понимаете зачем нужен лимит и почему он равен 5.
Правда? 😂
весть софт по дефолту не должен вызывать OOM, на любом железе. С учетом max_memory 128M выбрали маленький max_children...что бы скрипты, которые могут использовать 128M не вызывали OOM.
Ну, "супер-админы" вызовут ООМ иначе - отдадут всю память толпе php-fpm, так? Впрочем, им даже больше "повезет" - сервер просто уйдет в своп.
Мне жалко ваших клиентов, которые работают на дефолтных настройках PHP...
Вас закоротило?
То, что кто-то не рекоммендует менять настройки тупо и бездумно - не значит что он никогда их не меняет. Ровно наоборот. ТС нужно учесть потребление памяти, убедиться что медленные скрипты починить не получится, убедиться что на ваши 100 чайлдов (или скока?) php-fpm ее хватит (и еще останется всяким mysql, кешам файловой системы и проч и проч) - и только после этого что-то менять.
PS: А вообще, если для скриптов сайтов типична работа в виде "прокси" (парсеры контента внешних сайтов) - это может быть случай, когда не нужно было городить всякие nginx-сы и ТС хватило бы обычного апача.
Покуда "процессы" с "пользователями" путать будете - и не увидите. 5 - это просто столько одновременных обрабатываемых (не в беклоге, форкнут процесс) запросов к бакенду. Не больше. Одновременных "пользователей" же на сайте может быть за сотни.
Пять пользователей могут одновременно запросить динамику... может быть еще хуже, если каждый запросить несколько запросов к php
Раз Вы такие умный, что не посоветовал отдельный php-fpm... можно медленные скрипты(сайт) и нормальные разделить. Для нормальных max_children=5(или 10) и медленным max_children=5(или 10)
А еще можно формулу привести max_children=(ALL_MEMORY - (NGINX/MYSQL/etс)) / 25M (точное значение узнать в ps)
Мой совет, отдельные php-fpm и подбор параметров max_children. И конечно обновление PHP
Пять пользователей могут одновременно запросить динамику... может быть еще хуже, если каждый запросить несколько запросов к php
И "одновременно" ее получат... Разница невелика, если скрипты не по секунде отрабатывают. Будет больше запросов к динамике - подождут в backlog. Если увеличите maxclients - выжрут при этом больше памяти и будут тоже ждать, просто в разных местах обработки скрипта. Что лучше - хороший вопрос, но с необходимостью выставить maxclients > 20-30 сталкивался достаточно редко.
Раз Вы такие умный, что не посоветовал отдельный php-fpm...
Патамушта я умный и учитываю кому и что советую. Это может быть непростым для ТС.
А еще можно формулу привести max_children=(ALL_MEMORY - (NGINX/MYSQL/etс)) / 25M (точное значение узнать в ps)
Ну, на таком уровне я ее привел. Только формулой язык назвать не поворачивается.