{"id":13923,"date":"2022-11-12T12:00:06","date_gmt":"2022-11-12T15:00:06","guid":{"rendered":"https:\/\/absam.io\/blog\/?p=13923"},"modified":"2022-11-12T12:00:06","modified_gmt":"2022-11-12T15:00:06","slug":"melhor-performance-com-php-fpm","status":"publish","type":"post","link":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/","title":{"rendered":"Melhor Performance com PHP-FPM"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"13923\" class=\"elementor elementor-13923\" data-elementor-settings=\"{&quot;element_pack_global_tooltip_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e88e75d elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"e88e75d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ee5c8d0\" data-id=\"ee5c8d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ae6a4ce elementor-widget elementor-widget-text-editor\" data-id=\"ae6a4ce\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>O PHP-FPM (ou Fast Process Manager) oferece v\u00e1rias vantagens sobre o mod_php, por ser mais flex\u00edvel e por ser uma implementa\u00e7\u00e3o alternativa de PHP FastCGI amplamente usada e de alto desempenho. No entanto, se voc\u00ea estiver usando as configura\u00e7\u00f5es padr\u00e3o do gerenciador de pacotes, provavelmente n\u00e3o aproveitar\u00e1 ao m\u00e1ximo.<\/p>\n<p>Apresentaremos aqui uma breve vis\u00e3o geral sobre como melhorar o desempenho do PHP-FPM, discutindo os tr\u00eas tipos de gerenciadores de processos do PHP-FPM e qual \u00e9 o melhor para usar em qual circunst\u00e2ncia.<br \/>O PHP-FPM pode usar um dos t<a href=\"https:\/\/www.php.net\/manual\/en\/install.fpm.configuration.php#pm\" target=\"_blank\" rel=\"noopener\">r\u00eas tipos de gerenciamento de processos<\/a> :<\/p>\n<ul>\n<li>est\u00e1tico<\/li>\n<li>din\u00e2mico<\/li>\n<li>sob demanda<\/li>\n<\/ul>\n<p>Vamos ver o que cada um \u00e9 em um pouco de detalhe.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-293f30e elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"293f30e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2107454\" data-id=\"2107454\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a0fd658 elementor-widget elementor-widget-heading\" data-id=\"a0fd658\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Est\u00e1tico ( static )<\/h4>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1566bf1 elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"1566bf1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cba6f6e\" data-id=\"cba6f6e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-aad99a0 elementor-widget elementor-widget-text-editor\" data-id=\"aad99a0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Est\u00e1tico garante que um n\u00famero fixo de processos filho esteja sempre dispon\u00edvel para lidar com as solicita\u00e7\u00f5es do usu\u00e1rio. Isso \u00e9 definido com <a href=\"https:\/\/www.php.net\/manual\/en\/install.fpm.configuration.php#pm.max-children\" target=\"_blank\" rel=\"noopener\">pm.max_children<\/a>. Nesse modo, as solicita\u00e7\u00f5es n\u00e3o precisam esperar pela inicializa\u00e7\u00e3o de novos processos, o que a torna a abordagem mais r\u00e1pida.<\/p>\n<p>Supondo que voc\u00ea queira usar a configura\u00e7\u00e3o est\u00e1tica com 10 processos filhos sempre dispon\u00edveis, voc\u00ea a configuraria \/etc\/php\/8.1\/fpm\/pool.d\/www.conf (assumindo que voc\u00ea est\u00e1 usando o arquivo de configura\u00e7\u00e3o padr\u00e3o do PHP-FPM do Debian\/Ubuntu) da seguinte forma:<\/p>\n<p><code>pm = static<br \/>pm.max_children = 10<\/code><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9b94dfb elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"9b94dfb\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3dab26c\" data-id=\"3dab26c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4e0ee47 elementor-widget elementor-widget-text-editor\" data-id=\"4e0ee47\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Para ver se a mudan\u00e7a de configura\u00e7\u00e3o foi efetivada, ap\u00f3s reiniciar o PHP-FPM, execute pstree -c -H &lt;PHP-FPM process id&gt; -S &lt;PHP-FPM process id&gt;. Isso mostrar\u00e1 que existem dez processos dispon\u00edveis, como no exemplo abaixo.<\/p>\n<p>php-fpm8.1-+-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1 |-php-fpm8.1<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-830683b elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"830683b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1142859\" data-id=\"1142859\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1a033d1 elementor-widget elementor-widget-heading\" data-id=\"1a033d1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Din\u00e2mico (Dynamic)<\/h4>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-108ac06 elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"108ac06\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-946c437\" data-id=\"946c437\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f9ca697 elementor-widget elementor-widget-text-editor\" data-id=\"f9ca697\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Nesse modo, o PHP-FPM gerencia dinamicamente o n\u00famero de processos filho dispon\u00edveis e garante que pelo menos um processo filho esteja sempre dispon\u00edvel.<\/p>\n<p>Esta configura\u00e7\u00e3o usa cinco op\u00e7\u00f5es de configura\u00e7\u00e3o que s\u00e3o:<\/p>\n<ul>\n<li>pm.max_children: O n\u00famero m\u00e1ximo de processos filho que podem ser gerados.<\/li>\n<li>pm.start_servers: O n\u00famero de processos filhos a serem iniciados quando o PHP-FPM for iniciado.<\/li>\n<li>pm.min_spare_servers: O n\u00famero m\u00ednimo de processos filho inativos que o PHP-FPM criar\u00e1. Mais s\u00e3o criados se menos do que esse n\u00famero estiver dispon\u00edvel.<\/li>\n<li>pm.max_spare_servers: O n\u00famero m\u00e1ximo de processos filho inativos que o PHP-FPM criar\u00e1. Se houver mais processos filho dispon\u00edveis do que esse valor, alguns ser\u00e3o eliminados.<\/li>\n<li>pm.process_idle_timeout: O tempo ocioso, em segundos, ap\u00f3s o qual um processo filho ser\u00e1 eliminado.<\/li>\n<\/ul>\n<p>E como voc\u00ea calcula os valores para cada configura\u00e7\u00e3o? O artigo de <a href=\"https:\/\/medium.com\/@sbuckpesch\/apache2-and-php-fpm-performance-optimization-step-by-step-guide-1bfecf161534\" target=\"_blank\" rel=\"noopener\">Sebastian Buckpesch<\/a>, oferece a seguinte f\u00f3rmula:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4d10019 elementor-widget elementor-widget-text-editor\" data-id=\"4d10019\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p align=\"left\"><br \/><br \/><\/p>\n<table width=\"622\" cellspacing=\"0\" cellpadding=\"8\" bgcolor=\"#ffffff\">\n<thead>\n<tr>\n<th width=\"115\">\n<p align=\"center\">Contexto<\/p>\n<\/th>\n<th width=\"475\">\n<p align=\"center\"> Valor<\/p>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr bgcolor=\"#f9f9f9\">\n<td width=\"115\">\n<p>max_children<\/p>\n<\/td>\n<td width=\"475\">\n<p>(Total RAM \u2013 Mem\u00f3ria usada para Linux, DB, etc.) \/ tamanho do processo<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"115\">\n<p>start_servers<\/p>\n<\/td>\n<td width=\"475\">\n<p>N\u00famero de n\u00facleos de CPU x 4<\/p>\n<\/td>\n<\/tr>\n<tr bgcolor=\"#f9f9f9\">\n<td width=\"115\">\n<p>min_spare_servers<\/p>\n<\/td>\n<td width=\"475\">\n<p>N\u00famero de n\u00facleos de CPU x 2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"115\">\n<p>max_spare_servers<\/p>\n<\/td>\n<td width=\"475\">\n<p>Igual a start_servers<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p align=\"left\"><br \/><br \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca988a3 elementor-widget elementor-widget-text-editor\" data-id=\"ca988a3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Tamb\u00e9m precisamos definir pm.process_idle_timeout, que \u00e9 o n\u00famero de segundos ap\u00f3s o qual um processo ocioso ser\u00e1 eliminado.<\/p>\n<p>Digamos que nosso servidor tenha quatro n\u00facleos (4 vCPU) e 8 GB de RAM. Se assumirmos que o Linux e daemons relacionados est\u00e3o usando cerca de 2 GB (use free -hl para obter um valor mais espec\u00edfico), isso nos deixa em torno de 6192 MB.<\/p>\n<p>Agora, quanta mem\u00f3ria cada processo est\u00e1 usando? Para calcular isso, existe um script Python chamado <a href=\"https:\/\/raw.githubusercontent.com\/pixelb\/ps_mem\/master\/ps_mem.py\" target=\"_blank\" rel=\"noopener\">ps_mem.py<\/a>. Crie uma arquivo com ele na sua maquina com mesmo nome e depois de execut\u00e1-lo, usando sudo python ps_mem.py | grep php-fpm, voc\u00ea obter\u00e1 uma sa\u00edda semelhante \u00e0 seguinte:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ee12ae elementor-widget elementor-widget-text-editor\" data-id=\"0ee12ae\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p># 28.4 MiB + 33.8 MiB = 62.2 MiB php-fpm8.1 (11) <br \/>A primeira coluna \u00e9 a mem\u00f3ria privada. A segunda coluna \u00e9 a mem\u00f3ria compartilhada. A terceira coluna \u00e9 a RAM total usada. A quarta coluna \u00e9 o nome do processo.<\/p>\n<p>De todo modo, voc\u00ea pode ver que o tamanho do processo \u00e9 de 62,2 MiB. Ent\u00e3o, alimentando todas essas informa\u00e7\u00f5es em nossa f\u00f3rmula, chegamos ao seguinte:<\/p>\n<p># Round the result up. (8192 &#8211; 2000) \/ 62.2 <br \/>Com base nisso, chegamos aos seguintes valores de configura\u00e7\u00e3o:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d32404e elementor-widget elementor-widget-text-editor\" data-id=\"d32404e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<table width=\"178\" cellspacing=\"0\" cellpadding=\"8\" bgcolor=\"#ffffff\">\n<thead>\n<tr>\n<th width=\"32\">\n<p align=\"center\">Contexto<\/p>\n<\/th>\n<th width=\"115\">\n<p align=\"center\">Valor<\/p>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr bgcolor=\"#f9f9f9\">\n<td width=\"32\">\n<p>max_children<\/p>\n<\/td>\n<td width=\"115\">\n<p>100<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"32\">\n<p>start_servers<\/p>\n<\/td>\n<td width=\"115\">\n<p>32<\/p>\n<\/td>\n<\/tr>\n<tr bgcolor=\"#f9f9f9\">\n<td width=\"32\">\n<p>min_spare_servers<\/p>\n<\/td>\n<td width=\"115\">\n<p>16<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"32\">\n<p>max_spare_servers<\/p>\n<\/td>\n<td width=\"115\">\n<p>32<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4178243 elementor-widget elementor-widget-text-editor\" data-id=\"4178243\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Vamos deixar pm.process_idle_timeout o padr\u00e3o de10s. Supondo que estejamos satisfeitos com essas configura\u00e7\u00f5es, configurar\u00edamos da seguinte forma:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e99b716 elementor-widget elementor-widget-text-editor\" data-id=\"e99b716\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: left; padding-left: 40px;\">pm = dynamic<\/p>\n<p style=\"text-align: left; padding-left: 40px;\">pm.max_children = 100<\/p>\n<p style=\"text-align: left; padding-left: 40px;\">pm.start_servers = 32<\/p>\n<p style=\"text-align: left; padding-left: 40px;\">pm.min_spare_servers = 16<\/p>\n<p style=\"text-align: left; padding-left: 40px;\">pm.max_spare_servers = 32<\/p>\n<p style=\"text-align: left; padding-left: 40px;\">pm.max_requests = 200<\/p>\n<p>Voc\u00ea tamb\u00e9m pode usar ferramentas de monitoramento de mem\u00f3ria regularmente para monitorar quanta mem\u00f3ria seu aplicativo est\u00e1 usando. Existem v\u00e1rias op\u00e7\u00f5es dispon\u00edveis para PHP, incluindo<a href=\"https:\/\/github.com\/arnaud-lb\/php-memory-profiler\" target=\"_blank\" rel=\"noopener\"> php-memprof<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a7ac49a elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"a7ac49a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3dafc40\" data-id=\"3dafc40\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2035917 elementor-widget elementor-widget-heading\" data-id=\"2035917\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Sob demanda (ondemand)<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9878188 elementor-widget elementor-widget-text-editor\" data-id=\"9878188\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ondemand tem processos de fork PHP-FPM quando os pedidos s\u00e3o recebidos. Para configurar o PHP-FPM para us\u00e1-lo, precisamos definir pm como ondemand e fornecer valores para:<\/p>\n<ul>\n<li>max_children<\/li>\n<li>process_idle_timeout<\/li>\n<li>max_requests<\/li>\n<\/ul>\n<p>max_requests define o n\u00famero de solicita\u00e7\u00f5es que cada processo filho deve executar antes de reaparecer. A documenta\u00e7\u00e3o sugere que essa configura\u00e7\u00e3o \u00e9 \u00fatil para contornar vazamentos de mem\u00f3ria.<\/p>\n<p>O gerenciador de processos mais ideal para a maioria das aplica\u00e7\u00f5es \u00e9 o esquema ondemand, em que nenhum processo filho \u00e9 criado na inicializa\u00e7\u00e3o, mas sim gerado sob demanda. Os processos filhos s\u00e3o bifurcados apenas quando novas solicita\u00e7\u00f5es se conectar\u00e3o com base em pm.max_children e pm.process_idle_timeout,<br \/>que define o n\u00famero de segundos ap\u00f3s os quais um processo inativo ser\u00e1 eliminado .<\/p>\n<p>Supondo que tenha as mesmas configura\u00e7\u00f5es de hardware que usou para configurar o modo dynamic<br \/>acima, n\u00f3s o configurar\u00edamos da seguinte forma com base nos c\u00e1lculos:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-441c620 elementor-widget elementor-widget-text-editor\" data-id=\"441c620\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p style=\"padding-left: 40px;\">pm = ondemand<\/p>\n<p style=\"padding-left: 40px;\">pm.max_children = 100<\/p>\n<p style=\"padding-left: 40px;\">pm.process_idle_timeout = 10s<\/p>\n<p style=\"padding-left: 40px;\">pm.max_requests = 200<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4a7676a elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"4a7676a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-568a92b\" data-id=\"568a92b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d1ff76b elementor-widget elementor-widget-image\" data-id=\"d1ff76b\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"384\" src=\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpbanner-min-1-1024x384.png\" class=\"attachment-large size-large wp-image-13939\" alt=\"\" srcset=\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpbanner-min-1-1024x384.png 1024w, https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpbanner-min-1-300x113.png 300w, https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpbanner-min-1-768x288.png 768w, https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpbanner-min-1.png 1333w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a88cf95 elementor-section-boxed elementor-section-height-default elementor-section-height-default mkdf-parallax-row-no mkdf-row-grid-no mkdf-disabled-bg-image-bellow-no\" data-id=\"a88cf95\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-72d5afe\" data-id=\"72d5afe\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d424748 elementor-widget elementor-widget-heading\" data-id=\"d424748\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Qual configura\u00e7\u00e3o \u00e9 ideal para voc\u00ea?<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7fd1b92 elementor-widget elementor-widget-text-editor\" data-id=\"7fd1b92\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>A resposta \u00e9: \u201cdepende\u201d, pois sempre depende do tipo de aplicativo que voc\u00ea est\u00e1 executando. No entanto, aqui est\u00e3o algumas sugest\u00f5es sobre qual configura\u00e7\u00e3o escolher.<\/p>\n<p><strong>Aplica\u00e7\u00f5es de Baixo tr\u00e1fego ou poucas requisi\u00e7\u00f5es.<\/strong><\/p>\n<p>Se voc\u00ea tiver um site ou aplicativo de baixo tr\u00e1fego\/requisi\u00e7\u00f5es, como um que hospeda um painel de controle de back-end, como cPanel, use ondemand.&nbsp;A mem\u00f3ria ser\u00e1 salva, pois os processos filhos s\u00f3 ser\u00e3o gerados quando forem necess\u00e1rios e eliminados quando n\u00e3o forem mais necess\u00e1rios.&nbsp;Como \u00e9 um back-end, os usu\u00e1rios podem esperar um momento ou dois a mais enquanto um thread \u00e9 gerado para lidar com sua solicita\u00e7\u00e3o.<\/p>\n<p><strong>Aplica\u00e7\u00f5es de Alto tr\u00e1fego ou muitas requisi\u00e7\u00f5es<\/strong><\/p>\n<p>Se voc\u00ea tiver um site de alto tr\u00e1fego, use est\u00e1tico e ajuste as configura\u00e7\u00f5es com base em suas necessidades ao longo do tempo e nos recursos de hardware dispon\u00edveis. Pode parecer um exagero ter um grande n\u00famero de processos filhos sempre prontos para receber solicita\u00e7\u00f5es.<\/p>\n<p>No entanto, sites de alto tr\u00e1fego precisam responder o mais r\u00e1pido poss\u00edvel. Portanto, \u00e9 essencial usar static para que um n\u00famero suficiente de processos filho esteja pronto para isso.<\/p>\n<p>Ao usar o ondemand, os processos filhos provavelmente consumir\u00e3o muita mem\u00f3ria sendo gerados e eliminados, e o atraso de inicializa\u00e7\u00e3o ter\u00e1 um impacto no desempenho.<\/p>\n<p>Usar din\u00e2mico provavelmente n\u00e3o ser\u00e1 t\u00e3o ruim, dependendo da configura\u00e7\u00e3o. No entanto, voc\u00ea pode acabar com uma configura\u00e7\u00e3o que espelha efetivamente a est\u00e1tica.<\/p>\n<p><strong>Recomenda\u00e7\u00f5es<\/strong><\/p>\n<p>Essa foi uma r\u00e1pida introdu\u00e7\u00e3o ao ajuste do PHP-FPM para melhor desempenho. Examinamos as tr\u00eas configura\u00e7\u00f5es diferentes do gerenciador de processos, suas configura\u00e7\u00f5es relacionadas e discutimos quando cada configura\u00e7\u00e3o faz sentido.<\/p>\n<p>Recomendamos que cada administrador avalie a melhor configura\u00e7\u00e3o do e mem\u00f3ria RAM para uso no seu servidor, e portanto, realize as configura\u00e7\u00f5es mais adequadas pra atender as necessidades de seus usu\u00e1rios.<\/p>\n<p>Como dica deixo aqui um link interessante para melhorar o desempenho configurando pools para o seu php-fpm: <a href=\"https:\/\/www.nginx.com\/blog\/thread-pools-boost-performance-9x\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.nginx.com\/blog\/thread-pools-boost-performance-9x\/<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>O PHP-FPM (ou Fast Process Manager) oferece v\u00e1rias vantagens sobre o mod_php, por ser mais flex\u00edvel e por ser uma implementa\u00e7\u00e3o alternativa de PHP FastCGI amplamente usada e de alto desempenho. No entanto, se voc\u00ea estiver usando as configura\u00e7\u00f5es padr\u00e3o [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":13943,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[],"class_list":["post-13923","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conteudo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Melhor Performance com PHP-FPM - Blog da Absam<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Melhor Performance com PHP-FPM\" \/>\n<meta property=\"og:description\" content=\"O PHP-FPM (ou Fast Process Manager) oferece v\u00e1rias vantagens sobre o mod_php, por ser mais flex\u00edvel e por ser uma implementa\u00e7\u00e3o alternativa de PHP FastCGI amplamente usada e de alto desempenho. No entanto, se voc\u00ea estiver usando as configura\u00e7\u00f5es padr\u00e3o [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog da Absam\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/absam.io\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-12T15:00:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"467\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ramon Soarez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ramon Soarez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/\"},\"author\":{\"name\":\"Ramon Soarez\",\"@id\":\"https:\/\/absam.io\/blog\/#\/schema\/person\/033a3fffb2e13d3eb8dd34f19d08a026\"},\"headline\":\"Melhor Performance com PHP-FPM\",\"datePublished\":\"2022-11-12T15:00:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/\"},\"wordCount\":1334,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/absam.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png\",\"articleSection\":[\"Conte\u00fado\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/\",\"url\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/\",\"name\":\"Melhor Performance com PHP-FPM - Blog da Absam\",\"isPartOf\":{\"@id\":\"https:\/\/absam.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png\",\"datePublished\":\"2022-11-12T15:00:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage\",\"url\":\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png\",\"contentUrl\":\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png\",\"width\":800,\"height\":467},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/absam.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Melhor Performance com PHP-FPM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/absam.io\/blog\/#website\",\"url\":\"https:\/\/absam.io\/blog\/\",\"name\":\"Blog da Absam\",\"description\":\"Conte\u00fados sobre cloud computing, data centers, infraestrutura, automa\u00e7\u00e3o e alta performance para profissionais e empresas que buscam tecnologia de ponta\",\"publisher\":{\"@id\":\"https:\/\/absam.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/absam.io\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/absam.io\/blog\/#organization\",\"name\":\"Blog da Absam\",\"url\":\"https:\/\/absam.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/absam.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2024\/02\/logo-absam-150x150-1-1.png\",\"contentUrl\":\"https:\/\/absam.io\/blog\/wp-content\/uploads\/2024\/02\/logo-absam-150x150-1-1.png\",\"width\":150,\"height\":150,\"caption\":\"Blog da Absam\"},\"image\":{\"@id\":\"https:\/\/absam.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/absam.io\",\"https:\/\/br.linkedin.com\/company\/absam-io\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/absam.io\/blog\/#\/schema\/person\/033a3fffb2e13d3eb8dd34f19d08a026\",\"name\":\"Ramon Soarez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/e3cc09f6cfc63a7452c4542bf8c71588dd2616a0ae05df93846ac5930721d165?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e3cc09f6cfc63a7452c4542bf8c71588dd2616a0ae05df93846ac5930721d165?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e3cc09f6cfc63a7452c4542bf8c71588dd2616a0ae05df93846ac5930721d165?s=96&d=mm&r=g\",\"caption\":\"Ramon Soarez\"},\"url\":\"https:\/\/absam.io\/blog\/author\/ramon\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Melhor Performance com PHP-FPM - Blog da Absam","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/","og_locale":"pt_BR","og_type":"article","og_title":"Melhor Performance com PHP-FPM","og_description":"O PHP-FPM (ou Fast Process Manager) oferece v\u00e1rias vantagens sobre o mod_php, por ser mais flex\u00edvel e por ser uma implementa\u00e7\u00e3o alternativa de PHP FastCGI amplamente usada e de alto desempenho. No entanto, se voc\u00ea estiver usando as configura\u00e7\u00f5es padr\u00e3o [&hellip;]","og_url":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/","og_site_name":"Blog da Absam","article_publisher":"https:\/\/www.facebook.com\/absam.io","article_published_time":"2022-11-12T15:00:06+00:00","og_image":[{"width":800,"height":467,"url":"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png","type":"image\/png"}],"author":"Ramon Soarez","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Ramon Soarez","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#article","isPartOf":{"@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/"},"author":{"name":"Ramon Soarez","@id":"https:\/\/absam.io\/blog\/#\/schema\/person\/033a3fffb2e13d3eb8dd34f19d08a026"},"headline":"Melhor Performance com PHP-FPM","datePublished":"2022-11-12T15:00:06+00:00","mainEntityOfPage":{"@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/"},"wordCount":1334,"commentCount":0,"publisher":{"@id":"https:\/\/absam.io\/blog\/#organization"},"image":{"@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage"},"thumbnailUrl":"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png","articleSection":["Conte\u00fado"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/","url":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/","name":"Melhor Performance com PHP-FPM - Blog da Absam","isPartOf":{"@id":"https:\/\/absam.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage"},"image":{"@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage"},"thumbnailUrl":"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png","datePublished":"2022-11-12T15:00:06+00:00","breadcrumb":{"@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#primaryimage","url":"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png","contentUrl":"https:\/\/absam.io\/blog\/wp-content\/uploads\/2022\/11\/phpfpm-min-1.png","width":800,"height":467},{"@type":"BreadcrumbList","@id":"https:\/\/absam.io\/blog\/melhor-performance-com-php-fpm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/absam.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Melhor Performance com PHP-FPM"}]},{"@type":"WebSite","@id":"https:\/\/absam.io\/blog\/#website","url":"https:\/\/absam.io\/blog\/","name":"Blog da Absam","description":"Conte\u00fados sobre cloud computing, data centers, infraestrutura, automa\u00e7\u00e3o e alta performance para profissionais e empresas que buscam tecnologia de ponta","publisher":{"@id":"https:\/\/absam.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/absam.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/absam.io\/blog\/#organization","name":"Blog da Absam","url":"https:\/\/absam.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/absam.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/absam.io\/blog\/wp-content\/uploads\/2024\/02\/logo-absam-150x150-1-1.png","contentUrl":"https:\/\/absam.io\/blog\/wp-content\/uploads\/2024\/02\/logo-absam-150x150-1-1.png","width":150,"height":150,"caption":"Blog da Absam"},"image":{"@id":"https:\/\/absam.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/absam.io","https:\/\/br.linkedin.com\/company\/absam-io"]},{"@type":"Person","@id":"https:\/\/absam.io\/blog\/#\/schema\/person\/033a3fffb2e13d3eb8dd34f19d08a026","name":"Ramon Soarez","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/e3cc09f6cfc63a7452c4542bf8c71588dd2616a0ae05df93846ac5930721d165?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e3cc09f6cfc63a7452c4542bf8c71588dd2616a0ae05df93846ac5930721d165?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e3cc09f6cfc63a7452c4542bf8c71588dd2616a0ae05df93846ac5930721d165?s=96&d=mm&r=g","caption":"Ramon Soarez"},"url":"https:\/\/absam.io\/blog\/author\/ramon\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/posts\/13923","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/comments?post=13923"}],"version-history":[{"count":0,"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/posts\/13923\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/media\/13943"}],"wp:attachment":[{"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/media?parent=13923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/categories?post=13923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/absam.io\/blog\/wp-json\/wp\/v2\/tags?post=13923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}