6.2. iperf3을 사용하여 UDP 처리량 테스트
iperf3 유틸리티는 두 호스트 간에 네트워크 처리량 테스트를 수행하는 서버와 클라이언트 모드를 제공합니다.
애플리케이션의 처리량은 애플리케이션에서 사용하는 버퍼 크기와 같은 여러 요인에 따라 달라집니다. 따라서 iperf3 과 같은 테스트 유틸리티로 측정된 결과는 프로덕션 워크로드의 서버의 애플리케이션과 크게 다를 수 있습니다.
사전 요구 사항
-
iperf3패키지는 클라이언트와 서버 둘 다에 설치됩니다. - 두 호스트의 다른 서비스는 테스트 결과에 상당한 영향을 미치는 네트워크 트래픽을 유발하지 않습니다.
- 선택 사항: 서버와 클라이언트 모두에서 최대 UDP 소켓 크기를 늘렸습니다. 자세한 내용은 시스템 전체 UDP 소켓 버퍼 중단을 참조하십시오.
프로세스
선택 사항: 서버와 클라이언트 모두에서 NIC(네트워크 인터페이스 컨트롤러)의 최대 네트워크 속도를 표시합니다.
# ethtool enp1s0 | grep "Speed" Speed: 10000Mb/s서버에서 다음을 수행합니다.
최대 UDP 소켓 읽기 버퍼 크기를 표시하고 값을 확인합니다.
# sysctl net.core.rmem_max net.core.rmem_max = 16777216표시된 값은 바이트 단위입니다.
firewalld서비스에서 기본iperf3포트 5201을 일시적으로 엽니다.# firewall-cmd --add-port=5201/tcp --add-port=5201/udpiperf3은 서버에서 TCP 소켓만 엽니다. 클라이언트에서 UDP를 사용하려는 경우 먼저 이 TCP 포트에 연결한 다음 서버는 UDP 트래픽 처리량 테스트를 수행하기 위해 동일한 포트 번호에 UDP 소켓을 엽니다. 따라서 로컬 방화벽에서 TCP 및 UDP 프로토콜 모두에 대해 포트 5201을 열어야 합니다.서버 모드에서
iperf3을 시작합니다.# iperf3 --server이제 서비스는 들어오는 클라이언트 연결을 기다립니다.
클라이언트에서 다음을 수행합니다.
클라이언트가 서버 연결에 사용하는 인터페이스의 최대 전송 단위(MTU)를 표시하고 값을 확인합니다.
# ip link show enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 ...최대 UDP 소켓 쓰기 버퍼 크기를 표시하고 값을 확인합니다.
# sysctl net.core.wmem_max net.core.wmem_max = 16777216표시된 값은 바이트 단위입니다.
처리량 측정을 시작합니다.
# iperf3 --udp --time 60 --window 16777216 --length 1472 --bitrate 2G --client 192.0.2.1-
--UDP: 테스트에 UDP 프로토콜을 사용합니다. -
--time <seconds> : 클라이언트가 전송을 중지한 시간을 초 단위로 정의합니다. -
--window & lt;size> : UDP 소켓 버퍼 크기를 설정합니다. 이상적으로는 클라이언트와 서버 모두에서 크기가 동일합니다. 서로 다른 경우 이 매개변수를 클라이언트의net.core.wmem_max또는 서버의net.core.rmem_max값으로 설정합니다. -
--length <size> : 읽고 쓸 버퍼의 길이를 설정합니다. 이 옵션을 조각화되지 않은 가장 큰 페이로드로 설정합니다. MTU - IP 헤더(IPv4의 경우 20바이트, IPv6의 경우 40바이트) - 8바이트 UDP 헤더와 같이 이상적인 값을 계산합니다. --bit rate <rate> : 비트 속도를 초당 지정된 값으로 제한합니다. 2Gbps의 경우2G와 같은 단위를 지정할 수 있습니다.이 매개변수를 작업할 것으로 예상되는 값으로 설정하고 이후 측정에서 늘립니다. 클라이언트가 전송 경로의 장치보다 빠른 속도로 패킷을 전송하거나 서버에서 처리할 수 있는 경우 패킷을 삭제할 수 있습니다.
-
--client <server>: 클라이언트 모드를 활성화하고iperf3서버를 실행하는 서버의 IP 주소 또는 이름을 설정합니다.
-
iperf3이 테스트를 완료할 때까지 기다립니다. 서버와 클라이언트 모두 통계를 1초마다 표시하고 마지막에 요약을 표시합니다. 예를 들어 다음은 클라이언트에 표시되는 요약입니다.[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams [ 5] 0.00-60.00 sec 14.0 GBytes 2.00 Gbits/sec 0.000 ms 0/10190216 (0%) sender [ 5] 0.00-60.04 sec 14.0 GBytes 2.00 Gbits/sec 0.002 ms 0/10190216 (0%) receiver이 예에서는 평균 비트 비율이 2Gbps이고 패킷이 손실되지 않았습니다.
서버에서 다음을 수행합니다.
-
Ctrl+C 눌러
iperf3서버를 중지합니다. firewalld에서 포트 5201을 종료합니다.# firewall-cmd --remove-port=5201/tcp --remove-port=5201/udp
-
Ctrl+C 눌러