10Gbps NIC 튜닝 권장값
환경
- Red Hat Enterprise Linux
- 10 기가비트 이더넷 네트워크 인터페이스 어댑터 (10GbE)
이슈사항
- 10 기가비트 네트워크 어댑터 조정 매개 변수에 대한 권장 사항은 무엇입니까?
- MTU가 9000 인 10Gbit NIC의 두 시스템간에
iperf
테스트하면 6-7 기가비트/s의 전송 속도 만 나타납니다. - 대량 전송 스트리밍을 위해 10Gbps 연결 유선 속도를 달성하기 위해 구성 할 예상 및 권장 튜닝 매개 변수는 무엇입니까?
해결방안
다음 매개 변수는 10 기가비트 이더넷을 통해 더 빠른 스트리밍 전송을 달성하기위한 매우 일반적인 권장 사항입니다.
네트워크의 실제 프로덕션 사용에 따라 이러한 설정은 사용에 적합하지 않을 수 있지만 iperf
실행 속도 와 같은 인위적인 벤치 마크를 확실히 만들 것입니다.
Ceph 노드에서이 문제가 발생하는 경우 Ceph를 살펴보십시오. OSD 노드는 시스템 로그에 '페이지 할당 실패'메시지가 있고 하트 비트 실패로 인해 느린 요청이 발생합니다.
인터럽트 균형 조정
irqbalance
서비스가 설치되어 실행 중인지 확인하십시오 .
링 버퍼
패킷 드롭을 방지하기 위해 NIC 수신 및 전송 링 버퍼를 가능한 한 크게 만드는 것이 좋습니다.
버퍼 크기를 늘리는 절차는 다음에서 설명합니다.
다음과 같은 방법으로 재부팅 후에도 변경 사항을 유지할 수 있습니다.
소켓 버퍼
최대 소켓 버퍼 크기를 16MiB로 늘리면 필요한 경우 버퍼가 더 커질 수 있습니다.
/etc/sysctl.conf
에 다음 변경 사항을 적용 하고 sysctl -p
명령으로 즉시 적용 할 수 있습니다.
# set min/default/max TCP read buffer net.ipv4.tcp_rmem = 4096 87380 16777216 # set min/default/max TCP write buffer net.ipv4.tcp_wmem = 4096 16384 16777216 # set maximum non-TCP receive socket buffer size net.core.rmem_max = 16777216 # set maximum non-TCP write socket buffer size net.core.wmem_max = 16777216
기본 소켓 버퍼 크기를 늘리는 것은 비 스트리밍 전송의 효율성에 해를 끼칠 수 있으므로이 기본 수준의 조정으로 필요하지 않습니다.
Network Budget
/proc/net/softnet_stat
의 세 번째 열 이 증가하는 경우, 예 :
# cat /proc/net/softnet_stat 0073d76b 00000000 000049ae 00000000 00000000 00000000 00000000 00000000 00000000 00000000
그런 다음 커널 패킷 수신 처리기가 약간 더 오래 실행되도록 허용하면 이점이있을 수 있습니다.
기본값 300
은 핸들러가 종료되기 전에 300 개의 패킷이 수신됨을 의미합니다. 이것은 증가 할 수 있지만, 지난 수천 년 동안 많은 개선이있을 것 같지는 않습니다.
/etc/sysctl.conf
에 변경사항을 적용하고 sysctl -p
명령어로 즉시 적용 할 수 있습니다.
# set number of packets softirq receives off NIC before exiting net.core.netdev_budget = 1000
커널 메모리 예약
vm.min_free_kbytes
항목을 1GiB 이상으로 늘리 거나 인터페이스가 여러 개인 대형 시스템에서 시스템 RAM의 최대 20 %까지 늘립니다.
/etc/sysctl.conf
에 적용하고 sysctl -p
명령어로 즉시 적용 할 수 있습니다.
vm.min_free_kbytes = 1048576
참조링크
- 10gbps_nic_튜닝_권장값.txt
- 마지막으로 수정됨: 2020/11/20 02:35
- 저자 koov