Estamos atualizando o hardware para um servidor de banco de dados MySQL (o banco de dados tem cerca de 200 GB). Estamos obtendo 4x SSDs Samsung 850 Pro e planejamos executá-los em uma configuração RAID10. Além disso, 128 GB de RAM.
A cotação do nosso fornecedor inclui Xeons duplos de 6 núcleos (E5-2620V2 2.1G) com uma opção de atualização para E5-2630V2 2.6G.
O preço das CPUs mais rápidas seria de cerca de US$ 622 a mais (cerca de US$ 311 cada), o que representa cerca de 6,5% do preço do servidor.
Como não temos o hardware, é claro, não posso compará-lo e ver se as CPUs mais rápidas fariam diferença para nosso banco de dados e a maneira como o consultamos. Mas existe alguma maneira de ter uma ideia se as CPUs mais rápidas ajudarão? ou seja, supondo que o gargalo atual seja E/S e substituamos os discos por SSDs, é possível/provável que as CPUs E5-2620V2 se tornem o gargalo?
Obrigado.
Sou um orgulhoso proprietário de um Samsung 850 Pro para minha máquina desktop. É um ótimo disco, mas não é server-grade, e está longe dos PCI Flashcards vendidos pela Virident e FusionIO (para colocar exemplos de algumas marcas conhecidas). No hardware especializado, uma versão recente do MySQL é quase obrigatória, e alguns ajustes de configuração são necessários para obter a maioria deles (alterar buffer, somas de verificação innodb, logs de transação, área de gravação dupla, etc.).
Verifique alguns dos benchmarks de fornecedores (Oracle MySQL, MariaDB, Percona), pois eles geralmente possuem seus recursos nesses tipos de dispositivos.
No entanto, uma generalização não pode ser alcançada - a maioria dos problemas depende da carga. Para dar um exemplo extremo: se todas as suas consultas forem assim:
Sua CPU provavelmente será seu gargalo, enquanto se você inserir apenas novas linhas, a maior parte do atraso provavelmente será devido à latência do disco. Você deve verificar se com o hardware atual, a carga da CPU é alta, o que provavelmente aumentará com o novo armazenamento - mas você ainda pode encontrar outros problemas, como problemas de simultaneidade devido a vários threads tentando atualizar a mesma linha ao mesmo tempo.
É possível, mas apenas com uma configuração ruim (o que mencionei antes), assumindo versões recentes do MySQL (5.6, 5.7). Lembre-se de que os SSDs ainda são muito mais lentos que o primeiro nível de cache. Você provavelmente deve perguntar novamente quando o hardware estiver instalado e, enquanto isso, ler fontes como:
Embora não seja possível simular o hardware exato, você pode obter algumas estimativas comparando hardware local mais simples com diferenças relativas semelhantes. Se você estiver atualizando da ferrugem giratória em uma configuração de RAID semelhante, poderá comparar uma única unidade tradicional com um único SSD em uma caixa de desenvolvimento/teste com uma quantidade semelhante de RAM.
Não seria uma medida verdadeiramente precisa, é claro, mas você verá que tipo de diferença de taxa de transferência pode ver em cargas de trabalho normais para seu aplicativo, para poder estimar melhor o valor da atualização da CPU. Provavelmente seria um medidor mais útil do que um conselho geral que não seja específico para sua aplicação.