Performance: socket do mysql vs. remote do mysql

2

Estou executando alguns projetos que consomem muita energia do MySQL (10.000 qps em horários de pico) ... agora eu estou querendo saber qual seria a melhor configuração para mantê-lo rápido e suave, mesmo se os números de usuários crescem.

Atualmente estou usando 1 servidor com nginx, php-fpm e mysql (dual xeon, 24 GB de ram, SSDs) e conectando-me ao MySQL através de um soquete local.

Eu teria uma "perda de desempenho" se eu tivesse um servidor MySQL remoto com a mesma especificação para dividir o carregamento do servidor web / db?

    
por Kilian Schefer 20.12.2011 / 23:30

2 respostas

3

Haverá um impacto no desempenho, mas na parte de latência. Então, se você executar muitas conexões paralelas, provavelmente não notará. Se você estiver fazendo 10kqps serialmente em uma (ou apenas algumas) conexões, você definitivamente verá a diferença.

O processamento da consulta em si não demorará mais, apenas o tempo de ida e volta de dados de e para o cliente aumentará (até mesmo a Ethernet de 10 Gbit teria um papel aqui) em torno de um milissegundo (para linha de 1 Gbit). Portanto, se a consulta em si levar mais um milissegundo, você estará limitado a cerca de 500 qps por conexão.

Com o soquete local, o tempo de ida e volta é praticamente na faixa de dezenas de microssegundos ...

    
por 21.12.2011 / 00:48
0

Would i experience a "performance drop" if i had a remote mySQL server of the same specification in order to split up webserver / db load?

Não, se você tiver um link Gigabit ou mais rápido para o servidor db.

    
por 21.12.2011 / 00:38