Добрый день, all.
Уже давно бьюсь с NFS не могу понять почему такая низкая скорость передачи данных. Сервер NFS стоит на 8-ми головом Xeon'е с Gigabit Ethernet картой под Ubuntu 8.04 (пока дают потестировать такой сервер, тестирую). Настройка NFS перепробовал разные но по скорости почти не получил преимущества.
Сервер и клиент подключены кабелем 6ой категории и подключены к гигабитному свитчу.
Копирую этот файлик:
ls -la ./ubuntu804.iso
-rw-r--r-- 1 root root 733069312 Июн 11 17:20 ubuntu804.isoи получаю примерно эти цифры
time cp /tmp/ubuntu804.iso /mnt/test/
real 1m5.403s
user 0m0.024s
sys 0m6.952sТо есть получается примерно 11 Мб/с, это я считаю очень мало, т.к. слышал что люди выходят на цифры от 40 Мб/с и выше.
На Ubuntu пересобирал пакеты nfs-kernel-server, portmap и ядро, но выигрыш в скорости я так и не получил.
Настройка сервера
/srv *(rw,async,insecure,no_root_squash,no_subtree_check)
Настройка клиента
192.168.0.245:/srv /mnt/test nfs rw,sync,bg,hard,intr 0 0Может подскажите почему такое происходит?
И какая у вас получается скорость?
Попробуйте поставить большие значения для rsize и wsize. Далее выдержка из man nfs:rsize=n The number of bytes NFS uses when reading files from an NFS server.
The default value is dependent on the kernel, currently 1024 bytes. (However, throughput is improved greatly by asking for rsize=8192.)wsize=n The number of bytes NFS uses when writing files to an NFS server. The default value is dependent on the kernel, currently 1024 bytes. (However, throughput is improved greatly by asking for wsize=8192.)
Server
/etc/exports
/home/xxx 10.0.1.1(rw,async,no_subtree_check)tuning TCP ( внимательно!!!!!! для конкретного ядра 2.6.18)
sysctl -w net.core.rmem_default=262144
sysctl -w net.core.wmem_default=262144
sysctl -w net.core.rmem_max=8388608
sysctl -w net.core.wmem_max=8388608
sysctl -w net.core.somaxconn=1000
sysctl -w net.ipv4.tcp_rmem="4096 87380 8388608"
sysctl -w net.ipv4.tcp_wmem="4096 65536 8388608"
sysctl -w net.ipv4.tcp_mem="8388608 8388608 8388608"
sysctl -w net.ipv4.tcp_max_syn_backlog=2048echo "0" > /proc/sys/net/ipv4/tcp_sack
echo "0" > /proc/sys/net/ipv4/tcp_timestamps
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1024" > /proc/sys/net/core/netdev_max_backlogclient
/bin/mount -o tcp,nfsvers=3,soft,retrans=10,intr,rsize=32768,wsize=32768,timeo=100,retry=4 -t nfs 10.0.1.1:/home/xxx /home/xxxИ все пучком :)
Удачи !
>[оверквотинг удален]
>
>Настройка сервера
>/srv *(rw,async,insecure,no_root_squash,no_subtree_check)
>Настройка клиента
>192.168.0.245:/srv /mnt/test
> nfs rw,sync,bg,hard,intr 0 0
>
>
>Может подскажите почему такое происходит?
>И какая у вас получается скорость?
Спасибо за ответ.
Установил тюнинг на сервере и клиенте + добавил ifconfig eth0 txqueuelen 1000, так же использовал ваши опции монтирования.
Сервер собран на Ubuntu 8.04
Скорость копирования:
time cp /ubuntu804.iso /mnt/flotenk/homereal 1m6.719s
user 0m0.020s
sys 0m4.172s
>[оверквотинг удален]
>>
>>Настройка сервера
>>/srv *(rw,async,insecure,no_root_squash,no_subtree_check)
>>Настройка клиента
>>192.168.0.245:/srv /mnt/test
>> nfs rw,sync,bg,hard,intr 0 0
>>
>>
>>Может подскажите почему такое происходит?
>>И какая у вас получается скорость?