31.4. 연속된 대량의 데이터 스트림의 처리량 향상
IEEE 802.3 표준에 따르면 VLAN(Virtual Local Area Network) 태그가 없는 기본 이더넷 프레임은 최대 크기가 1518바이트입니다. 이러한 각 프레임에는 18바이트 헤더가 포함되어 있으며 페이로드에 1500바이트를 남습니다. 결과적으로, 서버가 네트워크를 통해 전송되는 모든 1500바이트의 데이터에 대해 18바이트(1.2%) 이더넷 프레임 헤더도 오버헤드로 전송됩니다. 계층 3 및 4 프로토콜의 헤더는 패킷당 오버헤드를 더 높입니다.
네트워크의 호스트가 다수의 대용량 파일을 호스팅하는 백업 서버 또는 파일 서버와 같이 연속되는 여러 데이터 스트림을 보내는 경우 점보 프레임을 사용하여 오버헤드를 저장하는 것이 좋습니다. 점보 프레임은 1500바이트의 표준 이더넷 페이로드 크기보다 더 큰 최대 전송 단위(MTU)를 갖는 비표준 프레임입니다. 예를 들어 최대 허용되는 MTU가 9000바이트 페이로드로 점보 프레임을 구성하면 각 프레임의 오버헤드가 0.2%로 줄어듭니다.
네트워크 및 서비스에 따라 네트워크의 특정 부분에서만 점보 프레임(예: 클러스터의 스토리지 백엔드)을 활성화하는 것이 유용할 수 있습니다. 이렇게 하면 패킷 조각화가 방지됩니다.
31.4.1. 점보 프레임을 구성하기 전에 고려 사항
네트워크의 하드웨어, 애플리케이션 및 서비스에 따라 점보 프레임이 다른 영향을 미칠 수 있습니다. 점보 프레임이 시나리오의 이점을 제공하는지 여부를 신중하게 결정합니다.
사전 요구 사항
전송 경로의 모든 네트워크 장치는 점보 프레임을 지원해야 하며 동일한 최대 전송 단위(MTU) 크기를 사용해야 합니다. 반대로, 다음과 같은 문제에 직면할 수 있습니다:
- 패킷을 삭제했습니다.
- 조각화된 패킷으로 인해 대기 시간이 길어집니다.
- 조각화로 인한 패킷 손실 위험 증가 예를 들어 라우터가 하나의 9000바이트 프레임을 6개의 1500바이트 프레임으로 분할하고 1500바이트 프레임 중 하나가 손실되면 전체 프레임이 손실됩니다.
다음 다이어그램에서 세 개의 서브넷에 있는 모든 호스트는 네트워크 A의 호스트가 네트워크 C의 호스트에 패킷을 보내는 경우 동일한 MTU를 사용해야 합니다.
점보 프레임의 이점
- 처리량이 높아짐: 각 프레임에는 프로토콜 오버헤드가 고정된 동안 더 많은 사용자 데이터가 포함됩니다.
- CPU 사용률 감소: 점보 프레임으로 인해 인터럽트가 감소하므로 CPU 사이클이 절약됩니다.
점보 프레임의 단점
- 대기 시간이 길음: 더 큰 프레임은 이어지는 패킷을 지연시킵니다.
- 메모리 버퍼 사용량 증가: 더 큰 프레임은 버퍼 큐 메모리를 더 빠르게 채울 수 있습니다.
31.4.2. 기존 NetworkManager 연결 프로필에서 MTU 구성
네트워크에서 기본값과 다른 최대 전송 단위(MTU)가 필요한 경우 해당 NetworkManager 연결 프로필에서 이 설정을 구성할 수 있습니다.
점보 프레임은 1500에서 9000 바이트 사이의 페이로드가 있는 네트워크 패킷입니다. 동일한 브로드캐스트 도메인의 모든 장치는 이러한 프레임을 지원해야 합니다.
사전 요구 사항
- 브로드캐스트 도메인의 모든 장치는 동일한 MTU를 사용합니다.
- 네트워크의 MTU를 알고 있습니다.
- Vivergent MTU를 사용하여 네트워크의 연결 프로필을 이미 구성하셨습니다.
절차
선택 사항: 현재 MTU를 표시합니다.
# ip link show ... 3: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:74:79:56 brd ff:ff:ff:ff:ff:ff ...
선택 사항: NetworkManager 연결 프로필을 표시합니다.
# nmcli connection show NAME UUID TYPE DEVICE Example f2f33f29-bb5c-3a07-9069-be72eaec3ecf ethernet enp1s0 ...
다양한 MTU를 사용하여 네트워크에 대한 연결을 관리하는 프로필의 MTU를 설정합니다.
# nmcli connection modify Example mtu 9000
연결을 다시 활성화합니다.
# nmcli connection up Example
검증
MTU 설정을 표시합니다.
# ip link show ... 3: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:74:79:56 brd ff:ff:ff:ff:ff:ff ...
전송 경로의 호스트가 패킷 조각이 없는지 확인합니다.
수신자 측에서 커널의 IP reassembly 통계를 표시합니다.
# nstat -az IpReasm* #kernel IpReasmTimeout 0 0.0 IpReasmReqds 0 0.0 IpReasmOKs 0 0.0 IpReasmFails 0 0.0
카운터가
0
을 반환하면 패킷이 다시 조립되지 않았습니다.발신자 측에서 prohibit-fragmentation-bit로 ICMP 요청을 전송합니다.
# ping -c1 -Mdo -s 8972 destination_host
명령이 성공하면 패킷이 조각화되지 않았습니다.
다음과 같이 패킷 크기 옵션
의
값을 계산합니다. MTU 크기 - 8바이트 ICMP 헤더 - 20바이트 IPv4 헤더 = 패킷 크기