Linux distro para aplicação web de alta carga [fechado]

1

Eu estou escrevendo um aplicativo da web, que deve trabalhar com 1000 solicitações / segundo usando o Apache e o MySQL. No meu servidor eu tenho o Ubuntu instalado. A minha aplicação pode ser mais rápida se eu instalar o FreeBSD em vez do Ubuntu?

Obrigado.

    
por Alex Pliutau 11.11.2011 / 08:49

5 respostas

3

A diferença entre várias distribuições * nix em velocidade é mínima. Eu sugiro que você use o nginx em vez do Apache. Isso pode realmente salvar o seu dia:)

    
por 11.11.2011 / 08:51
3

Ao otimizar o desempenho, a seleção do sabor do SO ou do Linux é o menos importante.

  • No lado do hardware, seu tipo de carga de trabalho provavelmente é feliz se o servidor tiver muita RAM, digamos 8 ou 16 GB. É claro que a conexão de rede também deve ser rápida.

  • Primeiro, cubra suas costas certificando-se de ter pelo menos configurações semi-saudáveis para o seu Apache, PHP e MySQL. Quais são esses, isso é difícil de dizer pela sua pergunta de duas longas e meia linhas, considerando que existem livros escritos sobre esse tópico. Na verdade, um livro separado para cada um dos softwares acima. Considere também substituir o Apache por lighttpd ou nginx, a menos que você tenha algum motivo específico para o Apache.

  • Em seguida, certifique-se de que seu aplicativo não tenha pecados fatais típicos, como falta de armazenamento em cache, consultas SQL não ideais ou desnecessárias, buscando alguns recursos do servidor de terceiros em cada carregamento de página, processando algumas miniaturas de um original imagem repetidamente cada carregamento de página, falta de índices SQL e assim por diante.

  • Quando tiver certeza de que tudo está configurado corretamente, faça o benchmark de seu servidor com o Apache Benchmark, JMeter, Siege ou uma infinidade de outras ferramentas disponíveis. Veja se o seu servidor pode lidar com a carga. Se não, volte para a prancheta e descubra o porquê.

  • Finalmente, quando se trata de sistema operacional, não é sobre o que o sistema operacional é (pelo menos quando ponderando entre * BSD / Linux), mas como ele é ajustado. Escolha com cuidado o sistema de arquivos para seu uso; Se você tiver muitos arquivos pequenos, o ext4 pode não ser a melhor escolha no Linux, por exemplo. Por outro lado, as configurações padrão do kernel em distribuições típicas são boas para a maioria das cargas de trabalho, mas em ambientes mais exóticos, coisas como elevador de I / O, configurações de memória compartilhada ou parâmetros de rede podem ter que ser ajustados. Se você realmente precisa entrar nesse estágio, parabenize-se por um serviço popular e / ou comece a pensar em obter mais servidores.

por 11.11.2011 / 09:07
0

Tanto quanto o seu sistema operacional é baseado em Linux / Unix, então não há problema. Apenas o sistema operacional deve ser TUNED corretamente e com muito cuidado. A coisa real é o ajuste de desempenho do Apache e MySQL. e você certamente precisará de um balanceador de carga para receber 1.000 solicitações por segundo. ou, por outro lado, você pode usar um hardware muito pesado com muita memória e CPU para acomodar tudo na mesma máquina. as coisas que você deve se preocupar é - Balanceamento cuidadoso da carga - Ajuste de desempenho do Apache - ajuste de desempenho do MySQL (e também separação do MySQL do servidor Apache)

    
por 11.11.2011 / 09:02
0
Primeiro, o BSD não é linux, mas tudo bem. As distribuições BSD são tipicamente mais rápidas que o linux, mas não o suficiente para você se estressar com isso. Mas o fato é que o seu sistema operacional é um fator muito pequeno na taxa de transferência (exceção de sistemas operacionais ruins).

O sistema operacional, o servidor da Web, o banco de dados e a linguagem de programação terão um impacto insignificante na taxa de transferência em comparação com o hardware. O único fator notável será a coragem em seu servidor. Compre mais memória RAM, mais núcleos e processadores mais rápidos. Isso vai acelerar as coisas.

Mas além disso, se você está comprando seu próprio servidor, provavelmente está em sua conexão doméstica. Se você colocar isso em uma linha dsl padrão, é improvável que você possa distribuir mais de 100 RPS. Basta ser um pêssego e comprar hospedagem na web em algum lugar que tenha conexão rápida com a interblag.

    
por 11.11.2011 / 08:56
0

Você também pode usar o ArchLinux, que é praticamente tão simples quanto possível em uma distribuição Linux.

Como outras pessoas já responderam, normalmente não há realmente nenhuma diferença apreciável na velocidade entre distribuições; o que importa é sua configuração e a quantidade de processos em execução. Dito isso, Arch é uma boa escolha porque você está no controle de absolutamente tudo; você pode ter certeza de que nada mais irá desacelerar seu servidor sem o seu conhecimento.

Além da distribuição, você precisa analisar o fluxo do seu aplicativo. O Apache tem uma grande pegada e não pode servir como muitas conexões simultâneas como alguns de seus pares single-threaded (por exemplo, nginx, lighttpd), mas é a única boa opção para um número de aplicativos. Se suas páginas forem bem armazenadas em cache, você estiver usando a otimização de código de bytes e o tempo de consulta for baixo, não há motivo para não conseguir lidar com 1.000 conexões simultâneas.

Mas se você estiver fazendo algum tipo de processamento não trivial, será necessário começar a pensar em servidores da Web mais eficientes ou agrupar 2 ou mais servidores Apache em uma configuração com balanceamento de carga.

    
por 12.11.2011 / 04:53