Страница 1 из 1

SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 12:30:43
Medison
FreeBSD 8.0-STABLE, amd64. Проблема - очень низкая скорость ЧТЕНИЯ из расшаренных папок в samba, в интернете на эту тему много информации, то, что помогает использовал, но скорость по-прежнему заметно ниже ожидаемой. Сделал гигабайтный файл, и прогнал его туда-сюда по samba (Version 3.4.5) и ftp (proftp):

Код: Выделить всё

SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек.
FTP:   чтение - 11.4 Мбит/сек, запись - 136,5 Мбит/сек.
dmesg | grep SATA

Код: Выделить всё

ad4: 476940MB <WDC WD5001AALS-00L3B2 01.03B01> at ata2-master UDMA100 SATA 3Gb/s
ad6: 715404MB <WDC WD7501AALS-00J7B0 05.00K05> at ata3-master UDMA100 SATA 3Gb/s
Samba и ftp лежат на ad6.

diskinfo -t ad6

Код: Выделить всё

ad6
        512             # sectorsize
        750156374016    # mediasize in bytes (699G)
        1465149168      # mediasize in sectors
        0               # stripesize
        0               # stripeoffset
        1453521         # Cylinders according to firmware.
        16              # Heads according to firmware.
        63              # Sectors according to firmware.
        WD-WMATV4858111 # Disk ident.

Seek times:
        Full stroke:      250 iter in   4.774250 sec =   19.097 msec
        Half stroke:      250 iter in   3.586216 sec =   14.345 msec
        Quarter stroke:   500 iter in   5.817099 sec =   11.634 msec
        Short forward:    400 iter in   2.044468 sec =    5.111 msec
        Short backward:   400 iter in   2.229018 sec =    5.573 msec
        Seq outer:       2048 iter in   0.333820 sec =    0.163 msec
        Seq inner:       2048 iter in   0.242275 sec =    0.118 msec
Transfer rates:
        outside:       102400 kbytes in   1.014999 sec =   100887 kbytes/sec
        middle:        102400 kbytes in   1.080796 sec =    94745 kbytes/sec
        inside:        102400 kbytes in   1.601682 sec =    63933 kbytes/sec
Samba и ftp - на em1.

ifconfig em1

Код: Выделить всё

em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=38db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:0e:0c:75:cc:e7
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet 100baseTX <full-duplex>
        status: active
Использую ipfw и встроенный nat (nat локальные пакеты не трогает, em1 - шлюз для клиента).

/boot/loader.conf

Код: Выделить всё

kern.hz=100
autoboot_delay=5
aio_load="YES"
/etc/sysctl.conf

Код: Выделить всё

net.inet.ip.redirect=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.maskrepl=0
net.inet.icmp.icmplim=100
net.inet.icmp.log_redirect=0
net.inet.icmp.drop_redirect=1
net.inet.tcp.drop_synfin=1
net.inet.udp.blackhole=1
net.inet.tcp.blackhole=2
net.inet.tcp.msl=5000

net.inet.tcp.local_slowstart_flightsize=10
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.fast_finwait2_recycle=1
net.inet.tcp.maxtcptw=40960

net.inet.ip.portrange.first=10000
net.inet.ip.portrange.last=65535
net.inet.ip.portrange.randomized=0
net.inet.ip.intr_queue_maxlen=4096

net.inet.tcp.rfc1323=1
kern.ipc.maxsockbuf=16777216
kern.ipc.somaxconn=32768
kern.ipc.nmbclusters=32768
kern.ipc.maxsockets=204800
kern.maxfiles=204800
kern.maxfilesperproc=50000
kern.maxvnodes=800000

net.inet.tcp.ecn.enable=1
net.inet.tcp.delayed_ack=0
net.inet.tcp.inflight.enable=0
net.inet.tcp.path_mtu_discovery=0
net.inet.tcp.mssdflt=1460
net.inet.tcp.hostcache.expire=1

net.inet.tcp.recvbuf_max=8388608
net.inet.tcp.recvbuf_inc=65536
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvspace=2097152

net.inet.tcp.sendbuf_max=8388608
net.inet.tcp.sendbuf_inc=65536
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendspace=2097152

net.local.stream.sendspace=2097152
net.local.stream.recvspace=2097152

net.inet.ip.fw.dyn_buckets=65536
net.inet.ip.fw.dyn_max=65536
net.inet.ip.fw.dyn_ack_lifetime=120
net.inet.ip.fw.dyn_syn_lifetime=10
net.inet.ip.fw.dyn_fin_lifetime=2
net.inet.ip.fw.dyn_short_lifetime=10

