본문 바로가기

Microsoft/Windows Server 2003

RPC 성능 테스트

Microsoft 원격 프로시저 호출(RPC) 성능을 테스트하는 방법

function loadTOCNode(){}
기술 자료 ID : 177446
마지막 검토 : 2003년 10월 1일 수요일
수정 : 2.0
var sectionFilter = "type != 'notice' && type != 'securedata' && type != 'querywords'"; var tocArrow = "/library/images/support/kbgraphics/public/en-us/downarrow.gif"; var depthLimit = 10; var depth3Limit = 10; var depth4Limit = 5; var depth5Limit = 3; var tocEntryMinimum = 1;

요약

loadTOCNode(1, 'summary');
이 문서에서는 Microsoft 원격 프로시저 호출(RPC) 성능을 테스트하는 방법과 RPC 오류 메시지 문제를 해결하는 방법을 설명합니다.

위로 가기

추가 정보

loadTOCNode(1, 'moreinformation');
RPC는 OSF(Open Software Foundation) 디자인과 호환되고 다른 DCE(Data Communications Exchange) 표준과도 상호 운용이 가능합니다. RPC는 클라이언트와 서버 간의 통신을 위한 업계 표준 프로세스 간 통신(IPC) 메커니즘으로 네트워크에 독립적이고 다양한 네트워크 프로토콜에서 작동할 수 있습니다. RPC에서는 IPC 메커니즘을 사용하여 클라이언트와 서버 간의 통신을 설정해서 원격 컴퓨터의 프로그램 함수를 호출합니다. 이러한 서비스 수준을 사용하는 복잡한 프로그램이 이 기능을 적절하게 전달하기 위해서는 연결이나 적절한 처리량 수준이 있어야 합니다. 예를 들어, Microsoft Exchange Server를 사용하는 경우에 데이터 흐름을 안정적으로 유지하기 위해서는 연결이 필요합니다.

위로 가기

RPC 오류 메시지

loadTOCNode(2, 'moreinformation'); RPC를 사용할 경우 다음과 같은 오류 메시지 중 하나가 나타날 수 있는데, 느린 네트워크 연결이 그 원인일 수 있습니다.
RPC 프로토콜 시퀀스를 지원하지 않습니다.
RPC 프로토콜 시퀀스가 틀립니다.
RPC 서버가 이미 듣고 있습니다.
RPC 서버가 듣고 있지 않습니다.
RPC 서버를 사용할 수 없습니다.
RPC 서버가 너무 바빠서 이 작업을 마칠 수 없습니다.
RPC 프로토콜 오류가 발생했습니다.
RPC 서버가 전송 구문을 지원하지 않습니다.
RPC 프로토콜 시퀀스를 찾지 못했습니다.
원격 프로시저 호출(RPC)에 내부 오류가 발생했습니다.
RPC 서버가 0으로 정수를 나눗셈을 하려고 했습니다.
RPC 서버에서 주소 지정 오류가 발생했습니다.
RPC 서버에서 부동 소수점 연산을 할 때 0으로 나누었습니다.
RPC 서버에서 부동 소수점 언더플로가 생겼습니다.
RPC 서버에서 부동 소수점 오버플로가 생겼습니다.
자동 핸들의 바인딩에 사용 가능한 RPC 서버 목록이 전부 사용되었습니다.
지정된 오류는 올바른 Windows RPC 오류 코드가 아닙니다.
RPC 중 호환되지 않는 버전입니다.
RPC 파이프 개체가 잘못되었거나 손상되었습니다.
주어진 RPC 파이프 개체에 대한 작업이 올바르지 않습니다.
지원되지 않는 RPC 파이프 버전입니다.
잘못된 비동기식 RPC가 이 작업에 대한 핸들을 호출합니다.
RPC 파이프 개체가 이미 닫혔습니다.
모든 파이프가 처리되기 전에 RPC 호출을 완료했습니다.
RPC 파이프에 더 이상 데이터가 없습니다.

위로 가기

RPC 성능 및 오류 메시지 문제 해결

