Page 1

Análise de impacto de multiprocessamento em um servidor Web O site bazar.projetointegrador.com é um site criado na faculdade SENAC GO pelo prof. Diogo Maia juntamente com a turma de GTI III, tendo como proposta ser um site de vendas online onde os alunos da própria faculdade podem colocar à venda objetos que possuem em casa e não utilizam mais. Tendo como modelo sites conhecidos como MercadoLivre e OLX, ele tem o objetivo de aproximar vendedores de compradores no próprio espaço da faculdade e na comunidade. Utilizando o site webpagetest.com fizemos um teste sobre o desempenho do servidor que abriga o site para sabermos se ele comporta uma quantidade maior de acessos. O teste é completo, mostrando todas as informações necessárias para uma boa avaliação do serviço. Após os teste obtivemos alguns número que iremos passar separados por partes para uma melhor compreensão. Temos duas opções de Multiprocessamento que são o Worker e o o Prefork que serão apresentados abaixo juntamente com as suas vantagens e desvantagens. Prefork MPM lida com solicitações como apche 1.3. Como o nome indica este será pré garfo processo filho necessário ao iniciar apache. É apropriado para sites que evita enfiar a compatibilidade para as bibliotecas non-thread-safe. É também conhecido como o melhor MPM para isolar cada pedido. Um único processo de controle é responsável pelo lançamento de processos filhos que escutam conexões e servi-los quando eles chegarem. Apache sempre tenta manter vários processos do servidor de reposição ou inativo, que estão prontos para atender as solicitações recebidas. Desta forma, os clientes não precisam esperar por um novo processo filho a ser bifurcado diante de seus pedidos podem ser atendidos. Podemos ajustar o processo de reposição através da “conf apche”. Para um servidor normal, que é ter 256 conexões simultâneas pode usar as configurações prefork padrão. Perfork é o módulo padrão dado pelo apache. # StartServers: o número de processos de servidor para começar # MinSpareServers: número mínimo de processos servidores que são mantidos livre # MaxSpareServers: número máximo de processos servidores que são mantidos livre # MaxClients: número máximo de processos de servidores autorizados a começar a diretiva # MaxRequestsPerChild define o limite sobre o número de pedidos que um processo servidor cada criança irá lidar. Após pedidos MaxRequestsPerChild, o processo filho vai morrer. Se MaxRequestsPerChild é 0, então o processo nunca irá expirar O Módulo Worker Multi-Processing (MPM) implementa um servidor multi-threaded multi-processo híbrido. Usando threads para atender as solicitações, é capaz de atender um grande número de solicitações, com menos recursos do sistema que um servidor baseado em processo. As diretrizes mais importantes utilizados para controlar este MPM são ThreadsPerChild, que controla o número de threads implementados por cada processo filho e MaxClients, que controla o número máximo total de segmentos que podem ser lançados.


Vantagem: O uso da memória e performance sábio é melhor do que no prefork. Desvantagem: trabalhador não funcionará corretamente com linguagens como PHP. Um processo de controle único (o pai) é responsável pelo lançamento de processos filho. Cada processo filho cria um número fixo de threads do servidor, conforme especificado na diretiva ThreadsPerChild, bem como um fio ouvinte que escuta para conexões e passa-las para um segmento do servidor para processar quando eles chegam. Apache sempre tenta manter um conjunto de peças threads do servidor ou inativo, que estão prontos para atender as solicitações recebidas. Desta forma, os clientes não precisam esperar por novos tópicos ou processos a serem criados antes de os seus pedidos podem ser atendidos. O número de processos que serão inicialmente lançados é definido pela diretiva StartServersDurante. A operação, o Apache avalia o número total de segmentos ociosos em todos os processos e os garfos ou elimina os processos para manter esse número, dentro dos limites especificados pelo MinSpareThreads e MaxSpareThreads . Uma vez que este processo é muito auto-regulação, raramente é necessário modificar essas diretivas de seus valores padrão. O número máximo de clientes que podem ser servidos simultaneamente (isto é, o número total máximo de segmentos em todos os processos) é determinada pela diretiva MaxClients. O número máximo de processos filho ativos é determinada pela diretiva MaxClients dividido pela diretiva ThreadsPerChild. A escolha do melhor método de multiprocessamento para o site é o worker por todas as suas vantagens e especificações, seria o mais indicado visando o objetivo do projeto que é um site estável e seguro e rápido de compra e venda, e possibilitará um crescimento considerável nos acessos devido a qualidade que proporcionará ao serviço.

So_