[FUG-BR] Diferença absurda do mysql no Linux para o do FreeBSD
Marcelo Gondim
gondim em bsdinfo.com.br
Quarta Julho 11 12:14:11 BRT 2012
Em 11/07/2012 11:49, Edson Brandi escreveu:
> Em 11 de julho de 2012 10:36, Marcelo Gondim <gondim em 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
>
Mais detalhes sobre a lista de discussão freebsd