Entenda o funcionamento do CPU Time, memória, processamento e isolamento de recursos nos planos de Hospedagem e Revenda na kingHost.
Neste artigo vamos explicar o que é e como funciona o CPU Time e por que uma aplicação pode gerar erro 500 ou 503. Também explicaremos como funciona a distribuição de recursos. Por fim, falamos sobre o upgrade de recursos, quando necessário.
O conceito de processo
Processo é algo que está sendo executado no servidor. No caso do servidor web, é a requisição. No caso do PHP, ele executa o código no servidor e entrega para quem está solicitando. Um script de formulário rodará dentro de um processo no servidor, assim como um script para conexão com o banco e qualquer outro site, como um WordPress, por exemplo.
Sendo assim, cada requisição é tratada por um processo, e se o seu site tiver muito acesso e ele só tiver 1 processo para tratar essas requisições, haverá um momento em que essas requisições começarão a ser enfileiradas no servidor.
Já com 2 processos ou mais para essas requisições, elas serão processadas mais rápido.
Fazendo uma analogia, imagine 50 pessoas em um supermercado com somente 1 caixa atendendo ou então essas mesmas 50 pessoas sendo atendidas por 2 ou 3 caixas (ou mais). No fim das contas, se houver mais atendentes no caixa (processos), as filas serão diluídas mais rápido.
O conceito de poder de processamento
Poder de processamento é capacidade de executar processos das aplicações. Ele é medido por parte do servidor em GHz. Quanto maior o valor, mais poder de processamento.
Os nossos servidores web operam com CPUs com 2.6 GHz.
O conceito de memória
A memória, ou então memory_limit, é a capacidade de recurso que o processo terá para executar determinada ação. Ela está totalmente ligada ao quão complexo um determinado processo pode ser.
Suponhamos que você está nos jogos olímpicos, atuando no esporte de levantamento de peso. Você treinou bastante tempo e sabe que consegue levantar 130 Kg, mas para ganhar a medalha de ouro você precisa levantar 180 Kg. Pois bem, pode ser que você até consiga, mas com muito esforço. Provavelmente se você precisar repetir o feito mais 10 vezes seguidas, terá algum tipo de lesão, e aí está o nosso estouro de recursos, onde acontecem os erros 500 e 503.
Dito tudo isso, note que você precisa adequar a quantidade de processos e memória de acordo com o que é necessário para o seu site para que tenha bom desempenho.
Como funciona o nosso CPU Time
O CPU Time é uma garantia de tempo de execução das aplicações dos clientes na kingHost, e não uma limitação. O que garantimos é o tempo de execução e não o percentual em determinado momento da execução.
Padrão da métrica: 100% de uso de um núcleo do servidor em 1 segundo será considerado 1 segundo de CPU Time.
Ele é válido ao longo do dia. O período de CPU Time é contabilizado pelo próprio CGroups/FGroups (sistemas de coleta de dados e limitação/isolamento de recursos de CPU e memória para aplicações web) e ele usa qualquer processamento advindo do usuário por CPU usada.
Se um usuário tiver 4 processos rodando por 1 segundo em 4 CPUs, ele será contabilizado por 4 segundos em seu total.
O tempo fornecido parece pouco?
Para grande maioria das necessidades, o recurso oferecido é suficiente para suprir a necessidade de processamento.
Segundo nossos estudos, e também o que é oferecido no mercado, disponibilizamos um bom tempo de CPU Time e de forma transparente (dados visíveis ao cliente).
Para aplicações que demandarem mais poder de processamento e CPU Time, é indicado o uso de Cloud.
E se você ultrapassar o limite de CPU Time, o que acontece?
O CPU Time por plano é uma garantia de uso do poder de processamento e não uma limitação. Você até pode ultrapassar este valor, mas provavelmente a sua aplicação apresentará dificuldades de execução (e possíveis erros 500).
No Painel de Controle, no ícone Performance, você poderá gerenciar o uso de CPU Time e identificar se precisará de um plano com maiores recursos.
Exemplo:
O que não é contabilizado no uso de CPU?
Conteúdos HTML, imagem (sem processamento por parte da aplicação, como redimensionamento), JS e CSS não contabilizam uso da CPU.
Além deles, o Varnish também não é contabilizado. Aliás, o Varnish é um outro servidor, está fora do servidor web. Ele consome bastante memória RAM, mas pouco poder de processamento.
Recursos nos planos de hospedagem
Uma coisa importante que é necessário entender é a distribuição dos recursos dentro dos planos.
A memória é dividida entre os sites por razão absoluta. Isto é, conforme o número de sites, o valor total é dividido pelo todo.
Imagine um cenário onde há um plano Hospedagem III (com 1 GB de memória). Em um primeiro momento, o cliente hospedava apenas dois domínios. Então, a quantidade de memória disponível para cada um dos sites era 512MB. Depois de algum tempo o cliente adicionou um terceiro site, ficando uma porção de 340MB para cada um dos sites (1 GB dividido por 3).
Recurso | Hospedagem I | Hospedagem II | Hospedagem III |
CPU time (segundos) | 240 | 480 | 980 |
Memória | 256MB | 512MB | 1GB |
Unidades de processamento | 1 | 2 | 4 |
Processos (config. padrão) | 4x 64MB | 4x 128MB | 4x 256MB |
Limite de processos | 64x 4MB | 128x 4MB | 256x 4MB |
Recursos nos planos de revenda
Até 18/02/2019 disponibilizávamos nos planos antigos (Planos I, II, III, IV, V, VI, VII, VIII, IX e X) 384MB (sendo 3 processos de 128 MB) por domínio e não era possível configurar o número de processos e nem alterar este limite, a não ser que o revendedor optasse pela contratação de um servidor dedicado.
Foram desenvolvidas algumas melhorias em nossa Revenda de Hospedagem e, em 19/02/2019, passamos a disponibilizar 256MB por domínio com a possibilidade de se gerenciar o número de processos através da ferramenta Configuração PHP, do painel de controle.
Recurso | Revenda 70 | Revenda 140 | Revenda 210 |
CPU time (segundos) | 240 | 240 | 240 |
Memória | 256MB | 256MB | 256MB |
Exemplos de situações de uso
Muitos processos e pouco uso de memória
Vamos supor uma aplicação webservice de consultas (json). Uma aplicação dessas não consome quase nada de memória.
Se o site tiver um grande número de consultas, o interessante é ter o máximo de processos possíveis para atender melhor a demanda do site.
Uma possível configuração para esse uso poderia ser: 64 processos de 4MB no plano Hospedagem I.
Um único processo com bastante memória
Se for um site Magento, o ideal é passar um único processo com o máximo de memória. O Magento precisa de uma grande memória para a aplicação devido ao conteúdo executado demandar maior poder.
Um outro exemplo nesse mesmo cenário é um WordPress com plugins Elementor, Visual Composer e WooCommerce. É muito provável que os recursos do plano de hospedagem I não sejam suficientes.
Uma possível configuração para esse uso poderia ser: 1 processo de 256MB no plano Hospedagem I.
Upgrade de recursos
Você pode optar por fazer upgrade de recursos, uma vez que o plano já não comporte o que é necessário para a sua aplicação.
Geralmente associamos a falta de recursos como um problema da hospedagem, mas uma vez que o site esteja crescendo, a infraestrutura também deve crescer junto. É um fator positivo no fim das contas, isso demonstra que o site tem evoluído.
Upgrade para planos de hospedagem
O upgrade para planos de hospedagem pode se dar tanto de um plano mais baixo para um mais alto como, por exemplo, do Hospedagem I para Hospedagem II, quanto contratando diretamente um serviço de Cloud.
Upgrade para planos de revenda
Nas revendas, como o recurso é o mesmo independente do plano, os revendedores têm uma forma diferente de realizar o upgrade destes recursos, através da ferramenta UPGRADE DE CPU E MEMÓRIA, do painel de controle.
Nesta tela, o revendedor tem pacotes adicionais de recursos de processamento e memória a serem contratados para um site em específico.
Sobre os pacotes adicionais:
Recurso | Pacote 1 | Pacote 2 |
Memória | 512MB | 1024MB |
Unidades de processamento | 2 | 4 |
Custo mensal | R$ 19,90 | R$ 39,99 |
Se precisar de mais recursos além dos pacotes, você precisará contratar um plano Cloud. Uma vez que você tenha contratado, o serviço será disponibilizado na mesma hora e a cobrança virá somente no mês seguinte.