배경
내부 망도 1Gbps 연결로 구축하고, 라즈베리 파이도 4B를 구매해서 1Gbps 연결을 받도록 하고, 인터넷 회선도 1Gbps 신청했다.
WAN 직결하여 속도 측정 시 900Mbps 속도를 볼 수 있었는데, RPi4B 연결을 하자마자 300Mbps 정도 밖에 안 나왔다.
최소 800Mbps 이상을 원했기 때문에 방법을 찾아봤다.
기기 및 환경
- Raspberry Pi 4B 8GB
- MicroSD 16GB
- Cat. 6 LAN cable
- nexi gigabit USB-ethernet card (RealTek chip)
과정
ImmortalWRT Flash
OpenWRT 환경에서는 어떤 방법을 해도 400Mbps 속도를 넘길 수 없었다.
RPi4 자체에서는 800Mbps 속도가 나왔지만 유선으로 연결한 기기에서는 eth1 realtek chip driver 때문에 그 이상의 속도가 나오기 어려웠기 때문이다.
다른 PC에서 기기에 맞는 이미지를 아래 링크에서 다운로드한다.
ImmortalWrt Firmware Selector
العربية (Arabic) Asturianu (Asturian) български (Bulgarian) বাংলা (Bengali) Català (Catalan) Čeština (Czech) Dansk (Danish) Deutsch (German) Ελληνικά (Greek) English Español (Spanish) فارسی (Persian) Suomalainen (
firmware-selector.immortalwrt.org
Raspberry Pi Image Uploader 사용하여 이전과 마찬가지로 SD card flashing 시켜주고,
연결해서 inteface, device 설정을 해준다. (이전 게시물 참고)
Raspberry Pi + openWRT 설정
목적openWRT를 설치하고자 하는 이유는 다음과 같다. :DDNS : frontli.ne.kr domain을 유동 IP에 대응내부 다른 서버로 port forward : wiki 및 RDP/VNC, SSL 등DNS 보안을 위한 설정 : DNSSEC, DoH, DoTAdblock : 광고 차단구
victor-frontline.tistory.com
Setting
대량 packet 처리 중 CPU 과부하로 뻗지 않도록 하는 과정이다.
irqbalance 패키지를 설치한다.
opkg install irqbalance
CPU 연산 처리 속도를 높이기 위해서 overclock 하도록 한다.
ssh 접속하거나 직접 연결하여 vim 편집기로 /boot/config.txt 파일을 수정한다.
vim /boot/config.txt
...
...
...
...
[all]
# Place your custom settings here.
# 아래 두 줄을 추가한다
over_voltage=6
arm_freq=2000
Luci > Network > Firewall 차례로 이동하여 중간 쯤 Routing/NAT Offloading 항목에서 Software Offloading 선택 항목을 설정한다. Hardware Offloading 항목은 반드시 off 설정하거나 선택 하지 않는다.
SQM 사용 시, 반드시 Off 해야한다. 그렇지 않으면 offloading 설정과 반대로 작동해서 kernel panic 발생 여지가 있다.
Luci > System > Startup 차례로 이동하여 Local Startup 선택하여 이동하고, 아래 내용을 참고하여 적절히 넣는다. 그대로 붙여넣어도 된다.
# 부팅 대기 (USB 인식 시간 확보)
sleep 20
# 1. CPU 퍼포먼스 모드
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
# 2. [극약 처방] USB 랜카드 다이어트 (버퍼 줄이기)
if [ -e /usr/sbin/ethtool ]; then
# 내장 랜카드 (WAN)
/usr/sbin/ethtool -K eth0 tso off gso off gro off sg off
# USB 랜카드 (LAN)
# 가속 기능 전부 끄기
/usr/sbin/ethtool -K eth1 tso off gso off gro off sg off
# ★ 핵심 변경: 링 버퍼(Ring Buffer) 줄이기 ★
# 욕심내서 늘리지 않고, 안정적인 수치로 고정합니다. (기본값이나 그 이하)
# 오류가 나면 이 부분은 무시됩니다.
/usr/sbin/ethtool -G eth1 rx 512 tx 512 2>/dev/null
# 흐름 제어 끄기
/usr/sbin/ethtool -A eth0 rx off tx off
/usr/sbin/ethtool -A eth1 rx off tx off
fi
# 3. 패킷 분산 (RPS) - 1:1 전담 마크 (가장 안전함)
# 2개씩 묶지 말고 하나씩만 전담시킵니다.
echo 2 > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo 4 > /sys/class/net/eth1/queues/rx-0/rps_cpus
# 4. 네트워크 백로그 원상 복구 (욕심 버리기)
# 너무 크면 타임아웃 납니다. 적당히 줄입니다.
echo 4096 > /proc/sys/net/core/rps_sock_flow_entries
echo 1024 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt
echo 1024 > /sys/class/net/eth1/queues/rx-0/rps_flow_cnt
sysctl -w net.core.netdev_max_backlog=1000
exit 0
이후 reboot 명령어를 입력하거나 Luci 시스템에 접속하여 시스템을 재시작하면 된다
측정
[국내망 측정 경우] KT 인터넷 속도 측정 웹사이트
속도테스트 | 글로벌 No.1 KT
speed.kt.com
Speedtest by Ookla - The Global Broadband Speed Test
Use Speedtest on all your devices with our free desktop and mobile apps.
www.speedtest.net
[해외망 측정 경우]
인터넷 속도 테스트
회원님의 다운로드 속도는 얼마나 될까요? FAST.com의 간편한 인터넷 속도 테스트로 몇 초 안에 ISP 속도를 알아볼 수 있습니다.
fast.com

덧

'Back-End' 카테고리의 다른 글
| Raspberry Pi + openWRT 설정 (0) | 2025.11.06 |
|---|---|
| [SQL] 성능 개선을 위한 Query Tuning (0) | 2024.04.29 |
| 이직 회사 적응 안내서 -3- Back-End 분석 (2) | 2024.03.26 |