Esta seção trará algumas formas de otimização do servidor SAMBA que fazem
diferença quando os valores adequados são utilizados: A primeira é a ativação
de um cache de gravação/leitura de arquivos. Este cache é feito pela opção
write cache size
e funciona fazendo o cache dos arquivos que
serão lidos/gravados. Ele é esvaziado assim que o arquivo for fechado ou
quando estiver cheio. O valor especificado nesta opção é em bytes e o padrão é
"0" para não causar impacto em sistemas com pouca memória (ou centenas de
compartilhamentos). Exemplo:
[publico] path = /pub comment = Diretório de acesso público read only = yes public = yes write cache size = 384000
Compartilha o diretório /pub
(path =
/pub) como compartilhamento de nome publico
([publico]), seu acesso será feito como somente leitura
(read only = yes) e o tamanho do cache de leitura/gravação
reservado de 384Kb (write cache size = 384000).
Deixar a opção para seguir links simbólicos ativada (follow
symlinks
) garante mais performance de acesso a arquivos no
compartilhamento. A desativação da opção wide links
em
conjunto com o uso de cache nas chamadas getwd (getwd cache
)
permite aumentar a segurança e tem um impacto perceptível na performance dos
dados.
A desativação da opção global nt smb support também melhora a performance de acesso dos compartilhamentos. Esta é uma opção útil para detectar problemas de negociação de protocolo e por padrão, ela é ativada.
Caso utiliza um valor de depuração de log muito alto (debug level), o sistema ficará mais lento pois o servidor sincroniza o arquivo após cada operação. Em uso excessivo do servidor de arquivos, isso apresenta uma degradação perceptível de performance.
A opção prediction
permite que o SAMBA faça uma leitura
adiante no arquivo abertos como somente-leitura enquanto aguarda por próximos
comandos. Esta opção associada com bons valores de write cache
size pode fazer alguma diferença. Note que o valor de leitura nunca
ultrapassa o valor de "read size".
A opção read size permite obter um sincronismo fino entre a leitura e gravação do disco com o envio/recebimento de dados da rede. O valor é dependente da instalação local, levando em consideração a velocidade de disco rígido, rede, etc. O valor padrão é 16384.
Em casos onde um NFS montado ou até mesmo leitura em discos locais é
compartilhada, o parâmetro strict locking definido para
yes
pode fazer alguma diferença de performance. Note que
nem todos os sistemas ganham performance com o uso desta opção e não deve ser
usada em aplicativos que não requisitam o estado do lock de arquivo ao
servidor.
Caso você possua aplicativos que fazem o lock corretamente de arquivos, você poderá usar o share modes = no, isto significa que futuras aberturas de arquivo podem ser feitas em em modo leitura/gravação. Caso utiliza um aplicativo muito bem programado que implementa de forma eficiente de lock, você poderá desativar esta opção.
O uso de oplocks yes em compartilhamentos aumenta a performance de acesso a arquivos em até 30%, pois utiliza um código de cache no cliente. Tenha certeza do que está fazendo antes de sair usando oplocks em tudo que é lugar. A desativação de kernel oplocks é necessária para que isto funcione.
A opção read raw e write raw devem ter seus valores experimentados para ver se faz diferença na performance da sua rede, pois é diretamente dependente do tipo de cliente que sua rede possui. Alguns clientes podem ficar mais lentos em modo de leitura raw.
O tipo de sistema de arquivos adotado na máquina e suas opções de montagem tem um impacto direto na performance do servidor, principalmente com relação a atualização de status dos arquivos no sistema de arquivos (hora de acesso, data, etc).
O cache de leitura adiante de abertura de arquivos em modo somente leitura
aumenta a performance com o uso do oplocks nível 2. Para isto, ajuste a opção
level2 oplocks
para yes
. A recomendação
deste tipo de oplock é o mesmo do nível 1.
Como o SAMBA faz o transporte NetBEUI via TCP/IP, ajustes no socket fazem diferença nos dados que trafegam na rede. Como isso é dependente de rede você precisará usar técnicas de leitura/gravação para determinar quais são as melhores que se encaixam em seu caso. A opção socket options é usada para fazer tais ajustes, por exemplo:
socket options = SO_SNDBUF=2048 IPTOS_THROUGHPUT=1
Em especial, a opção TCP_NODELAY
apresenta uma perceptível
melhoria de performance no acesso a arquivos locais.
OBS:: Não use espaços entre o sinal de "="
quando especificar as opções do parâmetro socket options
.
Copyright © 1999-2020 - Gleydson Mazioli da Silva