Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rica mourao

Aumentar desempenho e confiabilidade servidor Web php

Recommended Posts

Pessoal boa tarde,

 

Estou trabalhando no ramo de desenvolvimento web faz pouco tempo, tenho algumas dúvidas e gostaria da ajuda de quem é mais experiente no assunto ou que já passou pelo mesmo problema que estou passando.

 

No local onde trabalho criei um sistema em php e mysql, o sistema foi criado para substituir o excel e até agora está desempenhando muito bem essa função.

 

O banco de dados possui 5 tabelas uma delas com 33 mil registros.

 

Como servidor estou utilizando um intel i5 com 2.5 ghz de processador, 3 gb de memória e hd de 500gb.

Nesta máquina estou rodando windows xp professional, o servidor php é WAMP server.

 

Minhas preocupações são as seguintes:

 

O Wampserver é um pacote pré-configurado que deixa o php e o mysql funcionando.

Como o wamp vem com configuração padrão creio que o sistema esteja perdendo desempenho, principalmente pelo fato de 40 usuarios utilizar o sistema simultaneamente e o banco de dados possuir 33 mil registros.

 

Antes a tabela que possuir maior quantidade de registros no banco estava em innodb.

Quando muitas pessoas utilizavam o sistema e as querys demoravam muito tempo para serem executadas (slow querys), imaginem a lentidão e os usuários reclamando rsrs.

 

Depois de pesquisar sobre melhora de performance descobri que o myisam se adequava melhor as minhas necessidades, alterei a tabela para myisam e a performance melhorou significativamente.

 

Porém meus usuários estão aumentando, a minha quantidade de registros no banco aumenta a cada dia e minha dor de cabeça também rsrs.

 

Como deixar o desempenho rápido para consultas no banco ?, isso é como deixar muitos usuarios conectados simultaneamente sem perder performance ao carregar os dados (cerca de 80 funcionarios, previsão de 100 mil registros na tabela nos próximos 2 meses).

 

 

Outra dúvida não seria melhor migrar tudo para linux e configurar o apache manualmente ?

 

Estou pensando em instalar o centos para me ajudar nessa tarefa, o que vcs acham?.

 

Alguém pode me dar um caminho para resolver essas questões?.

 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhando com banco de dados, quanto mais memória física melhor.

IO de disco também costuma ser bem crítico, mas com o recurso que você tem disponível não vejo muito como melhorar.

Um sistema operacional Linux pode ajudar sim, você vai ter mais recurso disponível para ser utilizado pelo sistema de banco de dados além de outras "vantagens" agregadas. Porém, se isto representar um problema para instalar e configurar, talvez seja melhor ficar com Windows (preferencialmente uma versão Server) mesmo.

 

O servidor web esta respondendo bem? A queda de velocidade esta relacionado apenas com o tempo de resposta das consultas? Seus índices estão otimizados? O volume de resultados dessas consultas é grande? Esta usando limit?

 

Aqui tem umas "paradas" que podem ajudar:

http://dev.mysql.com/doc/refman/5.5/en/optimization.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

O servidor está respondendo rapidamente, sim a queda de velocidade está relacionada as consultas (muitos usuarios consultando ao mesmo tempo), na verdade essa parte de indices eu não entendo muito bem, pelo pouco que sei ele melhora o desempenho do bd certo? o índice está vinculado a tabela do banco ou a algum campo especifico tipo chave primária ?.

 

As vezes os usuarios retiram relatorios com as 33 mil linhas do banco, é claro que demora um pouco pra carregar, porém tem casos que consultas paginas com limit de 100 registros por página, não era pra demorar tanto, certo?.

 

Prog no seu entendimento esse meu servidor supre bem minha demanda?.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prog no seu entendimento esse meu servidor supre bem minha demanda?.

 

Não é possível determinar assim, teria que conhecer melhor a aplicação e as consultas que são executadas com maior frequência. Como já disse, opcionalmente, você pode aumentar a quantidade de memória, para isto fazer valer você vai precisar de um sistema operacional de 64 bits. Para medir performance de disco você pode usar o perfmon.

 

Um índices funciona como "atalho", quando uma determinada consulta é executada o otimizador pode escolher fazer um full scan (ler a tabela inteira - estratégia ruim para grandes volumes de informação), mas se existirem atalhos o otimizador escolherá um deles (índice) para ajudar a selecionar os registros. Toda chave primária, por definição, é indexada, mas você pode ter quantos índices precisar.

 

Esse relatório com os 33mil registros é executado com frequência? Se for um relatório executado 1 vez por mês, por exemplo, você pode agendar um batch noturno para o relatório já ficar pronto no último dia do mês. Se for um relatório sumarizado, a mesma estratégia pode ser utilizada, só que para rodar todos os dias ou uma vez por semana (em horário alternativo).

Compartilhar este post


Link para o post
Compartilhar em outros sites

No curto prazo acho que o departamento não queira gastar com hardware então instalar windows server 2008 ja iria ajudar???.

 

Preciso estudar melhor isso dos indices, se eu colar aqui no forum como está atualmente desenhada minha tabela você pode me ajudar a melhorá-la ?

 

Nas querys eu preciso colocar esse indice? ou apenas utilizar a chave primária?

 

Então o relatório é gerado na frequencia de 2 em duas horas.

 

Além deste programa de medir perfomance no hd existe algum outro para verificar a perfomance das querys ou verificar qual é o pico de lentidão?

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para medir a performance do banco de dados você pode usar o próprio MySQL, mas isto vai sobrecarregar o sistema, provavelmente seus usuários vão "chiar".

http://www.dicas-l.com.br/freedb/freedb_20060925.php#.TynGRatwcb8

 

Os índices que podem ser criados você avalia de acordo com suas consultas.

Isso aqui pode ajudar: http://dev.mysql.com/doc/refman/4.1/pt/mysql-indexes.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Achei interessante essa instrução Benchamark, o mysql retorna o tempo médio das querys.

 

Para otimização das consultas vou estudar melhor o os índices e tentar adequar meu banco a eles.

 

Quanto a esse outro programa perfmon ele só roda no linux??? no windows não tem algo parecido?.

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto a esse outro programa perfmon ele só roda no linux??? no windows não tem algo parecido?.

 

É o contrário, perfmon é um programa do Windows.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.