본딩 옵션중 xmit_hash+policyh 대해서 아시는분 계신가요?

아히로나의 이미지

현재 회사에서 서버 납품 문제로 이것저것 성능 테스트를 하고 있습니다.

전에도 질문글을 올렸지만 테스트 중에 한개의 포트에서만 데이터를 집중적으로 쓰고 나머지 3개포트에서

30~40%정도의 데이터를 나누어서 씁니다. 이 문제가 본딩 모드 설정에서 뒤에 xmit_hash_policy=1 요놈을

안써서 그렇다는데 요놈 역할이 도대체 뭔가요? 구글링 해봐도 온통 영어라 미천한 영어실력으로는 명확하게

해석이 안되네요 xmit_hash_policy를 쓰고 안쓰고로 성능 차이가 날까요?

그리고 nmon을 파일로 만들어서 보면 메모리 사용량이 얼마나 되는지 어느시트 어느 부분을 봐야 알 수 있을까요??

도움좀 부탁드리겠습니다.

좋은하루 되세요~

elflord의 이미지

밑에 글에 모드를 라운드로빈 적용하셨다고 쓰셨는데, 이경우 xmit_hash_policy의 의미가 없습니다. 왜냐하면 xmit_hash_policy옵션은 본딩모드 2(balance-xor)과 4(802.3ad)에만 적용되기 때문입니다.

라운드 로빈은 기계적으로 NIC을 돌려쓰기 때문에 트래픽간 편차가 클 경우 부하 분산이 어렵습니다. 고로 모드2나 4를 추천합니다. 다만 모드2는 송신만 부하분산이 되고 XOR스타일상 부하가 한쪽으로 몰릴 가능성이 있어서 성능으로만 보면 모드4를 선택하시는게 좋은데 이경우 상대편 스위치가 802.3ad설정이 가능하고 또 되어있어야 한다는 전제가 붙습니다.

부하분산은 기본적으로 해쉬값를 가지고 하는데,
xmit_hash_policy옵션치 0 혹은 layer2는 데폴트값으로 MAC어드레스만 가지고 해쉬값을 생성합니다.
xmit_hash_policy옵션치 1 혹은 layer3+4는 IP와 포트값을 가지고 해쉬값을 생성합니다. 주의점은 이 알고리즘의 경우 802.3ad에 대응하지 않습니다.
xmit_hash_policy옵션치 2 혹은 layer2+3은 MAC어드레스와 IP값을 가지고 해쉬값을 생성합니다.

결론적으로 본딩모드 4를 고르시고 xmit_hash_policy는 2를 선택하실경우 일반적으로 가장 고른 부하분산이 가능하실 것으로 저는 판단합니다.

본딩모드5나 6도 있는데 이것들은 아직 기기나 OS에 따라서 지원사항이 들쭉날쭉하기 때문에 제 설명에서는 제외했습니다.


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

아히로나의 이미지

성실한 댓글에 정말 많이 배웠습니다.

감사합니다.

제가 추가내용을 안적었는데 고객사에서 주로 xor쓰기때문에 모드를 2번으로 바꿨습니다. 저는 설명해주신 내용을 모르고 그냥 모드 2로

바꾸고 xmit_hash_policy값을 주지 않아서 그런 경우가 생긴것 같습니다.

블로그를 방문하니 필드 경험이 정말 많으신것 같은데 도움좀 요청 할 수 있을런지요(감탄했습니다.;;)

현재 저희가 BMT를 하는데 생각보다 성능이 안나와서 이리저리 쪼임을 당하고 있습니다.(입사한지 얼마나 됐다고 ㅠ)

현재 4G본딩에 300g15k19개를 raid5로 묶고 cpu E5_2609*2 메모리 8G를 쓰고 있습니다.

이정도 스펙에 목표 속도가 2000mbps정도 입니다. 현재는 1600mpbs정도 나옵니다.

이 테스트 전에 8G본딩 300G15k23개 raid5 cpu E5_2690*2 메모리 32G를 썼을떄 2.4G정도가 나왔습니다.

저희 판단에 다른 스펙보다 디스크 I/O로 속도가 결정 된다고 생각했습니다. 그래서 위에 스펙정도되면 2.0G나오면 충분하겠다고 판단했고요

그런데 생각보다 스펙이 안나와서 무슨 문제인지 머리 싸매고 있습니다.

지금 테스트는 RTSP로 진행중이고요 지푸라기라도 잡는 심정이기에 작은 힌트나 도움이라도 주시면 정말 감사합니다.

그리고 윗 댓글 정말 많이 도움 됐습니다. 감사합니다

그리고 블로그도 마침 제 수준에 필요한 정보가 많아서 즐겨찾기 해놓고 자주 들리겠습니다. ^^;;