Linuxのネットワーク高速化(2024-08-05修正)

Linux IP Tips

/etc/sysctl.confの末端に以下を追加し、OS起動時にも起こされる「sysctl -p」で反映。
※1: ディストリビューションにより、使用できないコンフィグがあります、エラーが吐かれた部分は飛ばしてOK。
※2: 2024-08-05 NICオフロード自動設定 追加

  1. “/etc/sysctl.conf”最下行に以下を追加
    ※1 “fs.inotify.max_user_watches” : “cat /proc/sys/fs/inotify/max_user_watches”で最大値を確認
    ※2 “fs.file-max” : “cat /proc/sys/fs/file-max”で最大値を確認
# ファイルシステム設定
fs.inotify.max_user_watches = (上記※1 参照)
fs.file-max = (上記※2 参照)

# 仮想メモリ設定
vm.swappiness = 10
vm.vfs_cache_pressure = 50
vm.dirty_ratio = 20
vm.dirty_background_ratio = 5

# ネットワーク設定 - 一般
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.core.rmem_default = 524288
net.core.wmem_default = 524288
net.core.netdev_max_backlog = 10000
net.core.optmem_max = 65535
net.core.somaxconn = 1024

# ネットワーク設定 - TCP
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.tcp_wmem = 4096 65536 33554432
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_mtu_probing = 1
net.ipv4.ip_local_port_range = 1024 65535

# ネットワーク設定 - 特定キューイング規律と輻輳制御
net.core.default_qdisc = cake
net.ipv4.tcp_congestion_control = bbr

#↑sysctl.conf編集後、「sudo sysctl -p」を実行
  1. 通信オフロードのスイッチング
    設定をいじる前に、この外部資料を読んでから判断してNE!!
# NICオフロード自動設定(下記はオフロード無効化)
# 先にethtoolコマンドをインストールしておくこと
sudo vim /opt/nictool/optimize_nic.sh

#!/bin/bash

# ネットワークインターフェース名
INTERFACE=$1

# オフロード機能を有効化する
sudo ethtool -K $INTERFACE rx off
sudo ethtool -K $INTERFACE tx off
sudo ethtool -K $INTERFACE sg off
sudo ethtool -K $INTERFACE tso off
sudo ethtool -K $INTERFACE ufo off
sudo ethtool -K $INTERFACE gso off
sudo ethtool -K $INTERFACE gro off
sudo ethtool -K $INTERFACE lro off
sudo ethtool -K $INTERFACE rxvlan off
sudo ethtool -K $INTERFACE txvlan off
sudo ethtool -K $INTERFACE ntuple off
sudo ethtool -K $INTERFACE rxhash off

# インターフェースの設定を確認する
ethtool -k $INTERFACE
# NICオフロード自動設定サービス作成 (NIC名を確認すること、下記ではeth0を仮定)
sudo vim /etc/systemd/system/optimize_nic-eth0.service

[Unit]
Description=Optimize Network Performance
After=network.target

[Service]
Type=oneshot
ExecStart=/opt/nictool/optimize_network.sh eth0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
# NICオフロード自動設定サービスの有効化
sudo systemctl enable optimize_nic-eth0
sudo systemctl start optimize_nic-eth0


コメント

タイトルとURLをコピーしました