대역폭 측정 Cacti 그래프에서 변동이 심한 이유는 무엇입니까?


14

우리는 네트워크에서 Etherchannel과 Routing의 중복 테스트를하고있었습니다. 이 중재 동안 우리는 약간의 측정을했습니다. 우리의 모니터링 툴은 Cacti for graph입니다. 모니터링되는 장비는 VSS의 4500-X입니다. 각 링크는 다른 물리적 섀시에 있습니다.

스키마 :

이더넷 채널 1

연대기 테스트 :
시간표 [t0] te1 / 1 / 14 포트의 링크가 물리적으로 제거되었습니다. Te2 / 1 / 14가 활성화되었습니다. Po1이 작동 중입니다.
[t0 + 15] Te1 / 1 / 14 포트의 링크가 서비스 상태로 돌아 왔고 이더넷 채널 Po1의 포트
[t0 + 20] te1 / 1 / 14 포트의 링크가 실제로 제거되었는지 확인했습니다. Te2 / 1 / 14가 활성화되었습니다. Po1이 작동 중입니다.
[t0 + 35] Te1 / 1 / 14 포트의 링크가 서비스로 돌아 왔고 이더넷 채널 Po1에서 포트가 다시 연결되었는지 확인했습니다.

테스트에서 Cacti를 통해 트래픽 이더넷 채널 Po1을 모니터링하고 (아래 그래프) te1 / 1 / 14 링크 (링크 te2 / 1 / 14 자산)를 비활성화 할 때 흐름 값이 크게 변경되었음을 확인했습니다. . 우리는 int Po1의 카운터도 확인했으며 이것들은 상당히 안정적으로 유지되었습니다.

그래프

LACP가 구성된 이더넷 채널에 10G의 두 가지 인터페이스가 번들로 제공됩니다. 이더넷 채널 내부에는 2 개의 VLAN이 있습니다. 하나는 멀티 캐스트 트래픽 용이고 다른 하나는 인터넷 / 모든 트래픽 용입니다.

이 동작의 가능한 원인을 알고 있습니까?


각 시험은 얼마나 걸립니까?
laf

연대기에서 볼 수 있듯이 각 포트 분리에는 15 분이 걸립니다.
cgasp

양쪽 포트 포트 구성 및로드 밸런스 유형은 무엇입니까? 트래픽을 생성 한 테스트 스위트 및 매개 변수 (하나의 흐름, 다중 흐름, 프로토콜 등)에 대해 무엇을 알려줄 수 있습니까?
generalnetworkerror

LACP가 구성된 이더넷 채널에는 10G의 두 인터페이스가 번들로 제공됩니다. 이더넷 채널 내부에는 2 개의 VLAN이 있습니다. 하나는 멀티 캐스트 트래픽 용이고 다른 하나는 인터넷 / 모든 트래픽 용입니다. 질문이 업데이트되었습니다.
cgasp 2016 년

이 테스트는 라우팅 프로토콜과 이더넷 채널에 대한 일반적인 중복 테스트를 거쳤습니다. 링크가 다운되면 어떻게됩니까? 모든 테스트는 예상대로 실행되지만 bandwitdh 측정시 이러한 동작이 왜 발생하는지 궁금합니다.
cgasp

답변:


11

ytti의 의견을 연장합니다.

내가 올바르게 읽으면 10 초마다 설문 조사 간격이 정말 작아 보입니다. 그 결과를 얻을 수있는 몇 가지 이유가 있습니다.

장비 측 :

  • 잘못된 카운터 선택, 32 비트 카운터를 사용하는 경우 회선 속도로 10g 인터페이스를 실행하는 경우 ~ 3.4 초마다 롤링 될 수 있습니다.
  • 카운터 업데이트, 많은 대형 장치는 1 분에 2 ~ 3 번만 카운터를 업데이트하므로 동기화 할 수 없습니다. 매 30 초마다 폴링을 방해 할 정도로 낮으며, 심지어 경고를 유발하거나 조치를 취하기 전에 항상 최소 2 포인트를 원합니다.
  • CPU 처리를 위해 전송 된 패킷 (netflow)이 RE로 일괄 처리되지 않는 패킷과 비교하여 곧바로 계산 될 수 있으므로 문제가있을 수 있습니다 (Juniper MX에서 확인).

