Arma Reforger ServerのUDPパフォーマンスの設定

Windows

コマンドプロンプト

netsh int tcp set global rss=disabled


PowerShell

New-NetQosPolicy -Name "Arma Reforger" -DSCPAction 46 -IPProtocol UDP -IPSrcPort  2001


レジストリ

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters

  • REG_DWORD DefaultReceiveWindow 16777216(10)
  • REG_DWORD  DefaultSendWindow 16777216(10)
  • REG_DWORD  FastSendDatagramThreshold 1500(10)

Ethernetのプロパティ

  • IPv4チェックサムのオフロード 無効
  • TCPチェックサムのオフロード(IPv4) 無効
  • TCPチェックサムのオフロード(IPv6) 無効
  • UDPチェックサムのオフロード(IPv4) 無効
  • UDPチェックサムのオフロード(IPv6) 無効
  • アダプティブインターフレームスペーシング 無効
  • プロトコル ARP オフロード 無効
  • プロトコル NS オフロード 無効
  • 割り込み加減 無効
  • 割り込み加減率 オフ
  • 大量送信オフロードV2(IPv4)
  • 大量送信オフロードV2(IPv6)



Linux

netstat -su | grep "packet receive errors"

    15146 packet receive errors


# sysctl -a | grep udp

net.ipv4.udp_child_hash_entries = 0

net.ipv4.udp_early_demux = 1

net.ipv4.udp_hash_entries = 8192

net.ipv4.udp_l3mdev_accept = 0

net.ipv4.udp_mem = 365427       487237  730854

net.ipv4.udp_rmem_min = 4096

net.ipv4.udp_wmem_min = 4096

net.netfilter.nf_conntrack_udp_timeout = 30

net.netfilter.nf_conntrack_udp_timeout_stream = 120

net.netfilter.nf_flowtable_udp_timeout = 30


# sysctl -a | grep udp

net.ipv4.udp_child_hash_entries = 0

net.ipv4.udp_early_demux = 1

net.ipv4.udp_hash_entries = 8192

net.ipv4.udp_l3mdev_accept = 0

net.ipv4.udp_mem = 2097152      2097152 2097152

net.ipv4.udp_rmem_min = 4096

net.ipv4.udp_wmem_min = 4096

net.netfilter.nf_conntrack_udp_timeout = 30

net.netfilter.nf_conntrack_udp_timeout_stream = 120

net.netfilter.nf_flowtable_udp_timeout = 30


いろいろ悩んだけっかこれ

net.core.netdev_max_backlog = 182757
net.core.rmem_default = 8388608
net.core.rmem_max = 8388608
net.core.wmem_default = 8388608
net.core.wmem_max = 8388608
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 4194304
net.core.wmem_max = 4194304
net.ipv4.udp_mem = 2097152 2097152 2097152
net.ipv4.tcp_mem = 2097152 2097152 2097152
net.ipv4.udp_rmem_min = 16384
net.ipv4.udp_wmem_min = 16384
net.netfilter.nf_conntrack_udp_timeout = 512
net.netfilter.nf_conntrack_udp_timeout_stream = 512
net.netfilter.nf_flowtable_udp_timeout = 512

# vim /etc/network/if-pre-up.d/txqueuelen

#!/bin/sh

[ "$IFACE" != "lo" ] || exit 0

ifconfig eno1 txqueuelen 10000
ip link set dev eno1 txqueuelen 10000

#EOF

# chmod +x /etc/network/if-pre-up.d/txqueuelen


UDPのパケットエラーは下記のコマンドで監視できる

while true; do ss -nump; sleep 1; done

意味ないけどDSCPもつけた
# vim /etc/ufw/before.rules

*mangle
-A OUTPUT --protocol udp --sport 2001 -j DSCP --set-dscp-class EF
-A OUTPUT --protocol udp --sport 3001 -j DSCP --set-dscp-class EF
COMMIT








QooQ