SAP 에서는 네트워크 이슈의 문제점을 진단하거나, 네트워크 성능 지표를 측정하는 도구로 NIPING 을 제공하고 있다.
NIPING 을 사용하면 SAP 소프트웨어가 실행되는 두 컴퓨터(서버/서버, 클라이언트/서버) 간의 네트워크 분석을 수행할 수 있다.
기본적으로 NIPING 은 SAP Kernel 과 SAPROUTER 에 제공되며, Kernel 에 포함되어있는 만큼 SAP Application 서버에서는 niping 명령어로 바로 호출이 가능하다.
이번 포스트에서는 NIPING 프로그램을 사용하여 클라이언트(SAPGUI) <-> 서버(SAP Appl.) 간의 문제점을 진단하는 방법에 대해서 설명한다.
- SAP Notes 799428 - Downloading SAProuter and/or niping
SAP 서버가 아닌 일반 Window PC (클라이언트) 에서는 NIPING 프로그램을 다운받은 다음 실행해야 한다.
◼ SAP Software Download Center
-> SUPPORT PACKAGES & PATCHES
-> By Category
-> Additional Components
-> SAPROUTER
-> SAPROUTER 7.54
-> <OS 종류 선택>
-> <최신 버전의 SAPROUTER 다운로드>
다운로드 받은 saprouter_XXX.sar 파일을 SAPCAR 로 압축을 풀면, 여러 파일 중에 niping.exe 프로그램을 확인할 수 있다.
기본적으로 NIPING 프로그램 사용은 목적지와 출발지로 나눠진다.
여기서는, 다음과 같은 시나리오로 연결 테스트를 수행한다고 가정한다.
[출발지] 사용자 PC (Window) => [목적지] SAP S/4HANA 어플리케이션 서버
시나리오 가정에 따라 SAP 어플리케이션 서버를 목적지로 두며, 여기서 수행하는 NIPING 프로그램이 서버 역할을 한다.
<sid>adm 계정에서 다음 명령어로 서버 역할의 niping 프로그램을 수행할 수 있다.
niping -s -I 0 [ -S <port> ] (마지막 0은 문자가 아닌 숫자이다.)
-> ready to accept clients ...
상기 문구가 출력되면 정상적으로 수행 중이며, 클라이언트 접속을 대기하는 상태이다.
niping 프로그램은 기본값으로 3298 포트로 수행되며, -S 옵션을 추가하여 포트를 변경할 수 있다.
예를 들어, 방화벽 룰로 인해 다른 포트인 3398 포트로 테스트를 수행하고 싶다면, 다음과 같이 명령어를 수행하면 된다.
niping -s -I 0 -S 3398
동일하게 시나리오 가정에 따라 사용자 PC (Window) 를 출발지로 두며, 여기서 수행하는 NIPING 프로그램이 클라이언트 역할을 한다.
cmd 수행 후, niping.exe 프로그램이 위치한 디렉토리에서 다음 명령어로 niping 프로그램을 수행할 수 있다.
클라이언트에서 niping 프로그램을 수행하면, 입력 즉시 연결 테스트가 수행된다.
이때,
2-1. NIPING 목적지에 설명한 것처럼, 목적지에서 서버 역할의 niping 프로그램이 수행 중이며, 클라이언트 대기 상태여야한다.
niping -c -H <dest_ip_or_hostname> [ -B <buffersize> -L <loops> -D <delay> -S <port> -P -T <log_file> ]
<dest_ip_or_hostname> : 목적지의 IP 또는 Hostname< 생략 가능 옵션 >
-B <buffersize> : 네트워크 테스트에 수행되는 데이터 패킷의 크기 (기본값 1000 Byte) (단위 KB)
-L <loops> : 네트워크 테스트 수행 시, 전송되는 패킷의 수 (기본값 10)
-D <delay> : loop 요청간의 지연 시간
-S <port> : 테스트 접속 포트, 목적지의 niping 프로그램 수행시 입력한 포트와 동일한 포트로 입력해야한다. 생략 시, 기본값 3298 포트로 수행
-P : 테스트 중 모든 ping 에 대한 RTT (왕복 시간) 이 출력됨
- SAP Notes 2921370 - How to chart NIPING output (generated with the -P option)
T <log_file> : 출력 결과를 로그 파일로 남기는 옵션. 예를 들어 -T test_log.txt 옵션 추가 시, 명령어 결과가 test_log.txt 로그 파일로 남겨진다.
SAP 에서는 안내하는 각 테스트 시나리오 예시는 다음과 같다.
기가랜 최대 블록 크기 100MB 크기의 데이터 패킷으로 테스트
niping -c -H <nipingsvr> -B 100000
데이터 패킷은 최소화 하고, 100번 왕복 테스트
출력 결과의 av2 값은 RTT 를 ms 단위로 나타낸다.
niping -c -H <nipingsvr> -B 1 -L 100
10MB 고용량 데이터 패킷으로 장시간(10시간) 테스트
(10Mbps 이더넷일 경우 약 10% 대역폭 사용)
niping -c -H <nipingsvr> -B 10000 -D 100 -L 360000
20KB 소용량 데이터 패킷으로 장시간(10시간) 테스트
niping -c -H <nipingsvr> -B 200 -D 1000 -L 36000
TCP 연결을 설정하고, 1시간 간격으로 테스트 데이터 패킷 전송 테스트.
총 10시간 수행되며, 장시간 TCP 연결에 대한 아이들 타임 아웃이 적용 받는지를 확인할 수 있다.
niping -c -H <nipingsvr> -P -D 3600000
단기간에 100MB 고용량 데이터 패킷으로 처리량/안정성을 테스트
약, 10초 정도 소요된다.
출력 결과의 tr2 값에 10을 곱하여, kbps 단위의 회선 대역폭을 추정할 수 있다.
niping -c -H <nipingsvr> -B 1000000 -L 100
테스트 데이터 패킷 양을 조절하여 네트워크 구간에 대한 MTU 값을 확인할 수 있다.
niping -c -H <nipingsvr> -B <nnn>