[FUG-BR] Diferença absurda do mysql no Linux para o do FreeBSD

Ricardo Carlini Sperandio rcarlini em gmail.com
Quarta Julho 11 12:23:19 BRT 2012


Em 11 de julho de 2012 12:14, Marcelo Gondim <gondim at bsdinfo.com.br>escreveu:

> Em 11/07/2012 11:49, Edson Brandi escreveu:
> > Em 11 de julho de 2012 10:36, Marcelo Gondim <gondim at bsdinfo.com.br>
> escreveu:
> >> Pessoal,
> >>
> >> Peguei uma base mysql rodando no FreeBSD e setei o max_connection para
> >> 4000. Tenho 12Gb de ram nessa máquina que fiz o teste, meu i7. :)  após
> >> rodar o tuning-primer o memory usage simplesmente estoura. Conforme
> abaixo:
> >>
> >> MEMORY USAGE
> >> Max Memory Ever Allocated : 438 M
> >> Configured Max Per-thread Buffers : 48.46 G
> >> Configured Max Global Buffers : 426 M
> >> Configured Max Memory Limit : 48.87 G
> >> Physical Memory : 13.00 G
> >>
> >> Max memory limit exceeds 90% of physical memory
> >>
> >> Valores até 1000 eu consegui no FreeBSD, sem estourar, mas ocupava
> >> bastante ram mesmo assim.
> >> Quando eu faço a mesma coisa em uma máquina equivalente, com mais
> >> memória, só que com Linux, usando os 4000 em max_connections a coisa
> >> fica boa conforme abaixo:
> >>
> >> MEMORY USAGE
> >> Max Memory Ever Allocated : 10.10 G
> >> Configured Max Per-thread Buffers : 11.71 G
> >> Configured Max Global Buffers : 2.13 G
> >> Configured Max Memory Limit : 13.85 G
> >> Physical Memory : 23.53 G
> >> Max memory limit seem to be within acceptable norms
> >>
> >> Reparem que no caso do Linux o "Configured Max Per-thread Buffers" e o
> >> "Configured Max Memory Limit" não estouraram a ram disponível. O que
> >> poderia estar causando isso no FreeBSD? Já procurei em tudo quanto foi
> >> lugar pra tentar resolver e a única coisa que eu havia visto é que no
> >> Linux suportaria as 4000 conexões mas em outras plataformas não.
> >>
> >> Quem puder fazer esses testes e comprovar é só dizer.  :)
> > Marcelo,
> >
> > Antes de palpitar, me diga uma coisa...
> >
> > O seu FreeBSD roda em 32 ou 64 Bits? O seu mysqld é 32 ou 64 bits?
>
> Opa Edson blz?
>
> 64 bits. Tudo compilado, nada instalado por pacote. Toda instalação
> feita via ports em amd64.  :)
>
> >
> > Como está o seu kern.maxdsiz ? Pelos numero me parece que sua maquina
> > ainda está usando o tamanho default de 512 Mb como sendo o segmento
> > máximo de memoria que pode ser alocada por um processo, esse é o
> > primeiro problema que eu vejo...
> # sysctl kern.maxdsiz
> kern.maxdsiz: 34359738368
>
>
> > Cada thread do mysql vai consumir no minimo uns 200k de memoria, para
> > 4000 conexões/threads vc precisa permitir no minimo 1.5 Gb de memoria
> > alocada por processo.
> >
> > De uma olhada nos demais limites do seu sistema com o ulimit-a , vc
> > pode precisar mexer em outros items...
> # ulimit -a
> socket buffer size       (bytes, -b) unlimited
> core file size          (blocks, -c) unlimited
> data seg size           (kbytes, -d) 33554432
> file size               (blocks, -f) unlimited
> max locked memory       (kbytes, -l) unlimited
> max memory size         (kbytes, -m) unlimited
> open files                      (-n) 200000
> pipe size            (512 bytes, -p) 1
> stack size              (kbytes, -s) 524288
> cpu time               (seconds, -t) unlimited
> max user processes              (-u) 5547
> virtual memory          (kbytes, -v) unlimited
> swap size               (kbytes, -w) unlimited
>
> Pois é Edson estou tentando descobrir mas tá complicado. :)
>
> >
> > Como estão os parâmetros da sessão [mysqld] do seu my.cnf na sua
> > instalação FreeBSD e na sua instalação Linux? Eles estão iguais?
> > Existem uma série de itens de configuração que mudam radicalmente o
> > consumo de memoria do seu servidor, e a comparação pra ser justa tem
> > que ser feita em cenários iguais.
>
> Estão iguais sim. Fiz só para efeito de testes. O que acontece é que não
> importa o quanto eu acerte os outros parâmetros no my.cnf, colocar 4000
> em max_connections vai tudo pro ralo.
> Se você tentar fazer aí acredito que vá ocorrer o mesmo resultado. Isso
> surgiu por causa do nosso site de torrents que devido ao announce e
> quantidade de peers o número de conexões chegam em 4000.
>
> >
> > Se tiver tempo, recomendo a leitura do artigo
> > http://mysql.rjweb.org/doc.php/memory , vai ajudar a entender melhor
> > como o mysql trata o uso de memoria.
>
> Vou ler sim. Mas realmente está muito estranho isso. Como está gritante
> essa diferença.
>
> >
> > [ ]´s Brandi
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
>
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>

Qual a versão do teu FreeBSD ?

-- 
Ricardo Carlini Sperandio
Analista/Consultor Linux Sênior  LPIC-3
Connectcom - GISUT / CEF
GEDEL: Grupo Especializado em Desenvolvimento Linux
VIPLAB/PUC-MG mestrando em informática
DCC/UFMG  - Bacharel em Ciência da Computação

Computers are like air conditioners.
They don't work when you open Windows.


Mais detalhes sobre a lista de discussão freebsd