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

Marcelo Gondim gondim em bsdinfo.com.br
Quarta Julho 11 13:57:05 BRT 2012


Em 11/07/2012 12:23, Ricardo Carlini Sperandio escreveu:
> Em 11 de julho de 2012 12:14, Marcelo Gondim <gondim em bsdinfo.com.br>escreveu:
>
>> 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
>>>
>>
>> -------------------------
>> 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 ?
>
Oi Ricardo, testei com o 9-Stable e com o 8.3-Stable ambos amd64.



Mais detalhes sobre a lista de discussão freebsd