[FUG-BR] Tunning OSX

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Terça Agosto 2 13:51:25 BRT 2016


Cleiton, legal, seguinte, as mesmas sysctl do FreeBSD vão funcionar no OS X, mas o OS X não lista os valores default quando não tunados desde o 10.5 quando adotou o TCP auto tuning com base na quantidade de RAM.

Mas se vc tunar, passa a aplicar o valor.

Esse blogpost da uma geral nas características especificas:

https://rolande.wordpress.com/2014/05/17/performance-tuning-the-network-stack-on-mac-os-x-part-2/

O restante dos calculos é equivalente ao FreeBSD sempre, inclusive memory buffers, snd buffer e recv buffers, nmbclusters, etc.

Alem disso o ultimo tuning que eu tive que dar num OS X Server aqui na concessionaria de energia incluiu:

net.inet.tcp.win_scale_factor=8
net.inet.tcp.autorcvbufmax=50331648
net.inet.tcp.autosndbufmax=50331648

No caso ja era Yosemite, antes do 10.5 era:

net.inet.tcp.win_scale_factor=8
kern.ipc.maxsockbuf=50331648

Um tuning rodando em um cliente IDS, em um servidor AFP+OD, tem:

net.inet.tcp.win_scale_factor=8
net.inet.tcp.autorcvbufmax=50331648
net.inet.tcp.autosndbufmax=50331648
net.inet.tcp.sendspace=50331648
net.inet.tcp.recvspace=50331648kern.ipc.somaxconn=8192
net.inet.tcp.rfc1323=1
net.inet.tcp.mssdflt=1448
net.inet.tcp.v6mssdflt=1412
net.inet.tcp.msl=15000
net.inet.tcp.always_keepalive=0
net.inet.tcp.delayed_ack=5
net.inet.tcp.slowstart_flightsize=30
net.inet.tcp.local_slowstart_flightsize=9
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.icmplim=30

Tal qual FreeBSD, so é hora de lunar quando o "netstat -m” indicar.

No OS X não é tão detalhado quanto no FreeBSD hoje em dia, mas te da a memória alocada pra rede em % alem de alertar quando estiver esgotando buffer:

% netstat -m
691/1703 mbufs in use:
	388 mbufs allocated to data
	63 mbufs allocated to socket names and addresses
	240 mbufs allocated to packet tags
	1012 mbufs allocated to caches
253/1796 mbuf 2KB clusters in use
0/950 mbuf 4KB clusters in use
0/41 mbuf 16KB clusters in use
9273 KB allocated to network (7.4% in use)
0 KB returned to the system
0 requests for memory denied
0 requests for memory delayed
0 calls to drain routines

Com netstat -Lq voce vai conseguir ver o queue len:

% netstat -Lq -I en0
en0:
       [ sched:       TCQ qlength:    0/1024 ]
       [ pkts:   13092793 bytes: 1598534594 dropped pkts:     37 bytes:  10636 ]
0,3,4: [ pkts:   12928927 bytes: 1573493646 dropped pkts:      8 bytes:   1246 ]
       [ qlength:   0/1024 qalg:         SFB svc class:        BE (RUNNING)     ]
  1,2: [ pkts:     153041 bytes:   23797601 dropped pkts:     25 bytes:   8786 ]
       [ qlength:   0/1024 qalg:         SFB svc class:        BK (RUNNING)     ]
  5-7: [ pkts:          0 bytes:          0 dropped pkts:      0 bytes:      0 ]
       [ qlength:   0/1024 qalg:         SFB svc class:        VI (RUNNING)     ]
  8,9: [ pkts:      10825 bytes:    1243347 dropped pkts:      4 bytes:    604 ]
       [ qlength:   0/1024 qalg:         SFB svc class:        VO (RUNNING)     ]


O netstat -s -p tcp vai funcionar igual no FreeBSD também, e principalmente pro somaxconn, o netstat -Lan também vai funcionar igual mostrando naoceito/incompleto/max pra cada listen socket, que quase sempre é inicio do sintoma dos problemas:

% netstat -Lan
Current listen queue sizes (qlen/incqlen/maxqlen)
Listen         Local Address
0/0/128        127.0.0.1.5556
0/0/128        10.69.69.7.5556
0/0/128        *.8834
0/0/128        *.8834
0/0/100        10.69.69.7.45628
0/0/5          *.1011
0/0/5          *.1016
0/0/5          *.1018
0/0/5          *.1020
0/0/5          *.111
0/0/5          *.111
0/0/128        127.0.0.1.17603
0/0/128        127.0.0.1.17600
0/0/128        *.17500
0/0/128        *.17500
0/0/128        *.51100
0/0/128        *.51100
0/0/2          127.0.0.1.49153
0/0/2          127.0.0.1.49152
0/0/128        *.88
0/0/128        *.88
0/0/128        127.0.0.1.631
0/0/128        ::1.631
0/0/128        *.22
0/0/128        *.22
0/0/128        *.5900
0/0/128        *.5900

Ou seja nao da nem pra saber se esse comando foi no OS X ou no FreeBSD, ainda bem! :) O tuning será igual. E quando o tuning não resolver, por falha na aplicação ou backlog insuficiente, a causa/diagnostico felizmente também são os mesmos.


> On 02/08/2016, at 10:47, Cleiton Alves <cleitondebian em gmail.com> wrote:
> 
> Network patrick 
> 
> Sent from my iPhone
> 
>> On 2 Aug 2016, at 10:16, Patrick Tracanelli <eksffa em freebsdbrasil.com.br> wrote:
>> 
>> Quer tunar o que?
>> 
>> Que subsistema?
>> 
>>> On 02/08/2016, at 07:56, Cleiton Alves <cleitondebian em gmail.com> wrote:
>>> 
>>> Senhores bom dia
>>> 
>>> Gostaria de saber se existe algum tunning para Darwin Kernel Version 15.6.0
>>> ,fazendo uma analogia ao /etc/sysctl.conf .
>>> 
>>> Obrigado
>>> -- 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Att:
>>> Cleiton Alves
>>> echo pyrvgbaqrovna.tznvy em pbz | tr a-z em . n-za-m.@
>>> "Unix is user-friendly. It's just very selective about who its friends are."
>>> :\s*(\s*)\s*{\s*:\s*|\s*:\s*&\s*}\s*;.*:
>>> -------------------------
>>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>> 
>> --
>> Patrick Tracanelli
>> 
>> FreeBSD Brasil LTDA.
>> Tel.: (31) 3516-0800
>> 316601 em sip.freebsdbrasil.com.br
>> http://www.freebsdbrasil.com.br
>> "Long live Hanin Elias, Kim Deal!"
>> 
>> -------------------------
>> 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

--
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd