Eu tenho um servidor de arquivos freebsd
root@vstorage:~ # freebsd-version
11.1-RELEASE-p1
Aqui estão algumas informações adicionais.
root@vstorage:~ # dmesg | grep CPU:
CPU: AMD Phenom(tm) 9750 Quad-Core Processor (2400.05-MHz K8-class CPU)
root@vstorage:~ # dmesg | grep memory
real memory = 8589934592 (8192 MB)
avail memory = 8001138688 (7630 MB)
Cliente Samba: MacBook Pro - MacOS Sierra - Conectado a uma rede sem fio de 5ghz AC.
Servidor de arquivos conectado ao roteador gigabit (Netgear Nighthawk x4 r7500)
Eu apenas criei este servidor de arquivos para substituir um servidor de arquivos do Ubuntu que eu tinha anteriormente (que não tem esse problema)
Eu tenho que servir um compartilhamento NFS para um hipervisor (funcionando bem) e também servir um compartilhamento Samba para o meu Mac.
Eu instalei samba46
da coleção de ports. Aqui está o meu smb4.conf.
root@vstorage:~ # cat /usr/local/etc/smb4.conf
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = vstorage
wins support = Yes
security = user
passdb backend = tdbsam
socket options = TCP_NODELAY IPTOS_LOWDELAY
read raw = yes
write raw = yes
[data]
path = /data
valid users = nullmeta
writable = yes
browsable = yes
read only = no
guest ok = no
public = no
create mask = 0775
directory mask = 0775
O compartilhamento é um pool do ZFS chamado data
que possui uma única unidade vermelha digital ocidental de 3 TB.
root@vstorage:~ # zpool status
pool: data
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
ada1 ONLINE 0 0 0
errors: No known data errors
pool: zroot
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
ada0p3 ONLINE 0 0 0
O problema:
Eu posso me conectar ao compartilhamento bem. No entanto, se eu tentar transferir alguma coisa para ele, ele consome toda a memória. Se eu tiver top
em execução durante a transferência de um arquivo de 2 GB, posso observar o uso da memória aumentar, parece que limita e me deixa 470M
de memória livre.
Veja top
após a transferência de arquivos de 3 x 2 GB.
root@vstorage:~ # top
last pid: 23995; load averages: 0.30, 0.28, 0.25 up 0+00:40:35 19:56:12
33 processes: 1 running, 32 sleeping
CPU: 0.0% user, 0.0% nice, 0.1% system, 0.0% interrupt, 99.9% idle
Mem: 59M Active, 23M Inact, 6099M Wired, 1503M Free
ARC: 5674M Total, 17M MFU, 5610M MRU, 35K Anon, 14M Header, 32M Other
5512M Compressed, 5675M Uncompressed, 1.03:1 Ratio
Swap: 2048M Total, 2048M Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
1122 root 1 20 0 228M 12544K select 1 0:00 0.07% nmbd
23994 root 1 20 0 20164K 2920K CPU3 3 0:00 0.04% top
338 root 1 20 0 9564K 4844K select 3 0:00 0.02% devd
411 root 1 20 0 10504K 1860K select 1 0:00 0.01% syslogd
734 jeff 1 20 0 85232K 5808K select 2 0:00 0.00% sshd
663 root 1 20 0 20640K 4600K select 1 0:00 0.00% sendmail
561 root 32 52 0 8332K 2112K rpcsvc 3 0:00 0.00% nfsd
1134 root 1 20 0 301M 17524K select 3 1:31 0.00% smbd
558 root 1 20 0 12548K 2760K select 0 0:00 0.00% mountd
786 root 1 20 0 19664K 3348K pause 3 0:00 0.00% csh
631 root 1 20 0 64540K 26268K select 0 0:00 0.00% perl
1128 root 1 20 0 297M 16852K select 2 0:00 0.00% smbd
543 root 1 20 0 10452K 1920K select 0 0:00 0.00% rpcbind
560 root 1 23 0 10380K 2956K select 3 0:00 0.00% nfsd
1130 root 2 20 0 297M 16196K select 3 0:00 0.00% smbd
Não faço ideia porque está comendo a memória. Depois de totalmente utilizada, as transferências ficam mais lentas. A parte louca é que também não irá liberar a memória. Desconectar o compartilhamento e recarregar o samba não faz nada. A única maneira de recuperar a memória é reinicializar o servidor, o que é bastante frustrante, pois isso significa que também preciso suspender o hipervisor até que o armazenamento volte a ficar online.
Eu achei que era um problema de samba, então eu o reinstalei, configurei opções de soquete, leia gravação / raw e desativei o log. No entanto, não acho que esse é o meu problema, não consigo encontrar a causa raiz do samba comer a memória durante a transferência. Qualquer insight seria apreciado.
EDITAR:
Estou começando a pensar que isso é um problema do ZFS, e não um problema de samba. Eu atualizarei se eu descobrir alguma informação adicional.