BBR
BBR은 구글이 공개한 TCP 네트워크 혼잡 최적화 알고리즘으로, 특정 패킷 손실률을 가진 네트워크 링크에서 대역폭을 최대한 활용하는 두 가지 문제를 해결하는 데 전념하고 있습니다. 네트워크 링크의 버퍼 점유율을 줄여 지연을 줄입니다. TCP 혼잡 제어의 목표는 네트워크 내 병목 링크의 대역폭을 최대화하는 것입니다.
TCP BBR은 구글이 설계하고 배포한 TCP 혼잡 제어 알고리즘 집합입니다. 새로운 커널 지원 지연이 느리고, Linux 4.9 커널부터 TCP BBR을 기본 지원하게 되면서, 점차 서버 일방적 가속의 첫 번째 선택지가 되었습니다. BBRplus는 CSDN netizen dog250이 수정한 원래 BBR의 향상된 버전입니다. 반면 BBRv2는 원래 BBR의 후속 버전이며 아직 베타 단계입니다.
하지만 다양한 BBR 파생상품이 존재하는 상황에서, 인터넷에서 이들에 대한 수평 비교 리뷰를 보는 것은 드뭅니다. 기존 평가 중 일부는 경험과 주관적 인상, 또는 통제 불가능한 변수를 이용한 현장 외부 테스트에 기반하는 경우가 많습니다. 그래서 Reizhi는 BBR BBRplus와 BBR2를 국지적으로 수평 테스트해 보며 시간을 내기로 했습니다.
테스트 환경
VMware 워크스테이션을 사용해 두 개의 Debian 가상 머신을 열고, 그 중 머신 A가 서버입니다. Nginx를 통해 웹 서비스를 설정하고 다운로드 속도 테스트용으로 100MB 파일을 넣습니다; 머신 B는 클라이언트 머신이고, wget을 사용해 다운로드합니다. 두 가상 머신은 가상 내부 네트워크를 통해 연결되어 있으며 모두 SSD SSD에 있습니다.
시험 방법론
기계 A의 네트워크 카드는 tc 명령어를 통해 150ms ± 15ms(무작위 변동)의 지연으로 설정되며, 8%의 패킷 손실을 일반 네트워크 환경을 시뮬레이션하는 데 사용됩니다. 다른 BBR 분기 가속을 설치한 후, wget을 통해 100MB 테스트 파일을 여러 번(≥ 5회) 다운로드하여 가장 빠른 3번의 평균 속도를 얻으세요.
검사 결과
테스트 결과를 직접 살펴보자. 아직 베타 단계인 BBRv2가 이 테스트에서 가장 느리며, 4.19 커널의 기본 입방 알고리즘과 거의 같은 속도를 보인다. 놀랍게도 BBRplus는 원래 BBR보다 훨씬 빠르긴 하지만, 5.5코어로 BBR에 비해 많이 뒤처져 있습니다.
테스트에서 매우 놀라웠던 점은 다운로드 시작 직후 BBRplus 브랜치가 매우 빠르게 상승했다는 것입니다. 그런데 다운로드가 약 50% ~ 60%로 진행되면 속도가 갑자기 떨어집니다. 다음 그래프는 BBRplus 4.14.129의 속도 변화를 완전히 기록합니다.
BBRplus 4.14.129
처음에 Reizhi는 테스트 오류나 다른 이유라고 생각했지만, 재부팅, 시스템 재설치, 커널 재설치, 커널 수동 컴파일, BBRplus를 켜는 등 여러 방법을 거쳐도 개선되지 않았습니다. 동일한 테스트 환경에서 BBR 5.5의 속도 성능은 훨씬 더 안정적입니다.
BBR 5.5.10
BBR 5.5.10은 시작 가속과 최고 속도 면에서 BBRplus만큼 빠르지는 않지만, 다운로드 과정 전반에 걸쳐 매우 좋은 속도를 유지하며 전체 시간 소비도 BBRplus보다 훨씬 적습니다. 그렇다면 BBRplus는 소량 트래픽의 폭발적인 트래픽에 더 적합하고, BBR은 대량과 지속적인 처리량에 뛰어나다는 뜻인가요?
주석
이번 테스트에서는 Sharp Speed와 Net-speeder도 시도했지만, BBR2와 마찬가지로 전체 속도가 두 자릿수에 불과해 결과는 포함하지 않았습니다.
BBR2 5.4.0-rc6
위 속도는 느린 속도로 인해 완전히 다운로드되지 않은 BBR2의 속도입니다.
원본 링크:하이퍼링크 로그인이 보입니다.
|