네트워크 정보확인 (ethtool)

ethtool & 네트워크 링버퍼 핵심 요약

1. ethtool 주요 옵션

명령어 내용

ethtool eth0링크 속도, 연결 상태
ethtool -g eth0링버퍼 크기 확인
ethtool -G eth0 rx 8192 tx 4096링버퍼 크기 변경
ethtool -k eth0Offload 기능 확인
ethtool -S eth0패킷 드롭/에러 통계
ethtool -i eth0드라이버 정보

2. 링버퍼 (Ring Buffer)

  • NIC와 커널 사이의 원형 큐 형태 메모리
  • 단위는 MB가 아닌 패킷 슬롯 개수
  • RX = 수신 버퍼, TX = 송신 버퍼

Pre-set maximums vs Current

  • Pre-set maximums = 하드웨어가 지원하는 최대 슬롯 수
  • Current = 현재 실제 사용 중인 슬롯 수
  • 두 값을 일치시켜야 하드웨어 능력을 100% 활용 가능

링버퍼가 작으면?

트래픽 폭주 → 링버퍼 가득 참 → 패킷 DROP → TCP 재전송 → 성능 저하

주의사항

  • 링버퍼를 늘려도 대역폭 자체가 늘어나진 않음
  • 링버퍼 튜닝 = 안정성 향상 (드롭 방지)
  • 대역폭 확장 = 속도 향상
  • 재부팅 시 초기화 → systemd 서비스로 영구 적용 필요

3. 어떤 인터페이스를 튜닝해야 하나?

ip route show | grep default
# dev 뒤에 나오는 인터페이스가 튜닝 대상
  • metric 숫자가 낮을수록 우선순위 높음
  • 게이트웨이로 나가는 메인 인터페이스를 튜닝해야 효과 있음

4. TCP Offload (-k)

CPU 대신 NIC가 직접 처리해주는 기능들

기능 역할

rx/tx-checksumming패킷 오류 검증
TSOMTU 초과 패킷 분할을 NIC가 처리
GRO작은 패킷들을 NIC가 합쳐서 CPU에 전달
GSOTSO 미지원 시 커널이 대신 처리
[fixed] = 하드웨어 고정값, 변경 불가

5. MTU (Maximum Transmission Unit)

  • 한 번에 전송 가능한 최대 패킷 크기 (단위: bytes)
  • 기본값 = 1500 bytes (이더넷 표준)
  • MTU 초과 시 패킷을 분할(단편화) 하여 전송
  • TSO = 이 분할 작업을 CPU 대신 NIC가 처리

링버퍼 슬롯과 MTU 관계

슬롯 1개 = 최대 MTU(1500bytes)까지 저장 가능
총 용량 = 슬롯 수 × MTU = 8192 × 1500 ≈ 12MB

Read more

mybloodyvalentine 3집 loveless

마이블러디발렌타인의 정규 2집 loveless 엘피를 김밥레코즈에서 5만원가량의 금액으로 구매. 요건 평생 들어도 질리지않을거같아 바이닐로 구매했다. 물리적인 이슈가 발생하지않는 한 이제 스트리밍 플랫폼의 의존성없이 평생 청취 가능하다 내부 크레딧 개인적으로 빌린다 부처의 맥아리없는 보컬을 참 좋아한다. 바이닐 커버를 벗기면 평범하다 0:00 /0:12 1× 2집 loveless만큼 3집 mbv도 좋아해서 아마

By 권동혁