LINUX.ORG.RU
ФорумAdmin

PHP-FPM - Тонкая настройка

 


0

1

Вообщем, nginx я более мение настроил, но вот задача, мне кажется не много не понятной потому что в мануалах и везде не описывают нормально, функции php-fpm ! т.е его настройку, такое впечетление как будто авторы понятие не имеют, но параметры выставляют +- как у всех других мануалах. Вопрос в том, как настроить эти параметры, и желательно проверить их работу, под определенный сервер ?

Допустим у меня есть сервер 4 core, 16gb Ram, 1TB ssd.

Как мне под него проверить, какие параметры php-fpm нужны ? просто не хочется все копировать с мануалов, тем более не понимая зачем эти параметры служат и как их правильно настроить, что бы они «дружили» с сервером а не «противостояли» ему, и не кусали его за ноги что бы он падал.

Вот не много нарисовал как я понимаю работу, но как понять те параметры ?

http://oi59.tinypic.com/30j44s2.jpg



Последнее исправление: nixbrain (всего исправлений: 1)

ты наркоман чтоли? там же подробные комментарии около каждой опции есть.

tinypic

язабан

snoopcat ★★★★★
()
Ответ на: комментарий от snoopcat

Я понимаю что описание функции есть, но как ее настроить под определенный сервер ? т.е я хочу настроить, провести тест ее, если все ок, оставить как есть, если нет, настраиваем дальше. Как то так. А не просто от балды поставил параметр и все.

nixbrain
() автор топика
Ответ на: комментарий от snoopcat

Если вы почитаете ряд манулов то так почти нигде, нет, нормальной настройки этих параметров, пару каких то слов, и в конце вообщем ставьте 5-10. А зачем и почему. Как это проверить в работе, эти же параметры не просто так придумали.

nixbrain
() автор топика
Ответ на: комментарий от snoopcat

см. PHP-FPM Tip 4

Еще один, да открыт уже этот мануал и еще 10 таких.

И где автор обьясняет почему у него

«pm.max_children = 5»

А у меня

pm.max_children = 50 ?????

nixbrain
() автор топика
Ответ на: комментарий от snoopcat

Таких манулов тьма, а вот к примеру мануал настройка и текст параметров что то я не нашел, того и создал тему, вы же администраторы должны знать это, а я как начинающий только ищу, учусь.

nixbrain
() автор топика
Ответ на: комментарий от nixbrain

сколько вам нужно - столько и ставьте, в зависимости от нагрузки.
если на сайте мало трафика хватит 5.
сколько используете смотрите через fpm-status, так же есть плагин для munin.
https://php.net/manual/ru/install.fpm.configuration.php

poiuty
()
Ответ на: комментарий от nixbrain

И где автор объясняет

ты жопой читаешь?

It’s good to test how many PHP-FPM processes a server could handle easily, first start Nginx and PHP-FPM and load some PHP pages, preferably all of the heaviest pages. Then check memory usage per PHP-FPM process example with Linux top or htop command. Let’s assume that the server has 512 Mb memory and 220 Mb could be used for PHP-FPM, every process use 24 Mb RAM (some huge content management system with plugins can easily use 20-40 Mb / per PHP page request or even more). Then simply calculate the server max_children value:
220 / 24 = 9.17

snoopcat ★★★★★
()
Ответ на: комментарий от poiuty

Можно еще вопрос, допустим, все запустили, за чем нужно следить ? что бы небыло утечки памяти, падение сервера и т д ? Т.е конкретные области какие то ? Что бы вдруг что предпринимать меры ?

nixbrain
() автор топика
Ответ на: комментарий от snoopcat

Добрый день, не сердитесь, я понимаю что для вас все ясно и понятно как день ясный, но извените, я не вы. То что там пишут, откуда там взяли 24мб рам, тоже не знаю. Мне нужен конретный пример на русском языке что бы я понял как это расчитать и поставить верное значение.

nixbrain
() автор топика
Ответ на: комментарий от snoopcat

Если что потом обращайтесь я вам помогу.

nixbrain
() автор топика
Ответ на: комментарий от dhameoelin

Ну просто после прочтение многих мануалов слишком стал ответсвенно отностится к настройкам, может они не очень так и важны будут по началу, хотя я думаю все настройки важны, они же создавались для чего то.Главное что бы когда я все запустил, нужно было следить за всем ! Что бы небыло утечки памяти или еще чего, это тоже стоит почитать как делать. Т.е какие основные места за которыми нужен глаз, ни когда ошибки начнут сыпатся а вообще.

nixbrain
() автор топика
Ответ на: комментарий от nixbrain

так и говори, «я не понимаю, что пишет автор», а не «где автор пишет?»

вот пример простейшей конфигурации.


; static - постоянное количество childrens вне зависимости от нагрузки.
pm = static 
; сколько у нас будет воркеров.
pm.max_children = 8
; сколько воркер может принимать запросов. 
pm.max_requests = 1024
; итого можем принять 8*1024=8192 запроса. 
; каждый воркер занимает около 8 метров памяти, итого 64. 
; если нужно больше, чем 8192 запроса - увеличиваем childrens/requests
; и не забываем следить за памятью.

с таким конфигом живёт достаточно нагруженная система (до 500 запросов в минуту) с не самым прямым кодом на php, аптайм полгода, брат жив.

snoopcat ★★★★★
()
Последнее исправление: snoopcat (всего исправлений: 1)
Ответ на: комментарий от nixbrain

Два совета тебе:

1) Пиши короткими предложениями, ибо ты не умеешь в осмысленные сложносочинённые/сложноподчинённые предложения.

