Hospedagem compartilhada: como eles estimam o uso da CPU do servidor? [fechadas]

0

Estou usando vários serviços de hospedagem compartilhada e questionei muitas vezes: como eles calculam esses "segundos de CPU"?

Por exemplo, um deles me limitando com 300.000 segundos / mês, 10.000 segundos / 24h e 2.000 segundos / 2h. Mas os segundos podem depender significativamente do hardware e do software da hoster (ambos: meus aplicativos e o sistema operacional do hoster).

Portanto, tenho certeza de que, se eu executar uma solicitação SQL complicada e provavelmente ruim, que dura 10 segundos, provavelmente "gastarei" exatamente 10 segundos de CPU. Sem perguntas.

Mas se eu colocar um atraso em um script PHP ( <?php sleep(10); ?> ) vai custar-me 10 segundos de CPU? Ou se eu baixar uma página da web externa e ela durar 3 segundos - será a mesma nesse caso?

Principalmente Estou interessado no file_get_contents() do consumo de CPU do PHP.

    
por Roman Matveev 15.04.2015 / 15:17

1 resposta

1

Isso é feito pelo agendador do kernel, quando um processo é agendado para ser executado, o tempo em que ele está sendo executado é adicionado ao total desse processo. O planejador escolhe um processo para executar de 100 a 1000 vezes por segundo, dependendo do SO e da configuração. (Esse período de tempo é o intervalo de tempo.)

Um sleep(10) usará menos que um microssegundo de tempo de CPU porque faz com que o processo pare de ser executado. O agendador então escolherá outro processo para começar a executar (ou se não houver nenhum que esteja pronto para rodar, a CPU pode ficar inativa). Um cronômetro será criado para o processo que expira em 10 segundos. Nesse momento, o agendador escolherá o processo a ser executado na CPU no próximo intervalo de tempo disponível.

As operações que envolvem E / S de arquivo também farão com que o processo pare de ser executado enquanto a CPU aguarda que o disco ou a rede esteja pronta, assim eles não usarão muito tempo de CPU.

Operações que levam tempo de CPU seriam aquelas que lêem / escrevem variáveis, fazem operações matemáticas numéricas, constroem e varrem variáveis de string, loops e instruções if.

Não existe uma fórmula simples para informar quanto tempo de CPU será usado por um determinado programa. Depende do que exatamente o programa faz. A típica página da Web que está apenas lendo / escrevendo um banco de dados não usará muito tempo de CPU.

    
por 15.04.2015 / 21:34