loadTOCNode(2, 'moreinformation'); RPC 오류 메시지가 느린 네트워크 연결로 인해 발생했는지 확인할 때 사용할 수 있는 도구는 여러 가지가 있습니다. RPC 오류 메시지가 나타날 경우 가능한 원인인 느린 네트워크 연결을 제거하십시오. 다음 방법 중 하나 이상을 사용하여 문제를 찾으십시오.
이름 확인 문제가 RPC 오류 메시지의 원인일 경우 이를 해결하려면 대상 서버의 명령 프롬프트에서 NET VIEW 명령을 사용할 수 있는지 확인합니다. 클라이언트와 서버 프로그램 간에 TCP/IP(Transmission Control Protocol/Internet Protocol) 프로토콜을 사용하는 경우 Lmhosts 파일을 사용하여 문제의 가능한 원인인 WINS(Windows Internet Naming Service)를 해결할 수 있습니다.
다른 RPC 프로그램으로 기본 RPC 연결을 테스트할 수 있습니다. Windows NT Server에는 여러 가지 RPC 프로그램이 포함되어 있습니다. 이벤트 뷰어(Eventvwr.exe)와 레지스트리 편집기(Regedt32.exe)는 Windows NT를 실행 중인 컴퓨터에 자신의 포커스를 설정할 수 있습니다. 사용자 관리자(Usrmgr.exe)와 서버 관리자(Srvmgr.exe) 같은 다른 프로그램도 기본적으로 주 도메인 컨트롤러(PDC)에 자신의 포커스를 설정합니다. 그 외의 RPC 연결 테스트로 이러한 프로그램 중 하나를 사용합니다.
네트워크 연결을 테스트하려면 성능 모니터(Perfmon.exe)를 사용하여 네트워크를 통한 기본 파일 복사 속도를 모니터링합니다. 테스트에 적절한 샘플링 시간을 제공하고 세그먼트화와 순서화를 완전 허용하도록 크기가 2MB 이상인 파일에서만 테스트합니다. 성능 모니터를 사용하여 네트워크 간 파일을 복사하려면 다음과 같이 합니다.

1. 크기가 2MB 이상인 파일을 찾습니다. 바로 사용할 수 있는 크기가 2MB인 파일이 없는 경우에는 COPY 명령을 사용하여 기존 파일에서 이 파일을 만들 수 있습니다. 이렇게 하려면 명령 프롬프트에서 다음 명령을 입력한 다음 Enter 키를 누릅니다.
copy /b file.ext + file.ext + file.ext + file.ext destination.ext
참고: 원본 파일이 텍스트 파일이 아닌 경우에는 이진(/b) 스위치를 사용하십시오. 이렇게 하면 Ctrl+Z를 파일 끝(EOF) 문자로 읽지 않습니다.
2. 클라이언트 컴퓨터에서 성능 모니터를 시작합니다. 성능 모니터가 파일을 복사하기 위한 다른 컴퓨터로의 연결을 구분하지 못하므로 다른 연결이 결과에 영향을 미치는 경우 현재의 네트워크 연결을 모두 끊을 수 있습니다. 현재의 네트워크 연결을 모두 끊으려면 명령 프롬프트에서 net use * /d를 입력한 다음 Enter 키를 누릅니다.
3. 성능 모니터는 Bytes Transmitted/sec, Bytes Received/sec 및 Bytes Total/sec 카운터를 사용하여 서버 또는 리디렉터 개체의 파일 복사를 모니터링할 수 있습니다. 절차를 간소화하고 RPC 연결의 데이터 흐름을 보다 정확하게 나타내기 위해서는 파일을 서버 컴퓨터에서 RPC 프로그램을 실행 중인 클라이언트 컴퓨터로 복사합니다. 서버 컴퓨터에서 크기가 2MB인 파일을 찾아야 합니다.
4. 클라이언트 컴퓨터의 성능 모니터에서 다음과 같이 합니다.
a. 편집 메뉴에서 차트에 추가를 누릅니다.
b. 개체 상자에서 Redirector를 누릅니다.
c. 카운터 상자에서 Bytes Received/sec를 누른 다음 추가를 누릅니다.
5. 명령 프롬프트에서 네트워크 드라이브 문자를 서버 컴퓨터로 매핑한 다음 파일을 서버 컴퓨터에서 클라이언트 컴퓨터로 복사합니다.
6. 성능 모니터에서 평균, 최대 및 최소값을 봅니다. 128Kbps 링크에서 테스트할 때는 평균 카운터를 보고 복사 프로세스가 이론상의 한계인 초당 16,384바이트의 75%(.75 x 16,384 = 12,288bps) 정도로 실행되는지 확인합니다. 중요한 기능을 담당하는 경우 이 값은 75%보다 더 높아야 하며 이는 네트워크를 확장해야 함을 나타낼 수 있습니다. 예를 들어 800,000bps에 근접한 측정 값은 적합한 값입니다. 다음 표는 kpbs(kilobits per second)와 KBps(Kilobytes per second)의 환산표입니다.

