Настройка потоковой рабочей схемы TCP
Потоковая рабочая схема предназначена для передачи больших объемов информации из одной конечной системы в другую. В качестве примеров потоковой рабочей схемы можно привести передачу файлов, а также резервное копирование или восстановление данных. Наиболее важной характеристикой в данном случае является пропускная способность. Однако в некоторых случаях рекомендуется обратить внимание на задержку при взаимодействии двух конечных систем.
Ниже приведены основные параметры, влияющие на производительность TCP в потоковых приложениях:
- tcp_recvspace
- tcp_sendspace
- rfc1323
- вычисление MTU маршрута
- tcp_nodelayack
- sb_max
- Опции адаптера, такие как аппаратная проверка контрольной суммы и отправка больших объемов данных TCP
| Device | Speed | Размер MTU | tcp_sendspace | tcp_recvspace | sb_max 1 | rfc1323 |
|---|---|---|---|---|---|---|
| Token Ring | 4 или 16 Мбит/с | 1492 | 16384 | 16384 | 32768 | 0 |
| Ethernet | 10 Мбит/с | 1500 | 16384 | 16384 | 32768 | 0 |
| Ethernet | 100 Мбит/с | 1500 | 16384 | 16384 | 65536 | 0 |
| Ethernet | Gigabit | 1500 | 131072 | 65536 | 131072 | 0 |
| Ethernet | Gigabit | 9000 | 131072 | 65535 | 262144 | 0 |
| Ethernet | Gigabit | 9000 | 262144 | 1310722 | 524288 | 1 |
| Ethernet | 10 Гигабит | 1500 | 131072 | 65536 | 131072 | 0 |
| Ethernet | 10 Гигабит | 9000 | 262144 | 131072 | 262144 | 1 |
| ATM | 155 Мбит/с | 1500 | 16384 | 16384 | 131072 | 0 |
| ATM | 155 Мбит/с | 9180 | 65535 | 655353 | 131072 | 0 |
| ATM | 155 Мбит/с | 65527 | 655360 | 6553604 | 1310720 | 1 |
| FDDI | 100 Мбит/с | 4352 | 45056 | 45056 | 90012 | 0 |
| Fibre-Channel | 2 Гбит/с | 65280 | 655360 | 655360 | 1310720 | 1 |
(1) Для параметра sb_max рекомендуется указывать значение по умолчанию, равное 1048576. Значения, перечисленные в таблице, представляют собой минимально допустимые значения параметра sb_max.
(2) При использовании rfc1323 данные опции позволяют дополнительно увеличить производительность системы в режиме больших кадров Gigabit Ethernet.
(3) При некоторых размерах буферов приема и передачи TCP пропускная способность может стать очень низкой (около 1 Мбит/с или меньше). Для того чтобы эта проблема не возникала, размер tcp_sendspace должен как минимум в три раза превосходить размер MTU, а также должен быть не меньше значения tcp_recvspace целевой системы.
- Включить опцию rfc1323, позволяющую увеличить размер окна TCP более чем до 64 КБ. В этом случае можно установить большое значение tcp_recvspace, например, в десять раз превосходящее размер MTU. Это позволит TCP передавать данные потоком, что приведет к повышению производительности.
- Уменьшить размер MTU адаптера. Например, с помощью команды ifconfig at0 mtu 16384 можно установить размер MTU в сети ATM равным 16 КБ. При этом TCP вычислит меньшее значение MSS. Если размер MTU равен 16 КБ, а размер окна - 64 КБ, то TCP может отправить four пакета, не дожидаясь получения подтверждения.
Ниже приведены общие рекомендации по настройке потоковой рабочей схемы TCP:
- Размер буферов приема и передачи TCP должен быть как минимум в 10 раз больше размера MTU.
- Если размер MTU превышает 8 КБ, то для увеличения допустимых размеров буферов приема TCP следует применять опцию rfc1323.
- Для высокопроизводительных адаптеров большой размер буферов приема и отправки позволяет увеличить производительность.
- Для высокопроизводительных адаптеров значение параметра tcp_sendspace должно быть в два раза больше значения tcp_recvspace.
- rfc1323 для интерфейса lo0 имеет значение по умолчанию. Значение по умолчанию размера MTU для lo0 больше, чем 1500, и, поэтому, переменные tcp_sendspace и tcp_recvspace имеют значение 128K.
Примерами приложений TCP, производительность которых может значительно повыситься после настройки параметров tcp_sendspace и tcp_recvspace, могут служить команды ftp и rcp.