Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Python
- write
- Callback
- package
- File
- go
- 영화
- JavaScript
- range
- Golang
- tcp
- API
- bitcoin
- GO 언어
- FOR
- window
- windows
- channel
- 리뷰
- Sync
- http
- C
- 책
- go언어
- c++
- mutex
- install
- Close
- json
- Linux
Archives
- Today
- Total
Code Habit
서버 네트워크 성능 측정하기 본문
리눅스 서버에서 네트워크를 점검할 때 많이 사용하는 iperf3와 네트워크 트래픽 측정 관련 shell을 정리해보려 한다.
간단한 툴이지만 실제 회사업무에서 서버 네트워크 상태를 체크하는데 유용하게 사용했다.
1. CentOS에 iperf3 설치하기
sudo dnf install iperf3
2. iperf3 사용하기
2.1 서버모드 실행
iperf3 -s
2.2 클라이언트 모드로 접속하기
iperf3 -c server_ip
2.3 결과 ( 클라이언트 모드 )
server 역할을 수행할 서버에서 서버모드로 iperf3를 실행 후 타 서버에서 클라이언트 모드로 접속하면 위와 같이 초당 네트워크 전송량을 측정해준다. 전송량을 따로 명시하지 않으면 NIC카드가 허용하는 최대치까지 전송해 준다.
초당 전송량은 900MBytes정도며 Retr(재전송 횟수)는 평균적으로 0임을 알 수 있다. 참고로 재전송 횟수는 적을수록 안정적이다.
3. 네트워크 트래픽 측정 쉘
while true
do
# 현재의 bytes 값을 읽어옴 (Receive와 Transmit)
RX_BYTES_1=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $2}')
TX_BYTES_1=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $10}')
sleep 1 # 1초 동안 대기
# 1초 후의 bytes 값을 읽어옴 (Receive와 Transmit)
RX_BYTES_2=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $2}')
TX_BYTES_2=$(cat /proc/net/dev | grep $INTERFACE | awk '{print $10}')
# 초당 전송량 계산 (바이트)
RX_RATE=$((RX_BYTES_2 - RX_BYTES_1))
TX_RATE=$((TX_BYTES_2 - TX_BYTES_1))
# 바이트를 Mbps로 변환
RX_Mbps=$(echo "scale=2; $RX_RATE * 8 / 1000000" | bc)
TX_Mbps=$(echo "scale=2; $TX_RATE * 8 / 1000000" | bc)
# 결과 출력
echo "RX: $RX_Mbps Mbps, TX: $TX_Mbps Mbps"
done
위 쉘을 실행하면 초당 네트워크 트래픽 ( RX / TX )를 측정할 수 있다.