탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 네트워크 서비스 Oracle Solaris 11 Information Library (한국어) |
다음 표는 네트워크 성능을 모니터링하는 데 사용할 수 있는 명령에 대해 설명합니다.
표 30-1 네트워크 모니터링 명령
|
ping 명령을 사용하여 네트워크에서 호스트 응답을 확인합니다.
$ ping hostname
물리적 문제가 예상되는 경우 ping 명령을 사용하여 네트워크에서 일부 호스트의 응답 시간을 확인할 수 있습니다. 한 호스트의 응답이 예상한 바와 다를 경우 해당 호스트를 조사할 수 있습니다. 물리적 문제는 다음과 같은 이유로 발생할 수 있습니다.
이 명령에 대한 자세한 내용은 ping(1M) 매뉴얼 페이지를 참조하십시오.
예 30-1 네트워크에서 호스트 응답 확인
ping의 가장 간단한 버전은 단일 패킷을 네트워크의 호스트로 보냅니다. ping 명령이 올바른 응답을 받는 경우 명령은 host is alive라는 메시지를 출력합니다.
$ ping elvis elvis is alive
-s 옵션을 사용하면 ping은 초당 하나의 데이터그램을 호스트로 보냅니다. 그러면 명령은 각 응답 및 라운드 트립에 필요한 시간을 출력합니다. 예는 다음과 같습니다.
$ ping -s pluto 64 bytes from pluto (123.456.78.90): icmp_seq=0. time=3.82 ms 64 bytes from pluto (123.456.78.90): icmp_seq=5. time=0.947 ms 64 bytes from pluto (123.456.78.90): icmp_seq=6. time=0.855 ms ^C ----pluto PING Statistics---- 3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) min/avg/max/sttdev = 0.855/1.87/3.82/1.7
spray 명령을 사용하여 패킷 크기의 안정성을 테스트합니다.
$ spray [ -c count -d interval -l packet-size] hostname
보낼 패킷 수입니다.
패킷을 보내는 중에 일시 중지할 마이크로초의 수입니다. 지연을 사용하지 않으면 버퍼가 대폭 줄어들 수 있습니다.
패킷 크기입니다.
패킷을 보낼 시스템입니다.
이 명령에 대한 자세한 내용은 spray(1M)를 참조하십시오.
예 30-2 네트워크에서 호스트로 패킷 보내기
다음 예에서는 2048바이트 크기의 패킷(-l 2048)으로 100 패킷(-c 100)을 호스트로 보냅니다. 각 버스트 사이에 20마이크로초의 지연 시간으로 패킷을 보냅니다(-d 20).
$ spray -c 100 -d 20 -l 2048 pluto sending 100 packets of length 2048 to pluto ... no packets dropped by pluto 279 packets/sec, 573043 bytes/sec
네트워크에서 패킷을 캡처하고 각 클라이언트의 각 서버 호출을 추적하려면 snoop 명령을 사용합니다. 이 명령은 일부 네트워크 성능 문제를 빨리 처리할 수 있는 정확한 시간 기록을 제공합니다. 자세한 내용은 snoop(1M)를 참조하십시오.
# snoop
패킷 삭제는 부족한 버퍼 공간 또는 CPU 과부하 문제로 인해 발생할 수 있습니다.
네트워크 인터페이스 상태, 경로 지정 테이블 및 다양한 프로토콜에 대한 통계와 같은 네트워크 상태 정보를 표시하려면 netstat 명령을 사용합니다.
$ netstat [-i] [-r] [-s]
TCP/IP 인터페이스 상태를 표시합니다.
IP 경로 지정 테이블을 표시합니다.
UDP, TCP, ICMP 및 IGMP 프로토콜에 대한 통계를 표시합니다.
자세한 내용은 netstat(1M)을 참조하십시오.
다음 예에서는 TCP/IP 트래픽에 사용되는 인터페이스 상태를 표시하는 netstat -i 명령의 출력을 보여줍니다.
$ netstat -i Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 software localhost 1280 0 1280 0 0 0 eri0 1500 loopback venus 1628480 0 347070 16 39354 0
이 화면에서는 각 인터페이스에서 시스템이 전송하고 수신한 패킷 수를 보여줍니다. 네트워크 트래픽이 활성화된 시스템에서는 Ipkts와 Opkts 모두 지속적으로 증가하는 것을 보여줍니다.
충돌 카운트의 수(Collis)를 출력 패킷(Opkts)의 수로 나누어 네트워크 충돌률을 계산합니다. 이전 예에서 충돌률은 11%입니다. 네트워크상에서 5 ~ 10%보다 큰 충돌률은 문제가 있음을 나타낼 수 있습니다.
입력 오류의 수를 입력 패킷의 총 수로 나누어 입력 패킷의 오류율을 계산합니다( Ierrs/Ipkts). 출력 패킷의 오류율은 출력 오류 수(Oerrs/Opkts)를 총 출력 패킷의 수로 나눈 값입니다. 입력 오류율이 0.25%보다 높으면 호스트에서 패킷을 삭제할 수 있습니다.
다음 예에서는 UDP, TCP, ICMP 및 IGMP 프로토콜의 프로토콜당 통계를 표시하는 netstat -s 명령의 출력을 보여줍니다.
UDP udpInDatagrams =196543 udpInErrors = 0 udpOutDatagrams =187820 TCP tcpRtoAlgorithm = 4 tcpRtoMin = 200 tcpRtoMax = 60000 tcpMaxConn = -1 tcpActiveOpens = 26952 tcpPassiveOpens = 420 tcpAttemptFails = 1133 tcpEstabResets = 9 tcpCurrEstab = 31 tcpOutSegs =3957636 tcpOutDataSegs =2731494 tcpOutDataBytes =1865269594 tcpRetransSegs = 36186 tcpRetransBytes =3762520 tcpOutAck =1225849 tcpOutAckDelayed =165044 tcpOutUrg = 7 tcpOutWinUpdate = 315 tcpOutWinProbe = 0 tcpOutControl = 56588 tcpOutRsts = 803 tcpOutFastRetrans = 741 tcpInSegs =4587678 tcpInAckSegs =2087448 tcpInAckBytes =1865292802 tcpInDupAck =109461 tcpInAckUnsent = 0 tcpInInorderSegs =3877639 tcpInInorderBytes =-598404107 tcpInUnorderSegs = 14756 tcpInUnorderBytes =17985602 tcpInDupSegs = 34 tcpInDupBytes = 32759 tcpInPartDupSegs = 212 tcpInPartDupBytes =134800 tcpInPastWinSegs = 0 tcpInPastWinBytes = 0 tcpInWinProbe = 456 tcpInWinUpdate = 0 tcpInClosed = 99 tcpRttNoUpdate = 6862 tcpRttUpdate =435097 tcpTimRetrans = 15065 tcpTimRetransDrop = 67 tcpTimKeepalive = 763 tcpTimKeepaliveProbe= 1 tcpTimKeepaliveDrop = 0 IP ipForwarding = 2 ipDefaultTTL = 255 ipInReceives =11757234 ipInHdrErrors = 0 ipInAddrErrors = 0 ipInCksumErrs = 0 ipForwDatagrams = 0 ipForwProhibits = 0 ipInUnknownProtos = 0 ipInDiscards = 0 ipInDelivers =4784901 ipOutRequests =4195180 ipOutDiscards = 0 ipOutNoRoutes = 0 ipReasmTimeout = 60 ipReasmReqds = 8723 ipReasmOKs = 7565 ipReasmFails = 1158 ipReasmDuplicates = 7 ipReasmPartDups = 0 ipFragOKs = 19938 ipFragFails = 0 ipFragCreates =116953 ipRoutingDiscards = 0 tcpInErrs = 0 udpNoPorts =6426577 udpInCksumErrs = 0 udpInOverflows = 473 rawipInOverflows = 0 ICMP icmpInMsgs =490338 icmpInErrors = 0 icmpInCksumErrs = 0 icmpInUnknowns = 0 icmpInDestUnreachs = 618 icmpInTimeExcds = 314 icmpInParmProbs = 0 icmpInSrcQuenchs = 0 icmpInRedirects = 313 icmpInBadRedirects = 5 icmpInEchos = 477 icmpInEchoReps = 20 icmpInTimestamps = 0 icmpInTimestampReps = 0 icmpInAddrMasks = 0 icmpInAddrMaskReps = 0 icmpInFragNeeded = 0 icmpOutMsgs = 827 icmpOutDrops = 103 icmpOutErrors = 0 icmpOutDestUnreachs = 94 icmpOutTimeExcds = 256 icmpOutParmProbs = 0 icmpOutSrcQuenchs = 0 icmpOutRedirects = 0 icmpOutEchos = 0 icmpOutEchoReps = 477 icmpOutTimestamps = 0 icmpOutTimestampReps= 0 icmpOutAddrMasks = 0 icmpOutAddrMaskReps = 0 icmpOutFragNeeded = 0 icmpInOverflows = 0 IGMP: 0 messages received 0 messages received with too few bytes 0 messages received with bad checksum 0 membership queries received 0 membership queries received with invalid field(s) 0 membership reports received 0 membership reports received with invalid field(s) 0 membership reports received for groups to which we belong 0 membership reports sent
다음 예에서는 IP 경로 지정 테이블을 표시하는 netstat - r 명령의 출력을 보여줍니다.
Routing Table: Destination Gateway Flags Ref Use Interface ------------------ -------------------- ----- ----- ------ --------- localhost localhost UH 0 2817 lo0 earth-bb pluto U 3 14293 eri0 224.0.0.0 pluto U 3 0 eri0 default mars-gate UG 0 14142
netstat - r 보고서의 필드는 다음 표에 설명되어 있습니다.
표 30-2 netstat -r 명령의 출력
|
NFS 분산 파일 서비스는 로컬 명령을 원격 호스트에 대한 요청으로 변환하는 원격 프로시저 호출(RPC) 기능을 사용합니다. 원격 프로시저 호출은 동기식입니다. 클라이언트 응용 프로그램은 서버가 호출을 완료하고 결과를 반환할 때까지 차단되거나 일시 중지됩니다. NFS 성능에 영향을 미치는 주요 요인 중 하나는 재전송률입니다.
파일 서버가 클라이언트 요청에 응답할 수 없는 경우 클라이언트는 중지하기 전에 지정된 횟수의 요청을 재전송합니다. 각 재전송은 시스템 과부하 및 네트워크 트래픽 증가를 유발합니다. 과도한 재전송은 네트워크 성능 문제를 유발할 수 있습니다. 재전송률이 높은 경우, 다음과 같은 이유로 인한 것일 수 있습니다.
다음 표에서는 클라이언트 및 서버 통계를 표시하는 nfsstat 옵션에 대해 설명합니다.
표 30-3 클라이언트/서버 통계 표시 명령
|
nfsstat -c를 사용하여 클라이언트 통계를 표시하고 nfsstat -s를 사용하여 서버 통계를 표시합니다. netstat -m을 사용하여 각 파일 시스템의 네트워크 통계를 표시합니다. 자세한 내용은 nfsstat(1M)를 참조하십시오.
다음 예에서는 클라이언트 pluto에 대한 RPC 및 NFS 데이터를 표시합니다.
$ nfsstat -c Client rpc: Connection oriented: calls badcalls badxids timeouts newcreds badverfs timers 1595799 1511 59 297 0 0 0 cantconn nomem interrupts 1198 0 7 Connectionless: calls badcalls retrans badxids timeouts newcreds badverfs 80785 3135 25029 193 9543 0 0 timers nomem cantsend 17399 0 0 Client nfs: calls badcalls clgets cltoomany 1640097 3112 1640097 0 Version 2: (46366 calls) null getattr setattr root lookup readlink read 0 0% 6589 14% 2202 4% 0 0% 11506 24% 0 0% 7654 16% wrcache write create remove rename link symlink 0 0% 13297 28% 1081 2% 0 0% 0 0% 0 0% 0 0% mkdir rmdir readdir statfs 24 0% 0 0% 906 1% 3107 6% Version 3: (1585571 calls) null getattr setattr lookup access readlink read 0 0% 508406 32% 10209 0% 263441 16% 400845 25% 3065 0% 117959 7% write create mkdir symlink mknod remove rmdir 69201 4% 7615 0% 42 0% 16 0% 0 0% 7875 0% 51 0% rename link readdir readdir+ fsstat fsinfo pathconf 929 0% 597 0% 3986 0% 185145 11% 942 0% 300 0% 583 0% commit 4364 0% Client nfs_acl: Version 2: (3105 calls) null getacl setacl getattr access 0 0% 0 0% 0 0% 3105 100% 0 0% Version 3: (5055 calls) null getacl setacl 0 0% 5055 100% 0 0%
nfsstat -c 명령의 출력은 다음 표에 설명되어 있습니다.
표 30-4 nfsstat -c 명령의 출력
|
다음 예에서는 nfsstat -m 명령의 출력을 보여줍니다.
pluto$ nfsstat -m /usr/man from pluto:/export/svr4/man Flags: vers=2,proto=udp,auth=unix,hard,intr,dynamic, rsize=8192, wsize=8192,retrans=5 Lookups: srtt=13 (32ms), dev=10 (50ms), cur=6 (120ms) All: srtt=13 (32ms), dev=10 (50ms), cur=6 (120ms)
밀리초로 표시되는 이 nfsstat -m 명령의 출력은 다음 표에서 설명합니다.
표 30-5 nfsstat -m 명령의 출력
|
네트워크의 하드웨어 구성 요소에서 문제가 발생하고 있다고 예상되는 경우 케이블과 커넥터를 주의 깊게 살펴봐야 합니다.