net.link.ether.inet.max_age=600
net.inet.ip.fw.one_pass=0
kern.polling.user_frac=20

kern.corefile="/%N.core"
Если закоментировать все в sysctl.conf, скорость упадет еще примерно в 2 раза.

smb.conf

Код: Выделить всё

...
max open files = 100000
socket options = TCP_NODELAY SO_SNDBUF=131072 SO_RCVBUF=131072

min receivefile size = 131072
aio read size = 1
aio write size = 1
use sendfile = yes
Расстояние между сервером и клиентом (при чтении/записи) - 6 метров витой пары...

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 13:20:47
Пробегал

Код: Выделить всё

socket options = TCP_NODELAY SO_SNDBUF=131072 SO_RCVBUF=131072
Вот это закоментируй.

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 14:43:30
Medison
Пробегал писал(а):

Код: Выделить всё

socket options = TCP_NODELAY SO_SNDBUF=131072 SO_RCVBUF=131072
Вот это закоментируй.
Существенно скорость чтения не изменилась.

Уж очень сильно тормозит...

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 16:30:52
BirdGovorun
Ставил Самбу 3.4.5 без всякого тюнинга и до 9Мбайт/с, запись/чтение, но только для файлопомойки.
Если держать базы 1С на ней, то тюнил по вот этому http://smb-conf.ru/optimizaciya-raboty- ... rvera.html

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 17:22:46
Medison
BirdGovorun писал(а):Ставил Самбу 3.4.5 без всякого тюнинга и до 9Мбайт/с, запись/чтение, но только для файлопомойки.
Если держать базы 1С на ней, то тюнил по вот этому http://smb-conf.ru/optimizaciya-raboty- ... rvera.html
Подправил smb.conf

Код: Выделить всё

socket options = TCP_NODELAY SO_RCVBUF=131072 SO_SNDBUF=131072
min receivefile size=16384
use sendfile=true
aio read size = 16384
aio write size = 16384
aio write behind = true
и переменные в sysctl.conf
Ставил самбу аналогично. Изменения в скорости чтения не замечаю.

Такое ощущение, что не там копаю, у меня скорость чтения меньше в разы (2.75 Мбит/с = 0,34 Мбайт/с - в 26 раз медленнее 9 Мбайт/с).

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 18:23:01
Medison
Вопрос снят, помогло следующее:

Было:

Код: Выделить всё

ifconfig em1 inet 192.168.1.1 netmask 255.255.255.0
ifconfig em1 media 100baseTX mediaopt full-duplex mtu 1500
ifconfig em1 polling tso
ifconfig em1

Код: Выделить всё

em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=38db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:0e:0c:75:cc:e7
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet 100baseTX <full-duplex>
        status: active
Стало:

Код: Выделить всё

ifconfig em1 inet 192.168.1.1 netmask 255.255.255.0
ifconfig em1 polling tso mtu 1500

Код: Выделить всё

ifconfig em1
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=38db<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,POLLING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:0e:0c:75:cc:e7
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
Почему аutoselect помог - непонятно, em1 втыкается в свич 100 Мбит...

Но скорость чтения увеличилась с 2.75 Мбит/сек до 90 Мбит/сек.

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 18:41:03
Medison
ftp тоже стал симметричным ~90 Мбит/c - чтение и запись.

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 20:05:10
Alex Keda
машинка относительно новая? (пару-тройку лет ей)
это какой-то косяк дров em походу.
выкупается совсем легко - в видно что интерфейс постоянно меняет состояние то UP то DOWN

Re: SAMBA: чтение - 2.75 Мбит/сек, запись - 136,5 Мбит/сек ?

Добавлено: 2010-05-04 23:17:43
Medison
Alex Keda писал(а):машинка относительно новая? (пару-тройку лет ей)
это какой-то косяк дров em походу.
выкупается совсем легко - в видно что интерфейс постоянно меняет состояние то UP то DOWN
Сетевая карта: http://market.yandex.ru/model.xml?hid=9 ... lid=779588
При загрузке системы пишет сначала DOWN, потом UP и больше состояния не меняет.
Вобщем-то проблема ушла, похоже действительно дело в дровах.

terminus давно писал (http://www.lissyara.su/articles/freebsd ... /ipfw_nat/)
Рекомендуется выключать tcp segmentation offloading (TSO), а так же rxcsum на том сетевом адаптере где работает нат
- недавно систему обновлял, проблема так и висит.