폴러 쪽 :

  • 폴러가 간격에서 정확하게 폴링하고 그렇지 않은 경우 실제 폴링 시간 (예 : yz 초 단위의 x 비트)으로 결과를 주입하지 않으므로 적절한 비율을 계산할 수 있습니다.
  • 카운터가 재설정되거나 SNMP GET이 응답하지 않고 다른 도구가 다른 방식으로 이에 응답하면 어떻게됩니까?

1
N마다 매우 정확하게 폴링하더라도 상자는 정확한 간격으로 HW 카운터를 폴링하지 않을 수 있습니다. t1, t2는 트래픽 증가가없고 t2, t3은 회선 속도를 초과하는 것처럼 보입니다. 이제 얻을 수있는 가장 정확한 결과는 math.stackexchange의 영역에있을 수 있지만 2 * the_slowest_update_interval이 가장 좋습니다. 상자가 10 초마다 업데이트되면 20 초마다 측정 데이터를 가질 수 있습니다. 그러나 아마도 약간의 통계 마법으로 10 초에 가깝게 만들 수 있습니다 (문제는 업데이트 간격이 정확하게 시간이 맞지 않는다는 것입니다)
ytti

1
또한 Cacti와 함께 사용중인 폴러는 10 초 폴링 간격으로 중요합니다. 낮은 폴링 간격에서 기본 폴러에 대해 나쁜 경험을했습니다. Spine 또는 기본 폴러를 사용중인 경우 언급이 없습니다.
Brett Lykins 2016 년

6

라우터 샘플링과 자체 폴링이 같은 순간에 닿지 않는 것이 문제입니다. 즉, 폴링 간격이 정적 인 경우에도 폴링 간격에는 다른 양의 샘플이 포함되므로 수학에서는 고려하지 않습니다.
t1, t2, t3을 폴링했지만 라우터가 t1, t2 간격으로 아무것도 샘플링하지 않았으므로 t1, t3 사이의 모든 트래픽은 t2, t3 폴링 값으로 끝났습니다. t1, t2에서 요율을 t로, t2, t3에서 요율 초과

이제 하나의 솔루션을 제안하려고하지만 수학에 대한 이해가 부족한 사람에게이를 확인하십시오.

관심있는 인터페이스를 먼저 찾으십시오 (ge-1 / 1 / 1 인 경우).

snmpbulkwalk 스위치 스위치 ifDescr | grep ge-1 / 1 / 1

그러면 ifIndex 번호가 표시됩니다. '42'라고 가정하겠습니다.

그런 다음 다음과 같이하십시오.

while true; do
  snmpbulkwalk SWITCH ifHCInOctets.42 >> DATA
  date >> DATA
  sleep 1
done

이제 결과를 분석하여 카운터가 실제로 얼마나 자주 업데이트되는지 확인하십시오. (필요한 경우 분석을위한 스크립트를 생성 할 수 있습니다)

그런 다음 수학이 필요한 부분이 있지만 하나의 순진한 해결책을 제안합니다.

업데이트 간격이 10 초인 경우 5 초마다 (즉, 업데이트 된 빈도의 두 배) 상자를 폴링하십시오. 그런 다음 샘플은

t0, t5, t10, t15, t20, t25, t30

이제 이것은 사용하지 않을 원시 데이터이지만 실제 샘플을 다음과 같이 복구합니다.

s1 = (t0+t5+t10)/3
s2 = (t10+t15+t20)/3
s3 = (t20+t25+t30)/3

여기서 중요한 것은 스위치에서 부정확 한 폴링 간격의 영향을 줄이기 위해 경계를 넘고 싶다는 것입니다.

그런 다음 s1, s2, s3을 플로팅하면 현재보고있는 것보다 훨씬 매끄럽고 정확한 결과가 나타납니다.

그러나 나는 이것이 새로운 문제가 아니라고 확신하며 최적의 정확도를 회복하는 방법에 대한 공식적인 해결책이 있다고 확신합니다. math.stackexchange 사람들은 더 잘 대처할 수있는 장비를 갖출 것입니다.


3

카운터가 업데이트되는 것과 동일한 속도로 폴링하기 때문에 동기화되지 않았을 수 있습니다.

구성하여

snmp-server hc poll <<hundredths of a second>>

SNMP 카운터가 1 초 정도 업데이트되는 간격을 줄일 수 있습니다. 10 초마다 폴링 할 때 처리량에 대한보다 정확한 값이 산출됩니다.

참고로, 이것은 숨겨진 명령입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.