2) Учи английский. 99% мануалов на английском.

dhameoelin ★★★★★
()
Ответ на: комментарий от nixbrain

Умей в английский.

нужен конретный пример на русском языке

Пшёл нахрен из моего уютного вебдева.

It’s good to test how many PHP-FPM processes a server could handle easily, first start Nginx and PHP-FPM and load some PHP pages, preferably all of the heaviest pages. Then check memory usage per PHP-FPM process example with Linux top or htop command. Let’s assume that the server has 512 Mb memory and 220 Mb could be used for PHP-FPM, every process use 24 Mb RAM (some huge content management system with plugins can easily use 20-40 Mb / per PHP page request or even more). Then simply calculate the server max_children value:
220 / 24 = 9.17

Хорошо бы проверить, с каким количеством процессов php-fpm сервер сможет нормально работать. Сначала запустим nginx и php-fpm и откроем несколько страничек на PHP. Предпочтетельней открыть самые «тяжелые». Затем проверим использование памяти для процесса php-fpm, например, с помощью линуксячьих top или htop. Представим, что у сервера 512 мегабайт оперативки, и что 220 метров из них мы можем использовать для php-fpm, а наш процесс съедает 24 мегабайта оперативной памяти (некоторые жирные CMS с плагинами могут с лёгкостью сожрать 20-40 метров на страницу, или даже более). После этого просто посчитаем max_children_value:
220 / 24 = 9.17

//переводчик из меня мерзейший, но суть понятна.

NeverLoved ★★★★★
()
Последнее исправление: NeverLoved (всего исправлений: 2)
Ответ на: комментарий от snoopcat

Спасибо, плюс минусь понятно.

У меня по дефауту стоит вот что

pm = dynamic
pm.max_children = 50
;pm.max_requests = 500 (закоментирован вообще)
pm.start_servers = 5
pm.min_spare_servers = 5

А что это за start servers ? spare server ? что там должно быть ?

nixbrain
() автор топика
Ответ на: комментарий от snoopcat

Спасибо, не такой уж вы и злой :) кот кот, занес вашу таблицу расчетов, что бы потом считать примерно как есть.

nixbrain
() автор топика
Ответ на: комментарий от invokercd

Я читаю маны и много читаю, не некоторые вещи мне все таки не понятны так как я только пол месяца знаком вообще с никсом, думаю это много обьясняет из моих вопросов ? :) Если бы я знал я бы не спрашивал, я ведь не все спрашиваю подряд, а только там где примерно понимаю что это, но хочу понять более конкрейтней, т.е что бы мне обьяснили можно сказать на пальцах уже опытные, т.е те кто сдесь, кроме богов. За что большое спасибо, вы мне помогаете понимать обьяснять я вам может тоже чем то помогу если нужно будет

nixbrain
() автор топика
Ответ на: комментарий от nixbrain

Тюнинг всегда уникален под конкретный проект. Универсальных решений тюнинга нет. Разве что оптимизация.

invokercd ★★★★
()
Ответ на: комментарий от invokercd

Помыл посуду, решил прилеч, заснул :)

А так да, ну я и так по возможности делаю что в моих силах - знаниях.

Конечно на практике, это будет не много другое, но это придаст опыта как говорится.

nixbrain
() автор топика
Ответ на: комментарий от nixbrain

не под сервер надо настраивать, а под конкретный проект (веб-приложение, которое будет там жить). учитывая всю специфику задач и нагрузки.

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

Ну я стараюсь я вот щас хочу все настроить, а потом перейти к тестированию, ну я образно представляю но все же хочу попробовать, потестировать бечмарком, или какими то другими способами, пока не нашел (которые бы сразу понял). Т.е я установлю сайт демо, с базой и пару постами, потом начну его как то тестировать и как то смотреть .. вообщем нужно разобраться за чем следить при тестировнии бечмарком

Просто тестирование думаю тоже важная вещь перед запуском а то вдруг чуть больше трафика или запросов и сайтом что то случится.. что то перестанет отвечать нужно поискать мануалы по тестированию хооршие и попытаться сделать

nixbrain
() автор топика
Ответ на: комментарий от nixbrain

за чем следить при тестировнии бечмарком

зависимость между количеством одновременных запросов и временем отклика страницы, за сообщениями в error-логах (всяческие limit exceeded), за load averages, свободной памятью, iotop. БД вообще отдельно нужно мониторить, много параметров в зависимости от используемой СУБД. а вообще рекомендую newrelic - он даже в бесплатной версии много интересного покажет о твоем сервере и приложении.

Komintern ★★★★★
()
Последнее исправление: Komintern (всего исправлений: 1)
Ответ на: комментарий от Komintern

Ну на счет бд, я уже получил веником :) читал про профилирование и индескы, там переделывал многое вообщем, правда потом не запускал на скормление трафику, но по статистики в разы ускорилась работа с бд. Меня пока интересует системная часть, то что вы написали выше, потому что я пока что дуб дубом :) в мониторинге. Но по постораюсь как то все организовать что бы мне понятно было по шагово что делать

nixbrain
() автор топика
Ответ на: комментарий от Komintern

А так на счет мониторинговых пакетов, я знаю только мунин.Ну устанвливал правда не разбирался до конца что там и как следить.

nixbrain
() автор топика
Ответ на: комментарий от nixbrain

newrelic

Интересно, почитал бегло, даже показует какие скрипты несут большую нагрузку, конечно организованно там все красиво и понятно, но - нужно уметь и в ручную делать анализ ! А потом уже прибегать к таким вот инструментам для «хомячков» как кто то сдесь сказал по поводу плеска :)

nixbrain
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.