Php-fpm может быть запущен как static и как dynamic?



"вызываю огонь на себя". Кейс: реальный сайт, а вот теперь вопрос: php-fpm может быть запущен как static и как dynamic. Я старый, толстый, глухой удав, но... Я не верю в конфигурацию статик. Не верю потому, что PHP течет памятью. Кому надо дам логи. Я как мальчик верю в dynamic и стреляю процессы, но... Но как думаете вы? Я-то все еще пишу код так, чтобы отстрел не влиял, но я старый и толстый 🙂
2172   97  

Comments

  1. Михаил Буйлов
    Михаил Буйлов 5 лет назад
    в fpm есть опции рестрата потока через колличество вызовов и/или по времени. это не решит проблемы с утечкой без отстрела?
    • Владислав Ярмак
      Владислав Ярмак 5 лет назад
      Решит. Кроме того, такой проблемы сейчас просто не стоит у людей, которые не используют экзотические расширения PHP.
  2. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    стоп, стоп, стоп. Хотите мне общими словами - давайте удалю пост, а? Ок. Я перескочил на fpm в 2007? можно серьезно?
  3. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    имеем - 5000 заказом (значит пишем), утверждение: динамика пристрелит медленные запросы. статика - течет памятью. У меня тупо доги - вместо 30к на страте статик процесс начинает жрать 50М, Думаю, что динамиаа это гасит, а статика?
  4. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    уважаемые пожалуйста, как держать 1000 перход в сек я и так знаю, я не об этом
  5. Константин Замякин
    Константин Замякин 5 лет назад
    не рановато начали?
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      что именно?
    • Константин Замякин
      Константин Замякин 5 лет назад
      Дмитрий Горяинов употреблять
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      работать с нагрозочными сайтами? где-то в 2007
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      уважаемый, а ничего что не все пьют?
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      Константин Замякин спасибо, ответ понятен. Вы считаете что все просто глушат. Не судите о людях по себе.
    • Константин Замякин
      Константин Замякин 5 лет назад
      Дмитрий Горяинов а я и не уточнял, пьёте вы или чего еще предпочитаете
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      уже не важно
  6. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    ИМХО: статика не престреливается, но течет памятью
  7. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    ИТОГО: мне все еще интересн ответ (кроме Константин Замякин)
  8. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    Ибо - как держать 2 млн хопов понятно, не понятно вот что : по всем прикидкам запуск php-fpm ака статик со временем течет (умом я это не то что понимаю - уверен), как у вас?
    • Станислав Осипов
      Станислав Осипов 5 лет назад
      Статик на 5.4-5.6 течет.
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      по коду и на 7-ке потечет (оптимизаиця была по памяти, если у вас шаблоны типа фабрика и тюпю препроцессор их не сможет кешировать), еще раз: кто, когда и почему реально испольщует запуск в static и при каких вводных?
  9. Владислав Ярмак
    Владислав Ярмак 5 лет назад
    Мы арестовываем вашу лицензию на использование компьютера
  10. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    причина?
  11. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    такое ощущение что все "гуру" просто бухие
  12. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    ладно, уважаемые, я так понял, что у вас или балансировщик ДО вас или вы просто не представояетеор чем речь. Интересен был ответ Alexey Rybak ну да ладно
  13. Egor Rukhvadze
    Egor Rukhvadze 5 лет назад
    Есть еще ondemean вариант. Помимо стати и динамик
  14. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    Егор, поясню тему: есть старый конфиг (где-то с 2012 по сети болтается)ю Про 500 дочерних в статике. Они текут. Страт 20М, часа через 4 - по 50М. Ставим динамику и пристрел по лимитам. Имеем: динамику с расчеом на старате 60% ресов и пристрел на 90%. Ок, теряем часть запросов но... но сервер стоит. Итого: ребят, кто реально исползует static и почему (в каких случаях)?
    • Иван Кузнецов
      Иван Кузнецов 5 лет назад
      500 выглядит многовасто даже для 32 ядер. Снимаете же наверняка статистику по занятым рабочим, неужели бывает занято больше 150 в вашей конфигурации ? Я вот использую не более 4-х рабочих на ведро, и в общем-то когда пул чем-нибудь лочится (чаще всего это внешние запросы, либо какой-нибудь деятель БД вешает талантливым запросом), то в общем уже не имеет смысла сколько там рабочих - они все и блокируются.
  15. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    я не понимаю логики: имхо fastcgi процесс должен отстреляться и убиться. Освободить. Зачем взлетать в статике Тхпроцессов? Если мы держим статику? Или для чего?
  16. Михаил Буйлов
    Михаил Буйлов 5 лет назад
    статик не течет. текут глючные экстенжены. Это правда. Еще непонятно, зачем 500 потоков, какие машины все это будут обслуживать?pm = staticpm.max_children = 50pm.max_requests = 3600при 200 хитах в секунду на машину с 24 ядрами
  17. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    вот.. 32 ядра, 128 RAM? не вычещенный из кода Битрикс, котрый долбит MySQL
  18. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    при конфиге в static - течет. точно видно по htop
  19. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    но, вопрос не о том. Ок. Допустим мы лохи и у нас все не верно. На самом деле - кто использует static и почему???
    • Иван Кузнецов
      Иван Кузнецов 5 лет назад
      Да никто его не использует, кто хотя бы один раз видел как память стекла в рабочего.
  20. Михаил Буйлов
    Михаил Буйлов 5 лет назад
    для того, чтоб не рожать процессы?
  21. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    да. но в каких случаях?
  22. Дмитрий Горяинов
    Дмитрий Горяинов 5 лет назад
    имхо fastcgi (нормальный) отстрелял за 0,002 и умер. Зачем держать?
  23. Михаил Буйлов
    Михаил Буйлов 5 лет назад
    2ms - это давольно дохрена
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      у меня log_format main '$time_local; $remote_addr; $request_method; $status; ' '$upstream_response_time; $bytes_sent; $gzip_ratio; ' '$scheme://$http_host$request_uri; "$http_referer"; "$http_user_agent"';
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      дайте свой $upstream_response_time + число пользователей сайта в минуту
    • Михаил Буйлов
      Михаил Буйлов 5 лет назад
      10к хитов в секунду в пике. порядка 100ms 80 перцентиль времени ответа
    • Михаил Буйлов
      Михаил Буйлов 5 лет назад
      вообще апи отвечает за 50 и его очень много, поэтому даже 2мс - это 4%
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      Могу пояснить: я все равно ХОЧУ УЗНАТЬ про использование sattic. Почему? Да просто потому что у нас в прошлую пятницу было 3-4 К пользователей оформлявших заказ рантаймю Динмамика вытащилаЮ е спор остался
    • Михаил Буйлов
      Михаил Буйлов 5 лет назад
      Почему? Потому что быстрее. Почему не течет? Потому что утечки глючных модулей пофиксили и теперь ничего не течет
  24. Максим Устинов
    Максим Устинов 5 лет назад
    Еще один наркоман, который не умеет формулировать вопросы
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      интерснео откуда берутся дебилы-комментаторы?
    • Максим Устинов
      Максим Устинов 5 лет назад
      Дмитрий Горяинов мне кажется, из твоей вагины
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      ясно. Итого, вопрос был про конкретику Дальше подключились "суперадмины". мальчики, вы хоть раз работали с реалтайм заказами от 1000 в минуту? У меня больше Ю р просто интерсно. Заказ = сайт + корзина + бэкоффис + шлюз с платежной системой. мы точно об одном говорим? А то я как вас читаю - все про хомичков думаю
    • Максим Устинов
      Максим Устинов 5 лет назад
      Дмитрий Горяинов господи, забань себяМне не интересно сколько там у тебя сантиметров, мне важно, что ты не можешь задать осмысленный вопрос
    • Владислав Ярмак
      Владислав Ярмак 5 лет назад
      Дмитрий Горяинов 720000 заказов в сутки? А ссылку на сайт не изволите ли?
    • Константин Замякин
      Константин Замякин 5 лет назад
      Владислав Ярмак ну чё ты начинаешь сразу, а? нормально же общались
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      увы, в купе всего 35 тыс. заказов за вычетом отмен. Но это идет через бэкофис. Не изволю, стеб дурной за...л. Один из книжных. Но, мальчики, у меня до того был товарный агрегатор с лямом клиентов в сутки. Дальше? Вы правда хотите померяться? А еще за спиной СМИ с 10 млн. посетителей в сутки, но там другой расклад.
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      Дебилы
    • Владислав Ярмак
      Владислав Ярмак 5 лет назад
      Дмитрий Горяинов Короче, слив засчитан
  25. Илья Есин
    Илья Есин 5 лет назад
    а ограничение в количество запросов на воркер для кого придумано?
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      исходное - поднято 50 статик, через 4 часа занятая память увеличивается вдвое. меняем на динамик - иная картина Вопрос (кроме мерения пиписьками): кто использует статик и почему? чем и в каких условиях? Это если серьезно, а е как предыдущие ораторы
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov у меня не течёт. ЧЯДНТ?Если серьёзно, то давайте версии, конфиги, минимальный код, и запросы, на которых течёт.У меня вот прямщас в проде три десятка весьма себе злых ящика херачат в конфигурации 2х128 статиков в каждом. Около 500 rps на ящик (из них многие ждут внешнего ресурса). Не текут, сволочи такие!PHP 5.6.28 (надо обновиться, знаю) и целая россыпь модулей.
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      прикольно. nginx + php 5.6 + увы, ядро Битрикс, процессы на старте 20м (выделено), через 5 часов по 50-60м
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      на динамике - перезапуски и в рамках
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov опять же, почему? Потому что меньше порождающихся и умирающих процессов. Просто каждый воркер отмолачивает 1000 запросов и перезапускается. И планировщику ОС хорошо и гарантия очистки памяти есть (хотя она и не особо нужна).
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      а на статике ворекер висит, змбит или как?
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov не понял вопроса.
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      начальный вопрос: сттатика или линамика для php&
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      &
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov у вас всё нормально? а то вы что-то как-то по клавиатуре промахиваетесь, письмо не очень связное... может успокоительного с горячим чаем и баиньки? Ну серьёзно, победили проблему. Зачинили продакшон, всё работает. Отдохните и вернитесь к вопросу завтра. Можете мне даже в приват написать.
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov А вот про Битрикс надо было сразу сказать - это 3.14здец. В том числе, с точки зрения эксплуатации.
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      Илья Есин мальчик, у вас недостаток внимания?
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      типа все сейчас объяснило? вопрос был и есть не роб этом. где трабл кода я знаю сам. речь была и есть не об этом
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov Ну что же вы сразу на личности? Недостатка внимания у меня нет. Я про то, чтобы отдохнуть серьёзно написал. Без издёвки. Если вас это оскорбляет - сорян. Можете забанить и обматерить, если легче станет. А по делу я ответил уже, есличо.
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      да потому что за...ли админы. Ребят, был вопрос: кто когда и зачем использует статик и зачем. Далее: кейс я не пользую потому что... вы зафлудили чем угодно кроме ответа на вопрос: зачем и когда статик???? При этом вы уверены что написавший нуб и ламо тупое над которым надо стебаться
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      еще раз - мне срать на проблему этоц конигурации. Вопрос : нах статик, если php-fpm (помоему) должен отстрелять и умереть, убив проуесс и освободив ресы для нового = динамик. ВОТ ЭТО ОБСУЖДАЕМ А не наши сайты
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov Keep calm and keep calm.Объясняю зачем все используют static: затем что оно работает и кушать не просит.Если развёрнуто, то: в НЕ ВЫРОЖДЕННЫХ случаях (см. битрикс и ко.), fpm в режиме static меньше дрочит системные аллокатор и планировщик -> меньше потребление ресурсов самой операционкой -> меньше вероятность флуктуаций в мониторинге + нет столь частого перезапуска процессов воркеров, что опять же не вызывает потребеления ресурсов ОС (на создание и удаление процесса) и создаёт предсказуемую нагрузку от перекомпиляции байткода.
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      Илья, можно простой вопрос: у вас сколько хопов хотя бы в минуту? У меня 3к заказов в минуту. С остатками наследия битриксовой корзины. Данные по расходу памяти я писал Вопрос (повторно): кто и почему использует запуск в static? Это не вопросо о томЮ что вы мне посоветуете
    • Дмитрий Горяинов
      Дмитрий Горяинов 5 лет назад
      читацте уже вопрос
    • Илья Есин
      Илья Есин 5 лет назад
      Dmitry Goryainov дык прочитал. И ответ написал. Как раз по вопросу. А термин hop мне знаком только из сетей и в данном контексте я не могу его применить
  26. Anton Barsukov
    Anton Barsukov 5 лет назад
    "что использовать чтобы огурцы ложкой банка майонеза?"
  27. Igor Podlesny
    Igor Podlesny 5 лет назад
    Беглый просмотр комментов обнаруживает только основательно e-датых страдальцев и нескольких сочувствующих. У меня вопрос на пару микродолларов — течка памяти решается счётчиком на кол-во запросов, после которых инстанс php-fpm делает сепуку. При чём здесь static/ondemand/и чё-там-у-него-ещё-кроме-неонки? — Вопрос риторически-саркастический. Дык
  28. Юрий Колесов
    Юрий Колесов 5 лет назад
    я использую статику. и рестарт по числу обработанных соединений. количество ставлю в зависимости от того есть проблемы или нет.
    • Igor Podlesny
      Igor Podlesny 5 лет назад
      > рестарт по числу обработанных соединений.
  29. Alexey Rybak
    Alexey Rybak 5 лет назад
    Дим, статик + рестарт на n реквестов, подбирать по скорости утечек. Но главный вопрос здесь - искать, что течет. Как я понимаю, это ищется, но я забыл как - спроси Тони, может, есть стандартный готовый апи (типа маркируем аллоки и смотрим в конце).
    • Владислав Ярмак
      Владислав Ярмак 5 лет назад
      Подождите, подождите. Вы сначала скажите: сколько хопов у вас в сутки?
    • Alexey Rybak
      Alexey Rybak 5 лет назад
      Владислав Ярмак какая разница? Если есть вопрос - значит достаточно, чтобы это было вопросом.
    • Владислав Ярмак
      Владислав Ярмак 5 лет назад
      Alexey Rybak Вопрос один, ответов много. К ответам людей с наибольшим количеством хопов в сутки стоит прислушаться внимательнее. Более того, эта метрика может служить одним из факторов ценза в группе (помнится, эта проблема поднималась не так давно).
    • Alexey Rybak
      Alexey Rybak 5 лет назад
      Владислав Ярмак так Вы оказывается меня (а не автора) спрашиваете, сколько что там у нашего хозяйства? А зачем? Вы хотите ко мне применить какой-то "ценз"? То есть автор спрашивает админа группы, админ отвечает а вы влезаете, просите написать что-то про трафик, и намекаете что-то про "ценз"? Я правильно понимаю ситуацию?
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      Alexey Rybak Леша, ты не сильно правильно понимаешь ситуацию, топик стартер написал вопрос, но многих нервирует то, как он его сформулировал, это не по русски и от этого начинает дергаться глаз
    • Владислав Ярмак
      Владислав Ярмак 5 лет назад
      Alexey Rybak Я пытаюсь Вам намекнуть, показав на примере, что в Вашей профильной группе имеются авторы, которые элементарно не владеют терминологией и письменной речью, не стесняются открыто лгать, приводя вымышленную статистику заказов выше амазона, и осмеливающиеся предпринимать попытки угнетения участников на этом фоне, используя обращение "мальчики".
    • Alexey Rybak
      Alexey Rybak 5 лет назад
      Владислав Ярмак знаете, я потерял нить дискуссии. то есть я должен был вместо ответа своему старому знакомому начать издеваться над ним потому что он по-вашему пишет ерунду (а он может, но у него такая манера - и я её знаю уже сто лет)? нет, я так не делаю, и я ответил по существу. А в ответ на это последовали ваши комментарии, какую цель они преследовали, я о сих пор не понимаю, да и наверное неважно.
    • Константин Замякин
      Константин Замякин 5 лет назад
      Alexey Rybak во-во. приходят люди, которые абсолютно не владеют ни терминологией, ни правилами русского языка, ни воспитанием, ни предметной областью. Несут какой-то пьяный бред, путаясь в буквах, знаках препинания и терминах, обзывают дебилами всех вокруг, но это, почему-то, нормально (не из-за личного ли знакомства?). Если уж бороться за чистоту обсуждений в группе (что почти получается), то надо выпиливать не только агрессию, мат и переходы на личности, но и вот такой неадекват. Если это ваш старый друг, то почему он не напишет вам в личку? Или почему бы вам не помочь ему сформулировать тот ад, что находится у него в голове? Если для вас это нормально сформулированный вопрос в закрытом профильном сообществе (если отбросить факт знакомства) - ок, вопросов больше не имею.
    • Alexey Rybak
      Alexey Rybak 5 лет назад
      Константин Замякин я видел исходный вопрос, да, он сформулирован криво, но я ответил на него - не потому что мне всё нравится, а потому что я считаю недостойным уводить дискуссию в сторону. если в процессе задавания вопросов я вижу, что человек отвечает неадекватно - я проясняю это и прекращаю беседу, я не троллю и не издеваюсь. На мой нормальный комментарии последовал ответ вида "нет, давай его топить" - и как раз этот подход для меня неприемлем в первую очередь. Факт знакомства тут непричем: да, многие вопросы в этой группе - адовые, люди несовершенны, это результат массовости, нужно больше любить людей и помогать, а не издеваться.
    • Константин Замякин
      Константин Замякин 5 лет назад
      Alexey Rybak любить и помогать - ок, это правильный посыл. но уважение должно быть и с той стороны, а с ним тут (как и у г-на Подлесного зачастую) - не всегда всё нормально. То есть что получается: задать вопрос с явными признаками неуважения можно, но сказать об этом - нельзя, а то это оскорбления и переходы на личность.
    • Alexey Rybak
      Alexey Rybak 5 лет назад
      Константин Замякин так вы побольше бы намекали, что он бухой, глядишь и разговор бы другой получился
    • Константин Замякин
      Константин Замякин 5 лет назад
      Alexey Rybak да ну ладно я, там ниже была ветка, где человек ему честно пытается помочь (кажется, по фамилии Есин), а его в ответ поциент дебилом называет.
    • Владислав Ярмак
      Владислав Ярмак 5 лет назад
      Alexey Rybak Вы можете бесконечно долго прикидываться, что не понимаете, о чём идёт речь, но вокруг взрослые люди, которые имеют свою интерпретацию фактов.
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      Владислав Ярмак IMHO в таком тоне бодаться далее бессмысленно, топик стартер свою порцию троллинга получил и ответ получил тоже, так что я думаю дискуссия себя исчерпала
    • Alexey Rybak
      Alexey Rybak 5 лет назад
      Владислав Ярмак Я считаю недостойным уводить в сторону дискуссию намеками на какую-то неполноценность топик-стартеров, на их якобы недостаточный уровень, особенно комментарии в стиле а-не-рано-ли-вы-начали-бухать, если это не ваш френд конечно, да и то, под большим вопросом. Я считаю единственно правильным способом в таком случае промолчать и перестать разговаривать, в дополнение можно пожаловаться на пост, если имели место оскорбления или офтопик или сомнения в качестве вопроса. А "стулья" тут вообще не при чём, поскольку строить массовое сообщество на принципе "элитарности" нельзя в принципе.
    • Илья Есин
      Илья Есин 5 лет назад
      Лёша, серьезно, человек пришёл в группу в неадекватном состоянии и начал спрашивать про сферические хопы в вакууме и удивляться почему все за статик? Я пони, что он расстроен, напряжён, негодует и вообще зайка. Внимание, вопрос знатокам: это профессионально, когда он начинает отвечать разумно, только после публичного унижения перед ним? Человеку по теме ответили 3+ раз. Тем не менее «мальчики», 3к+ заказов в секунду и вся хурма. Никто про алкоголь/бухло открыто, как я вижу, не спрашивал и не говорил. Тем не менее, господин топикстартер начал изображать из себя Дон Кихота и поливать окружающих нечистотами. Понятное дело, в привате мы с ним, таки, поговорили адекватно.
  30. Alexander Nesterov
    Alexander Nesterov 5 лет назад
    Разница между static и dynamic только в кол-ве процессов php-fpm, которые будет создавать мастер. Если код течёт, он будет это делать вне зависимости от.
    • Eugene Klimov
      Eugene Klimov 5 лет назад
      собственно вот он ответ на вопрос да
    • Alexander Nesterov
      Alexander Nesterov 5 лет назад
      Иными словами, в терминах топик-стартера, вручную ничего отстреливать не надо: воркер обработает pm.max_requests запросов (GET/POST, без разницы) и завершится/отстрелится сам. А мастер создаст новый воркер.