본문 바로가기

07. HardWare/14. Tuning

랜카드 튜닝 (자료는 잘 모름)

[+] 랜카드 설정
<> 제어판 > 시스템 > 하드웨어 > 장치관리자 > 네트워크 어댑터 항목 :
  "Network Controller"의 속성 > 고급 탭에서 설정합니다.
- 체크섬 오프로드(Checksum Offload) : 활성화
IPv4, IPv6, TCP, UDP 관련 체크섬 오프로드를 활성화합니다.
오프로드 기능은 체크섬을 CPU에서 계산하지 않고
네트웍 카드에서 수행하도록 함으로써, CPU의 부담을 줄이고
네트웍 전송 속도를 향상시키는 기술입니다.
오프로드 엔진의 성능에 따라 패킷 처리율이 달라집니다.
구형 랜카드의 경우 오프로드 엔진의 성능이 떨어질 수 있습니다.
- 세그멘테이션 오프로드(Segmentation Offload) : 활성화
전송할 데이터를 MTU 사이즈로 분할하는 작업을
하드웨어에서 담당하게 하여 CPU의 부담을 줄입니다.
- 전송 버퍼(Tx Descriptor) : 64~2048
- 수신 버퍼(Rx Descriptor) : 64~2048
메모리에서 추적할 수 있는 패킷의 수를 조정합니다.
커널 메모리 사용량도 함께 증가하기 때문에,
32bit OS에서는 기본값 위주로 사용하는 것이 좋습니다.
TCPIP Tuning을 하지 않았을 경우나 장거리 고속 전송이
아닐 경우, 실제로 큰 값이 사용되지는 않습니다.
- 수신측 배율(Receive Side Scaling) : 활성화
- 수신측 배율 대기열(Receive Side Scaling Queue) : 최대값
듀얼 코어 이상의 CPU에서 패킷을 여러 코어가 나누어서 처리할 수 있도록 조절합니다.
고급 랜카드에는 CPU Core 뿐만 아니라, 멀티 CPU에도 패킷을 분산 처리시킬 수 있습니다.
고급 랜카드에서 수신측 배율 대기열의 갯수를 조정할 수 있습니다.
저가형 랜카드에는 대부분 이 기능이 없습니다.
- 인터럽트 완화(Interrupt Moderation) : 활성
- 인터럽트 조절 속도(Interrupt Throttle Rate) : 적응
CPU 외부의 주변기기에서 CPU에 자료 처리를 요구할 때 사용하는 방법이 인터럽트입니다.
내부 자료를 처리하는 것보다 우선 순위가 높기 때문에 CPU에서는 먼저 응답하게 됩니다.
CPU는 고속으로 동작하지만 주변기기의 속도는 상대적으로 초저속이기 때문에, 실제로
자료를 처리하는 시간보다 자료를 인계받으면서 소비하는 시간이 많이 걸리게 됩니다.
CPU에서 처리할 수 있는 인터럽트 양보다 많은 인터럽트가 발생하게 되면, CPU는 처리하던
작업을 멈추고 내부 레지스터를 재정비하는데 많은 시간을 소모하게 되고, 인터럽트 자료를
인계받는 시간 또한 인터럽트 양에 비례하여 커지게 됩니다. 결국, CPU의 연산능력을 다른
곳에 쓸 수 있는 여유가 없어지게 되고, 다른 어플리케이션에서도 실행시간이 모자라
버벅임을 경험하게 되는 것입니다.
그렇기 때문에, 인터럽트 처리 방식과 성능은 시스템의 효율에 지대한 영향은 미치게 됩니다.
인터럽트가 빠르게 걸리도록 하면 그만큼 반응속도는 높아지지만, 그 횟수가 많아지면
시스템에서 오버헤드가 커지게 되므로, 인터럽트가 뜸한 상황에서는 빠르게 걸리도록
설정하고, 인터럽트가 많이 몰리게 되면 일정량 이상 걸리지 않도록 조절하는 것이 필요합니다.
인터럽트 완화는 인터럽트 횟수가 일정량 이상이 되면 더 이상 인터럽트가 많이 발생되지
않도록 제한하는 기능입니다. 인터럽트 적응 속도는, 평상시에는 인터럽트가 빨리 걸리게 하고,
인터럽트가 몰리는 상황에서는 인터럽트 횟수를 줄이도록 자동조정하는 기능입니다.
인터럽트 성능은 시스템의 패킷 처리율을 높이는 굉장히 중요한 요소가 됩니다.
구형 랜카드에는 이 기능이 없을 수 있습니다.
저가형 랜카드에서는 인터럽트 조절 성능이 우수하지 못할 수 있습니다.
기가빗 이더넷에서 인터럽트 완화가 지원되지 않으면 패킷 처리율이 많이 떨어지게 됩니다.
- 흐름 제어(Flow Control) : 비활성화
패킷 충돌이 발생했을 때, 전송을 일시 중지하도록 요청합니다.
- 최적화(Optimize for) : 처리 성능(Throughput)
CPU의 부하를 줄일 것인지, 전송 처리율을 높일 것인지 결정합니다.
CPU 점유율을 낮게 하는 것보다, 처리 성능을 높이는 것을 선택합니다.
[+] 고급 랜카드의 기능
고급 외장형 랜카드는 Offload 엔진이 우수하고, H/W 암호화나 가상화, 멀티코어 지원,
iSCSI Boost 등 다양한 기능을 지원합니다. 저가형 랜카드에는 없는 기능입니다.
칩셋 내부에 처리할 수 있는 Queue나 버퍼 사이즈도 크기 때문에 성능이 우수합니다.
무엇보다도, CPU의 부하를 낮추고 분산시키는 기능이 있어서 기가빗에서 그 빛을 발합니다.
- Receive Side Scaling
랜카드에서 들어오는 패킷을 Multi-Core, Multi-CPU에 분배하여 부하를 분산시킵니다.
- Message Signaled Interrupt-eXtened
인터럽트를 모아서 여러 CPU Core에 보냄으로써 충돌을 방지하고 시스템 부하를 낮춥니다.
- Virtualization
가상화 환경에서도 네트웍 패킷 처리시 CPU의 부하를 줄이도록 합니다.