Ok, caras do Linux, por favor, fiquem comigo. Eu sou um cara do windows que acabou de configurar seu primeiro servidor linux ...
O problema que estou tendo é que o desempenho do samba é muito ruim, tanto ao ler e escrever de / para um compartilhamento de samba que reside na caixa linux. E / S de disco local na caixa em si é ótima, a máquina está inativa e eu sou o único que a acessa. Eu pesquisei e tentei algumas das soluções comuns mencionadas quando as pessoas se deparam com problemas de desempenho do samba, mas até agora não tiveram efeito algum.
Configuração do servidor:
Intel ATOM 330 D945GCLF2 w bios 229 (mais recente)
2x WD1001FALS (WD caviar black 1Tb), configure com o software raid linux durante a instalação
2GB DDR2 (800 5-4-4-18 downclocked para 500-3-3-3-9, passou todos os testes de memória por memtest86)
Ubuntu 9.04 server amd64 + samba e subversion
Conexão de rede com fio de 100 Mbps do NIC onboard para um Linksys WRT300N
Configuração do cliente:
Dell inspiron 9400, Windows Vista x64, 4 GB de RAM, sem problemas de desempenho.
Conexão sem fio g (54 Mbps, recebo ~ 25 Mbps contra outros recursos na mesma rede)
E / S de disco local na caixa linux tem ótimo throughput:
$ sudo hdparm -tT /dev/md2
/dev/md2:
Timing cached reads: 1310 MB in 2.00 seconds = 655.21 MB/sec
Timing buffered disk reads: 294 MB in 3.01 seconds = 97.82 MB/sec
$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1324 MB in 2.00 seconds = 661.47 MB/sec
Timing buffered disk reads: 318 MB in 3.00 seconds = 105.85 MB/sec
$ sudo hdparm -tT /dev/sdb
/dev/sdb:
Timing cached reads: 1328 MB in 2.00 seconds = 663.55 MB/sec
Timing buffered disk reads: 300 MB in 3.01 seconds = 99.55 MB/sec
No entanto, quando copio arquivos pela rede para o compartilhamento de samba, obtenho velocidades de gravação em torno de 1-1.5Mb / s. Ao ler arquivos do compartilhamento samba, é preciso uma pausa longa (vários segundos) antes de ler os arquivos.
Agora, o TCPStat no servidor mostra muito tráfego da caixa do Windows abrindo o compartilhamento do samba como um compartilhamento unc no explorer no Windows. Parece que o windows está enumerando arquivos, mas eu não esperaria que isso bloqueasse mais alguma coisa ..? Ou o samba é, por padrão, uma única sessão sequencial / conexão única?
Alguma ideia? Quando googling me deparei com alguns artigos para versões mais antigas do Linux, onde eles recomendaram recompilar e substituir o driver realtek, mas nenhum desses artigos mencionou Ubuntu 9.04. E eu realmente não me sinto confortável em começar a recompilar o sistema operacional e / ou drivers de dispositivo antes de ter identificado a causa raiz do problema ...
Edit: aqui está meu arquivo smb.conf (com comentários etc removidos) - >
[global]
workgroup = WORKGROUP
wins support = yes
dns proxy = no
name resolve order = wins lmhosts host bcast
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY
usershare allow guests = yes
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
[someshare]
comment = images
read only=no
locking = no
path = /home/someusername/someshare
guest ok = no