powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Самая быстрая шара в Solaris 11.3
13 сообщений из 13, страница 1 из 1
Самая быстрая шара в Solaris 11.3
    #40008217
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, есть два сервера на 11.3, между ними два 10G линка в бонде.
Каким образом организовать максимально быструю шару с одного сервера для другого, прозрачную для приложения, которое будет тащить файлы в 16 потоков?
Сейчас сделал NFS, все файловые потоки упираются в одно TCP-соединение, в результате больше 3G не высасывает :(
Пробовал вариант с UDP - еще хуже.
Может, есть какая-то опция, чтобы в NFS было несколько TCP-соединений? Или какой-то другой вид шары, чтобы еще быстрее работала?
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008247
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegON,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$ man nfsd
...
       Example 3 Setting Maximum Number of Concurrent Requests

       The  following  command  sets  the  maximum  number  of  concurrent NFS
       requests.

         # sharectl set -p servers=32 nfs

...



Но по умолчанию, там стоит 1024

Код: sql
1.
2.
3.
4.
5.
# sharectl get nfs
servers=1024
lockd_listen_backlog=32
lockd_servers=1024
...



Вряд ли в упирается в thread на уровне системы, а вот java приложения сплошь и рядом грешат крошечными буферами по умолчанию.

Чтобы определить кто виноват система или приложение

создай 16 файлов по 20Gb
и запусти сначало 1, потом 16 тестов используя dd с хорошим буфером
Код: sql
1.
2.
3.
4.
5.
for i in {01..16}; do mkfile 20g dropme.bin.$i; done

time dd if=/nfsmount/dropme.bin.01 of=/dev/null bs=1024k count=20480

for i in {01..16}; do echo time dd if=/nfsmount/dropme.bin.$i of=/dev/null bs=1024k count=20480 2>&1 > out.$i.log  & done



Поиграйся с NFS опциями rsize, wsiz, forcedirectio, actime

Oracle, для своих datafile рекомендует следующие опции:
rw,bg,hard,nointr,rsize=32768,wsize=32768,proto=tcp,noac,forcedirectio, vers=3

но я бы rsize и wsize увеличил до 1Мб

p.s. ping какой между серверами?
Если большой, прочитай про Bandwidth Delay Product (BDP)
если rsize,wsize маленькие, а ping delay большой, bandwidth может сильно просесть

p.p.s. А ты GigaBit и GigaByte не путаешь часом?
Код: sql
1.
2.
# expr 20480 / 8 
2560 gigabyte/s
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008248
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin
OlegON,
...
Код: sql
1.
2.
...
for i in {01..16}; do echo time dd if=/nfsmount/dropme.bin.$i of=/dev/null bs=1024k count=20480 2>&1 > out.$i.log  & done


...


echo убери, оно стояло для отладки команды
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008337
Фотография bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плюс в сторону jumbo frame можно глянуть и в ключить их
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008395
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю за советы, сами потоки и на уровне диска - все работает вполне сносно.
Извините, не описал подробнее, но опции вроде
rw,bg,hard,nointr,rsize=32768,wsize=32768,proto=tcp,noac,forcedirectio, vers=3
я использовал и так, только без vers и сейчас поставил vers=4, поскольку обе стороны ее поддерживают.
Jumbo frames пока по ряду причин не включали и, скорее всего, включать не будем.
Однако, из советов глаз зацепился за увеличение wsize и rsize больше чем 32к, который я раньше почему-то считал пределом.
Увеличил до 1М и, как ни странно, скорость одного потока подскочила вдвое!
Более всеобъемлющие тесты проведу позднее, однако, если каждый поток будет быстрее идти в два раза, это будет очень существенным плюсом.
Увеличение до 2М не дало никаких изменений.
Гигабиты и гигабайты не путаю :) До сих пор все потоки давали максимум около 200+Мб/сек на чтение, а один - 65Мб/сек... Теперь один только поток дает 125Мб/сек, нагрузить канал полностью пока не могу.
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008445
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegON,

Я не спец в солярисе от слова совсем но, в Линуксе можно указать в mount количество сетевых паралельных соединений. ИМХО что то подобное должно быть в солярисе. Например это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 rpcmod:clnt_max_conns 
Description
Controls the number of TCP connections that the NFS client uses when communicating with each NFS server.
 The kernel RPC is constructed so that it can multiplex RPCs over a single connection, but multiple 
connections can be used if desired.

Data Type
Integer (32–bit)

 Default
1 

Range
1 to 2 31  - 1


...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008456
Фотография bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegON
Jumbo frames пока по ряду причин не включали и, скорее всего, включать не будем.
дело ваше. Но у меня на всех проектах чувствительных к скорости передачи по сети(включая проект где сеть была 100G) в рамках одного ДЦ, они всегда были включены, давая при этом определенный прирость производительности
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008617
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, с Jumbo решать не мне...
А вот rpcmod:clnt_max_conns как раз и был ответом на мой вопрос, спасибо! В комплекте с увеличением параметров должно быть взрывное ускорение, я думаю... Посмотрим сегодня ночью.
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40008795
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего взрывного, увы, не произошло. Хотя, как требовали сетевики, потоки разошлись по соединениям...
Буду дожимать их на Jumbo...
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40009056
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegON
Ничего взрывного, увы, не произошло. Хотя, как требовали сетевики, потоки разошлись по соединениям...
Буду дожимать их на Jumbo...


