Хорошо, парни из Linux, пожалуйста, потерпите меня. Я чувак из Windows, который только что установил свой первый Linux-сервер ...
Проблема, с которой я столкнулся, заключается в том, что производительность samba действительно низкая как при чтении, так и при записи из / в общий ресурс samba, расположенный в окне Linux. Ввод-вывод локального диска на самой коробке великолепен, машина простаивает, и я единственный, кто имеет к ней доступ. Я искал в Google и пробовал некоторые из распространенных обходных путей, упомянутых, когда люди сталкиваются с проблемами производительности самбы, но пока это не дало никакого эффекта.
Конфигурация сервера:
Intel ATOM 330 D945GCLF2 с BIOS 229 (последняя версия)
2x WD1001FALS (WD caviar black 1Tb), настраивается с помощью программного обеспечения linux raid во время установки
2 ГБ DDR2 (800 5-4-4-18 понижены до 500-3-3-3-9, прошли все тесты памяти с помощью memtest86)
Сервер Ubuntu 9.04 amd64 + самба и подрывная деятельность
Проводное сетевое соединение со скоростью 100 Мбит / с от встроенной сетевой карты к Linksys WRT300N
Конфигурация клиента:
Dell inspiron 9400, Windows Vista x64, 4 Гб оперативной памяти, в остальном проблем с производительностью нет.
Беспроводное соединение g (54 Мбит / с, я получаю ~ 25 Мбит / с по сравнению с другими ресурсами в той же сети)
Ввод-вывод локального диска в Linux-боксе имеет большую пропускную способность:
$ 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
Однако, когда я копирую файлы по сети на общий ресурс samba, я получаю скорость записи около 1–1,5 МБ / с. При чтении файлов из общего ресурса samba требуется длительный перерыв (несколько секунд) перед чтением файлов.
Теперь TCPStat на сервере показывает большой трафик из окна Windows, просто открыв общий ресурс samba как общий ресурс unc в проводнике в Windows. Похоже, окна перечисляют файлы, но я не ожидал, что это заблокирует что-нибудь еще? Или в самбе по умолчанию все-последовательное односессионное / одинарное соединение?
Любые идеи? При поиске в Google я наткнулся на несколько статей о более старых версиях Linux, в которых рекомендовали перекомпилировать и заменить драйвер realtek, но ни в одной из этих статей не упоминалось ubuntu 9.04. И я действительно не чувствую себя комфортно, начиная перекомпилировать ОС и / или драйверы устройств, прежде чем точно определил основную причину проблемы ...
Редактировать: вот мой файл smb.conf (с удаленными комментариями и т. д.) ->
[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
Похоже, ваша сетевая карта работает только со скоростью 10 Мбит / с. Но прежде чем вы начнете играть с картой, сначала попробуйте подключить ноутбук проводом, чтобы исключить проблему с беспроводной связью. Если у вас такая же проблема, попробуйте скопировать что-нибудь с помощью scp вместо samba. Просто скачайте pscp из текст ссылки и передайте файл, набрав:
pscp <your file> <linux user>@<linux server>:<folder>
for example:
pscp c:\temp\some-big-file.txt KristoferA@192.168.0.2:/home/KristoferA
Если и это работает медленно, значит, проблема не в Samba, скорее всего, вам просто нужен другой драйвер сетевой карты.