base
애플리케이션 코드에는 문제가 없는데도 사용자가 서비스에서 데이터를 정상적으로 받지 못하는 상황이 종종 발생합니다. 대부분의 경우, 이런 문제의 근본 원인은 네트워크 병목 현상으로 인한 것입니다. 네트워크 병목 현상은 전체 시스템 성능에 부정적인 영향을 미치므로, 원인을 정확히 분석하고 신속히 해결하는 것이 중요합니다. 다음과 같은 원인들이 주로 네트워크 병목 현상을 유발합니다.
네트워크 문제가 의심되는 상황에서는 아래와 같은 명령어를 통해 빠르게 진단하고 원인을 분석할 수 있습니다.
// 횟수 4번 제한
$ ping -c 4 google.com
$ ping google.com
PING google.com (142.250.206.238): 56 data bytes
64 bytes from 142.250.206.238: icmp_seq=0 ttl=116 time=36.298 ms
64 bytes from 142.250.206.238: icmp_seq=1 ttl=116 time=35.797 ms
64 bytes from 142.250.206.238: icmp_seq=2 ttl=116 time=37.942 ms
64 bytes from 142.250.206.238: icmp_seq=3 ttl=116 time=36.294 ms
64 bytes from 142.250.206.238: icmp_seq=4 ttl=116 time=35.885 ms
결과의 응답 시간이 짧고 일정하면 네트워크가 안정적인 상태이며, 응답 시간이 길거나 패킷 손실이 발생할 경우 네트워크 문제를 추가로 조사할 필요가 있습니다.
// 3000번 포트가 사용중인지 확인
$ netstat -an | grep 3000
tcp46 0 0 *.3000 *.* LISTEN
// tcp Listen 포트가 모두 출력
$ netstat -lnt
이 명령어를 통해 서비스가 정상 작동 중인지, 혹은 예상치 못한 연결이 존재하는지를 확인하여 비정상적인 상태를 빠르게 식별할 수 있습니다. 자주 사용하는 옵션은 아래와 같습니다.
조회 시 http, https와 같은 프로토콜을 포함하지 않아야 합니다.
nslookup google.com
Server: ***.***.***.***
Address: ***.***.***.***#53
Non-authoritative answer:
Name: google.com
Address: 142.250.206.238
이 결과는 DNS 서버가 정상적으로 동작하고 있으며 도메인 이름이 올바르게 해석되고 있음을 나타냅니다. 아래와 같이 -type 옵션을 통해 원하는 레코드 타입을 조회 가능합니다.
nslookup -type=[RECORD_TYPE] [DOMAIN]
nslookup -type=mx tistory.com
$ traceroute -I google.com
traceroute to google.com (142.250.206.238), 64 hops max, 72 byte packets
1 myrouter (***.***.***.***) 3.621 ms 3.237 ms 2.973 ms
2 ***.***.***.*** (***.***.***.***) 6.349 ms 3.916 ms *
3 ***.***.***.*** (***.***.***.***) 4.277 ms 4.365 ms 5.378 ms
4 ***.***.***.*** (***.***.***.***) 4.951 ms 4.147 ms 4.650 ms
5 ***.***.***.*** (***.***.***.***) 10.757 ms 21.561 ms 10.925 ms
6 ***.***.***.*** (***.***.***.***) 10.383 ms 11.227 ms 11.848 ms
7 72.14.202.136 (72.14.202.136) 38.670 ms 35.194 ms 35.539 ms
8 209.85.245.105 (209.85.245.105) 35.647 ms 36.431 ms 35.802 ms
9 108.170.248.188 (108.170.248.188) 43.146 ms 34.761 ms 34.591 ms
10 72.14.234.67 (72.14.234.67) 34.843 ms 35.008 ms 37.373 ms
11 142.250.58.92 (142.250.58.92) 38.362 ms 36.649 ms 37.958 ms
12 142.250.57.113 (142.250.57.113) 36.498 ms 37.410 ms 36.457 ms
13 142.250.58.193 (142.250.58.193) 37.762 ms 38.512 ms 36.785 ms
14 kix06s10-in-f14.1e100.net (142.250.206.238) 36.435 ms 37.261 ms 38.782 ms
기본적으론 traceroute는 목적지에 도달하기 위한 경로를 최대 30개까지 표시한다. 출력에는 게이트웨이 이름, IP 주소, 그리고 3번의 왕복시간을 표시한다. 일부 네트워크에서 ICMP 대신 UDP/TCP trace 필요 합니다.
traceroute -I google.com # ICMP
traceroute -T google.com # TCP
위와 같은 결과를 통해 특정 지점에서 과도한 지연이나 문제가 발생하고 있는지 명확히 진단할 수 있으며, 네트워크 성능 저하의 정확한 위치를 파악하는 데 유용합니다.
소개된 네 가지 명령어(ping, netstat, nslookup, tracert)를 활용하면 네트워크 상태를 신속하고 정확하게 분석하여 서비스 품질을 높일 수 있습니다. 정기적으로 이러한 명령어를 통해 네트워크 상태를 점검하고, 전문적인 네트워크 모니터링 툴과 함께 사용하면 더욱 효과적으로 네트워크 성능을 관리하고 장기적인 시스템 안정성을 확보할 수 있습니다.