2.5. 커널 파라미터 튜닝

리눅스 배포판의 네트워크 커널 파라미터는 대다수를 차지하는 일반 사용자에게 맞춰져 있습니다.

망 상황이 좋은 네트워크를 사용하는 경우, 커널 파라미터를 최적화 하면 네트워크 전송성능을 높일 수 있습니다.


configure_sysctl

perfSONAR에는 네트워크 성능 파라미터 조정을 위한 스크립트가 포함되어 있습니다. 다음과 같이 실행하여 생성하고 적용합니다.

$ sudo /usr/lib/perfsonar/scripts/configure_sysctl
$ sudo sysctl -p /etc/sysctl.d/perfsonar-toolkit-sysctl.conf

코드는 다음과 같습니다

https://github.com/perfsonar/toolkit/blob/master/toolkit/perfsonar-toolkit/scripts/configure_sysctl

  • 10Gbps ~ 40Gbps
  • 40Gbps 이상

설정된 파라미터는 /etc/sysctl.d/perfsonar-toolkit-sysctl.conf 파일에서 확인할 수 있습니다.

/etc/sysctl.d/perfsonar-toolkit-sysctl.conf
# allow TCP with buffers up to 2GB (Max allowed in Linux is 2GB-1)
net.core.rmem_max = 2147483647
net.core.wmem_max = 2147483647
# increase TCP autotuning buffer limits.
net.ipv4.tcp_rmem = 4096 131072 1073741824
net.ipv4.tcp_wmem = 4096  16384 1073741824
# recommended for hosts with jumbo frames enabled
net.ipv4.tcp_mtu_probing = 1
# recommended to enable 'fair queueing'
net.core.default_qdisc = fq
# need to increase this to use MSG_ZEROCOPY
net.core.optmem_max = 1048576
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_no_metrics_save = 1