Тюнінг мережі TCP

Тюнінг мережі TCP/UDP

Невеликий малюнок як покращити продуктивність мережі для додатків, що потребують високої пропускної спроможності, актуально для мереж GigE+. Такими додатками можуть бути, наприклад, NAS/SAN сховища.

Зрозуміло, всі дії тільки від root

Наберемо: sysctl -p grep mem Отримаємо виведення всіх поточних налаштувань, які краще зберегти, щоб була можливість повернутися назад якщо буде потрібно.

Набираємо: sysctl -w net.core.rmem_max=8388608 Це налаштування задає максимальний розмір буфера прийому ОС для всіх типів з'єднань.

Нибираємо: sysctl -w net.core.wmem_max=8388608 Це налаштування задає максимальний розмір буфера передачі ОС для всіх типів з'єднань.

Нибираємо: sysctl -w net.core.rmem_default=65536 Це налаштування задає розмір буфера передачі за умовчанням ОС для всіх типів з'єднань.

Нибираємо: sysctl -w net.core.wmem_default=65536 Це налаштування задає азмер буфера передачі за умовчанням ОС для всіх типів з'єднань.

Набираємо: sysctl -w net.ipv4.tcp_mem='8388608 8388608 8388608′ Налаштування TCP автотюнінг. «Змінна tcp_mem визначає як стек протоколу TCP повинен поводитися коли справа доходить до використання пам'яті. … Перше значення, зазначене в змінній tcp_mem, повідомляє ядру нижній поріг. Нижче цього значення, стек TCP не чинитиме тиск на використання пам'яті різними сокетами TCP. … Друге значення змінної повідомляє ядру точку при перетині якої почати використовувати додаткову пам'ять. … І останнє значення змінної повідомляє ядру, скільки сторінок пам'яті можна використовувати максимально. Якщо це значення буде досягнуто, кількість TCP потоків і пакетів почне знижуватися доки ми не досягнемо нижньої межі пам'яті. Цязмінна включає всі TCP сокети використовувані в даний час. »

Набираємо: sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608′ Налаштування TCP автотюнінг. «Перша змінна повідомляє ядру мінімальний розмір прийому буфера для кожного NCP з'єднання, і цей буфер завжди виділяється але сокет TCP, навіть під високим тиском системи. … Друге значення вказує ядру налаштування за замовчуванням буфера прийому, що виділяється для кожного сокету TCP. Ця змінна пепе визначає змінну /proc/sys/net/core/rmem_default використовувану іншими протоколами. … Останнє значення змінної задає максимальний розмір буфера прийому, який може бути виділений TCP сокету.

Набираємо: sysctl -w net.ipv4.tcp_wmem='4096 65536 8388608′ Налаштування TCP автотюнінг. «У цій змінній міститься три значення з інформацією про те, скільки пам'яті для TCP sendbuffer повинен використовувати TCP сокет. Кожен TCP сокет буде використовувати простір буфера, поки він не заповниться. Кожне значення використовується при настанні певних умов. … Перше значення визначає мінімальний розмір буфера відправки TCP доступний одному TCP сокету. … Друге значення змінної повідомляє розмір буфера за замовчуванням, доступний для одного TCP сокету. … Третє значення повідомляє ядру максимальний розмір буфера відправки TCP.

Набираємо:sysctl -w net.ipv4.route.flush=1 Це змінна забезпечить застосування наших налаштувань до всіх наступних з'єднань.

Ну і щоб було зручно просто копіюємо і вставляємо в термінал з правами root: