Proxmox 메모리/네트워크 튜닝 및 BBR 적용

 

안녕하세요. 달소입니다.

 

Proxmox 설치 후 셋팅과정인데 하나씩 작성해봅니다 ㅎㅎ

 

여기서는 Proxmox VE 호스트의 메모리 관리 효율성을 높이고, 네트워크 스택 성능을 최적화하며, 최신 TCP 혼잡 제어 알고리즘인 BBR을 적용하는 방법을 진행해보겠습니다.

 

1. sysctl을 이용한 메모리 및 네트워크 스택 통합 튜닝

메모리 관리와 네트워크 스택 튜닝 파라미터를 하나의 설정 파일에 통합하여 적용하면 관리가 용이합니다.

1단계: 통합 튜닝 설정 파일 생성 및 편집

먼저, vi 텍스트 편집기를 사용하여 새 설정 파일을 생성합니다. 파일 이름을 99-pve-tuning.conf로 지정하면, 시스템의 기본 설정보다 나중에 로드되어 우리가 설정한 값이 우선 적용됩니다.

 

vi /etc/sysctl.d/99-pve-tuning.conf

 

#
# Proxmox VE 9 통합 성능 및 안정성 튜닝
#

# === 섹션 1: 고급 메모리 관리 (가상화 안정성 향상) ===

# 하이퍼바이저에서 메모리 스왑을 최소화하여 VM 프로세스가 디스크로 스왑되는 것을 방지합니다.
vm.swappiness=2

# 디스크 쓰기 캐시(dirty cache) 비율을 낮춰 백업 등 과도한 I/O 발생 시
# 대규모 쓰기 지연(write storm)으로 인한 VM 멈춤 현상을 방지합니다.
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

# 파일 시스템 캐시(dentry, inode) 회수 경향을 높여 VM을 위한 메모리를 더 빨리 확보하도록 돕습니다.
vm.vfs_cache_pressure = 500

# === 섹션 2: 커널 네트워크 스택 튜닝 (대규모 가상 네트워크 환경 최적화) ===

# 네트워크 장치의 수신 패킷 큐(backlog) 크기를 늘려 트래픽 폭주 시 패킷 손실을 방지합니다.
net.core.netdev_max_backlog = 50000

# TCP 읽기/쓰기 버퍼의 최소, 기본, 최대 크기를 늘려 고대역폭/고지연 네트워크의 처리량을 향상시킵니다.
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 모든 종류의 연결에 대한 최대 수신/송신 소켓 버퍼 크기를 늘립니다.
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

# 동시 접속이 많은 서버(VM)를 위해 수신 연결 요청(SYN) 대기 큐를 늘립니다.
net.ipv4.tcp_max_syn_backlog = 40000

# === 섹션 3: TCP 혼잡 제어 알고리즘 BBR 적용 (원격지 네트워크 성능 향상) ===

# 기본 패킷 스케줄러를 fq(Fair Queue)로 설정합니다. BBR의 전제 조건입니다.
net.core.default_qdisc=fq

# TCP 혼잡 제어 알고리즘을 bbr로 설정합니다.
net.ipv4.tcp_congestion_control=bbr

 

작성 후 아래 명령어를 통해 적용합니다.

 

sysctl -p /etc/sysctl.d/99-pve-tuning.conf

 

image.png

 

더 좋은 튜닝방법이 있다면 공유해주세요~