Какой ping между серверами?


Для высокоскоростных сетей, можно поиграться c MTU и параметрами tcp

max_buf точно нужно выкручивать, по умолчанию он маленький, по крайней мере до 1М
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
$ sudo ipadm show-prop
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
ipv4  forwarding            rw   off          --           off          on,off
ipv4  hostmodel             rw   weak         --           weak         strong,
                                                                        src-priority,
                                                                        weak
ipv4  send_redirects        rw   on           --           on           on,off
ipv4  ttl                   rw   255          --           255          1-255
ipv6  forwarding            rw   off          --           off          on,off
ipv6  hoplimit              rw   255          --           255          1-255
ipv6  hostmodel             rw   weak         --           weak         strong,
                                                                        src-priority,
                                                                        weak
ipv6  send_redirects        rw   on           --           on           on,off
ip    icmp_accept_clear     rw   on           --           on           on,off
ip    igmp_accept_clear     rw   on           --           on           on,off
ip    pim_accept_clear      rw   on           --           on           on,off
ip    persock_require_priv  rw   on           --           on           on,off
ip    ndp_unsolicit_count   rw   3            --           3            1-20
ip    ndp_unsolicit_interval rw  2000         --           2000         1000-20000
ip    arp_publish_count     rw   5            --           5            1-20
ip    arp_publish_interval  rw   2000         --           2000         1000-20000
icmp  max_buf               rw   262144       --           262144       65536-1073741824
icmp  recv_buf              rw   8192         --           8192         4096-262144
icmp  send_buf              rw   8192         --           8192         4096-262144
tcp   cong_default          rw   newreno      --           newreno      newreno,cubic,
                                                                        highspeed,
                                                                        vegas
tcp   cong_enabled          rw   newreno,     newreno,     newreno      newreno,cubic,
                                 cubic,       cubic,                    highspeed,
                                 highspeed,   highspeed,                vegas
                                 vegas        vegas                     
tcp   ecn                   rw   passive      --           passive      never,passive,
                                                                        active
tcp   extra_priv_ports      rw   2049,4045    --           2049,4045    1-65535
tcp   largest_anon_port     rw   65535        --           65535        32768-65535
tcp   max_buf               rw   2097152      2097152      1048576      1056768-1073741824
tcp   recv_buf              rw   1056768      1056768      256000       2048-2097152
tcp   sack                  rw   active       --           active       never,passive,
                                                                        active
tcp   send_buf              rw   1056768      1056768      49152        4096-2097152
tcp   smallest_anon_port    rw   32768        --           32768        1024-65535
tcp   smallest_nonpriv_port rw   1024         --           1024         1024-32768
udp   extra_priv_ports      rw   2049,4045,   --           2049,4045,   1-65535
                                 4789                      4789         
udp   largest_anon_port     rw   65535        --           65535        32768-65535
udp   max_buf               rw   2097152      --           2097152      65536-1073741824
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
udp   recv_buf              rw   57344        --           57344        128-2097152
udp   send_buf              rw   57344        --           57344        1024-2097152
udp   smallest_anon_port    rw   32768        --           32768        1024-65535
udp   smallest_nonpriv_port rw   1024         --           1024         1024-32768
sctp  cong_default          rw   newreno      --           newreno      newreno,cubic,
                                                                        highspeed,
                                                                        vegas
sctp  cong_enabled          rw   newreno,     newreno,     newreno      newreno,cubic,
                                 cubic,       cubic,                    highspeed,
                                 highspeed,   highspeed,                vegas
                                 vegas        vegas                     
sctp  extra_priv_ports      rw   2049,4045    --           2049,4045    1-65535
sctp  largest_anon_port     rw   65535        --           65535        32768-65535
sctp  max_buf               rw   1048576      --           1048576      102400-1073741824
sctp  recv_buf              rw   102400       --           102400       8192-1048576
sctp  send_buf              rw   102400       --           102400       8192-1048576
sctp  smallest_anon_port    rw   32768        --           32768        1024-65535
sctp  smallest_nonpriv_port rw   1024         --           1024         1024-32768
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40009124
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю, на одном из серверов буфера были маленькие и на обеих сторонах поставил cong_default=highspeed для tcp.
Однопоточка стала сильно стабильнее по скорости.
Посмотрим, что будет сегодня ночью.

MTU сейчас править нет смысла, поскольку промежуточное оборудование без Jumbo...
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40009126
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересно, что mtu максимально доступный указан, как 1500... Видимо, с линка берет...
А пинг нормальный, стабильный меньше 1мс
...
Рейтинг: 0 / 0
Самая быстрая шара в Solaris 11.3
    #40009294
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegON, а всё же, - что у вас с дисками? Сейчас у вас на глаз 350Мбайт/сек, и это не так уж и мало, если речь идёт о действительно больших объёмах последовательных чтений. А если говорить о производительности именно сети (а не прикладных протоколов типа NFS), то лучше замерить её более простыми средствами типа Iperf. А то тут смешали всё в одну кучу...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Самая быстрая шара в Solaris 11.3
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]