[MASOCH-L] Mysql

Leonardo Rodrigues Magalhães leolistas at solutti.com.br
Sun Oct 28 20:03:27 BRST 2007


    (redação ... desculpa gente, não briguem comigo :)  )

    Esse produto ai eu não conhecia ... ele pega pentes convencionais de 
memória RAM e 'converte' eles em disco. Interessante ... mas vamos analisar.

    O uso de informações em algum tipo de memória volátil é muito 
perigoso. Leia o anúncio onde a pessoa explica que a bateria segura a 
informação por 15 horas. E se faltar energia no final de semana inteiro 
??? lá se foram seus dados pro espaço. Claro que é uma situação extrema 
.... mas não podemos desconsiderá-la.

    Talvez valesse a pena utilizar SSDs (Solid State Disk) de verdade, 
que utilizam memória eletrônica porém não-voláteis, os famosos HDs Flash 
que estão começando a ser utilizados em notebooks top de linha. Exemplo:

http://cgi.ebay.com/32GB-Solid-State-Disk-SSD-2-5-SATA-Laptop-Hard-Drive_W0QQitemZ320173041357QQihZ011QQcategoryZ116342QQssPageNameZWDVWQQrdZ1QQcmdZViewItem

    Pena que nunca vi pra vender no Brasil. E se alguém tiver, o preço 
vai ser altíssimo. 400 dólares nos Estados Unidos, vai chegar aqui no 
Brasil, legal com NF e tudo, na casa dos 2000 reais.

    Aliás, nunca tinha visto preço desses novos SSDs ... 400 dólares nos 
Estados Unidos pra 32Gb ... mesmo que chegue aqui por 2000-2500, ainda 
assim está MUITO mais em conta que essa placa ai que você apontou do 
Mercado Livre. 1050 reais por 4Gb (R$ 262,5/Gb), se conseguirmos 2500 
reais em 32Gb teremos R$ 78,13/Gb.

    Agora ainda assim, vamos desconsiderar preço, eu ainda acho que é 
uma solução que mereçe pelo menos alguma pensada, já que não trata-se de 
uma solução mágica.

    É claro que a utilização de um disco 'eletrônico' vai reduzir a 
quase zero os seek times e a leitura dos dados do disco pro kernel vai 
ser quase instantânea. Mas isso por si só não tira o fato de que o MySQL 
vai ter que 'processar' 1,3Gb (ou mais) de dados pra processar cada 
query do sistema dele que tenha que varrer a tabela inteira. A gente 
melhora ao nível quase máximo a taxa de transferência entre dispositivo 
de I/O e kernel, mas ainda existe o processamento da tabela inteira. 
Pode ser que reduza pela metade, pode ser que reduza 3/4 ... mas numa 
tabela desse tamanho, o tempo de processamento nunca vai ser 1-2 
segundos, mesmo que a informação venha de uma mídia eletrônica.

    Mesmo que a leitura seja mais rápida, ainda vamos ter o problema dos 
locks. Claro que leitura mais rápida, tabela menos tempo bloqueada. Mas 
o problema continua existindo.

    E por último, não podemos esquecer que o Linux utiliza muito 
sabiamente a memória RAM da máquina. Se a memória não está alocada, vai 
tudo pra cache e buffers de gravação de disco. A máquina em questão tem 
bastante memória (4Gb). Se ela não tiver outras tabelas grandonas, essa 
de 1,3Gb for a única tabela 'pesada', então muito provavelmente grande 
parte dela já está alocada em memória RAM, através dos caches e buffers 
de I/O que o Linux automaticamente faz. Na primeira passada depois de um 
reboot, aí sim a leitura vai acontecer direto do disco. Mas nas 
próximas, muita coisa já virá de memória RAM. É assim automaticamente.

    Agora se o cara tiver várias tabelas enormes e/ou tiver algum outro 
sistema que aloque bastante memória, talvez não sobre tanta memória 
assim pra caches e buffers. Seria legal que o criador ai da thread nos 
disesse se essa tabela de 1,3Gb é basicamente a única pesadona ou se ele 
contém várias tabelas nesse nível de tamanho. Melhor ainda seria se ele 
falasse pra gente qual o tamanho inteiro do database dele !! Se o 
database inteiro tem 2Gb, com a máquina de 4Gb, em pouco tempo  após o 
reboot a grande maioria das tabelas estarão em buffers e cache, 
reduzindo bastante (e de forma automática) o I/O em disco.

    Usar um disco RAM ou SSD vai melhorar a situação dele ?? Acredito 
que sim. É substituir e melhorar. Agora resta saber se a melhora vai ser 
suficiente para que o sistema volte a ficar plenamente utilizável de 
novo. Não adianta nada melhorar, você conseguir mensurar que melhorou, 
porém ainda assim o sistema ficar lentão. Não importa quantos segundos a 
query leva pra executar. Importa é a percepção de rapidez do sistema que 
o usuário tem.

    Dito tudo isso e sabendo que o Linux utiliza muito sabiamente a 
memória RAM que está sobrando, talvez seja uma solução mais rápida e 
imediata simplesmente aumentar ainda mais a memória RAM do servidor, já 
que esse aumento gerará, automaticamente e sem fazer absolutamente nada 
de configuração, com que as tabelas vão para memória RAM através de 
caches e buffers.

    Será que a máquina dele suporta mais de 4Gb ??? SIM

http://www.dell.com/content/products/productdetails.aspx/pedge_2950?c=us&cs=04&l=en&s=bsd&~section=specs#tabtop

PowerEdge 2950 Server Specs
Up to 32GB (8 DIMM slots): 256MB/512MB/1GB/2GB/4GB Fully Buffered Dimms 
(FBD). 533/667MHz




Antonio Carlos Pina escreveu:
> Depois que tanta gente escreveu tanta coisa legal, eu vou dar meu pitaco
> mais voltado para a solução do problema de forma rápida.
>
> Considerando que você tenha um problema de modelagem de BD ou de programação
> (os citados select * from recorrentes, por exemplo, em cada página que vc
> entra lá vem um select * from..) talvez você precise de uma solução RÁPIDA
> enquanto resolve isso (reescrever código, banco, etc)
>
> DEPENDENDO do tamanho das suas tabelas e da velocidade que elas crescem,
> isso aqui pode ser uma solução:
>
> http://produto.mercadolivre.com.br/MLB-63419971-_JM
>
> É um "disco ram" acessível através de uma interface SATA. Esse possui 4Gb e
> custa, no mercado livre, R$ 1050,00. Ou seja, muito mais barato que
> reescrever sua aplicação (preste só atenção no crescimento do banco, por
> favor !)
>
> Você poderia copiar para ele suas maiores tabelas (como essa problemática de
> 1,3Gb) e o problema de acesso estaria resolvido, até que você pudesse
> trabalhar nas alterações de código e remodelagem do banco.
>
> Detalhe importante: Li sobre esse troço na Internet. Eu mesmo nunca usei. Na
> teoria, seria facílimo mover a(s) tabela(s) para dentro desse disco e criar
> links no SO para elas.
>
> Abs e boa sorte!
>   

-- 


	Atenciosamente / Sincerily,
	Leonardo Rodrigues
	Solutti Tecnologia
	http://www.solutti.com.br

	Minha armadilha de SPAM, NÃO mandem email
	gertrudes at solutti.com.br
	My SPAMTRAP, do not email it






More information about the masoch-l mailing list