연결 속도 bps(초당 바이트 수)
128kbps 16,384
512kbps 65,536
1.544Mbps(T1) 193,000
10Mbps(이더넷) 1,250,000
46.320Mbps(T3) 5,790,000


128K 같은 특정 회선 속도에서는 사용률과 그 밖의 다른 요소에 따라 전체 처리량이 16,384bps 미만으로 나타납니다. 여기에 나와 있는 수치는 이론상의 최대값이며, 네트워크 오버헤드로 인해 그 값이 감소됩니다.
7. 문제에서 일반 네트워크 연결을 제외시키려면 다음과 같이 합니다.
a. 클라이언트 컴퓨터의 성능 모니터에서 편집 메뉴의 차트에 추가를 누릅니다.
b. 개체 상자에서 Redirector를 누릅니다.
c. 카운터 상자에서 Bytes Transmitted/sec를 누른 다음 추가를 누릅니다.
d. 파일을 다시 서버 컴퓨터로 복사한 다음 파일 복사 속도를 모니터링합니다.
참고: 이 테스트는 클라이언트 컴퓨터와 서버 컴퓨터 간에 원하는 서비스 수준에 허용되어야 합니다. 성능 모니터를 사용하여 다른 테스트를 추가로 수행하려면 클라이언트 컴퓨터와 서버 컴퓨터 사이에서 데이터 흐름 방향을 거꾸로 하고 적절한 카운터를 선택하십시오.
두 컴퓨터 간의 RPC 통신을 테스트하는 다른 방법은 Rpcping 도구를 사용하는 것입니다.Rpcping 도구를 사용하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
167260 (http://support.microsoft.com/kb/167260/KO/) XCLN:RPCPing을 사용하여 RPC 통신을 테스트하는 방법
클라이언트 컴퓨터나 서버 컴퓨터에 다른 공급업체 서비스가 실행 중이거나 보다 큰 서비스가 실행 중이기 때문에 RPC 오류 메시지가 발생할 수도 있습니다. 해당 문제가 실행 중인 서비스 때문에 발생했는지 확인하려면 기본 서비스가 아닌 서비스를 모두 중지하고 이벤트 뷰어와 성능 모니터를 다시 사용하여 RPC 성능을 테스트합니다.
클라이언트 컴퓨터와 서버 컴퓨터의 RPC 서비스 상태를 검사합니다. 이렇게 하려면 명령 프롬프트에서 net start를 입력한 다음 Enter 키를 누릅니다. 도메인 컨트롤러의 경우 다음과 같은 정보가 표시됩니다.
Remote Procedure Call (RPC) Locator
Remote Procedure Call (RPC) Service
이러한 서비스의 상태를 자세히 검사하려면 Microsoft Windows NT Resource Kit에 포함되어 있는 Sc.exe 도구를 사용합니다.Sc.exe 도구를 사용하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
166819 (http://support.microsoft.com/kb/166819/KO/) Sc.exe와 Netsvc.exe를 사용하여 원격으로 서비스 제어
Services.exe에 RPC 코드 중 대부분이 포함되고 해당 스레드 중 하나가 멈춘 상태일 수 있습니다. 오류 메시지가 보고되었는지 확인하려면 Dr. Watson 도구(Drwtsn32.exe)를 사용합니다. 오류 메시지가 보고되지 않은 경우에도 해당 스레드 중 하나가 멈출 수 있습니다. 이러한 경우에는 컴퓨터를 다시 시작해야 할 수 있습니다.
Windows NT Resource Kit에 포함되어 있는 Tlist.exe 도구를 사용하면 다음과 비슷한 정보를 얻을 수 있습니다.
      62 Win32StartAddr:0x022a3ca1 LastErr:0x000003e5 State:Waiting
      64 Win32StartAddr:0x022a4895 LastErr:0x00000000 State:Waiting
      67 Win32StartAddr:0x76e03f90 LastErr:0x00000000 State:Waiting
      4.0.1381.4 shp  0x02290000  services.exe
      4.0.1381.4 shp  0x77f60000  ntdll.dll
      4.0.1381.4 shp  0x77e10000  RPCRT4.dll
						
상태, 파일 및 날짜를 검사하면 자세한 정보를 얻을 수 있습니다.
Windows NT Resource Kit에 포함되어 있는 Pmon.exe 도구 작업 관리자를 사용하면 Services.exe에 대한 정보(예: 메모리 및 CPU 사용량)를 얻을 수 있습니다.
Windows NT Resource Kit에 포함되어 있는 Pstat.exe 도구는 Services.exe의 스레드 상태를 표시합니다.