KR20140019730A - 버퍼 통계 트래킹 - Google Patents

버퍼 통계 트래킹 Download PDF

Info

Publication number
KR20140019730A
KR20140019730A KR1020130075356A KR20130075356A KR20140019730A KR 20140019730 A KR20140019730 A KR 20140019730A KR 1020130075356 A KR1020130075356 A KR 1020130075356A KR 20130075356 A KR20130075356 A KR 20130075356A KR 20140019730 A KR20140019730 A KR 20140019730A
Authority
KR
South Korea
Prior art keywords
count
usage
event
threshold
buffer
Prior art date
Application number
KR1020130075356A
Other languages
English (en)
Other versions
KR101451149B1 (ko
Inventor
브루스 콴
푸니트 아가왈
모한 칼쿤테
마틴 런드
브래드 매튜
Original Assignee
브로드콤 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/628,394 external-priority patent/US20140086258A1/en
Application filed by 브로드콤 코포레이션 filed Critical 브로드콤 코포레이션
Publication of KR20140019730A publication Critical patent/KR20140019730A/ko
Application granted granted Critical
Publication of KR101451149B1 publication Critical patent/KR101451149B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0681Configuration of triggering conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

여기서 제시된 시스템들 및 방법들은 (패킷-스위칭 네트워크의) 스위치가 버퍼 통계를 트래킹하고, 임박한 문제를 나타내는 버퍼 통계가 임계치에 도달한 것에 대응하여 하드웨어 중단 또는 시스템 스냅샷과 같은 이벤트를 트리거한다. 스위치 그 자체가 네트워크 관리자에게 경보를 발하기 위해 이벤트를 트리거하므로, 네트워크 관리자는 잠재적인 문제들을 식별하기 위해 더 이상 데이터의 산더미 사이를 면밀히 조사할 필요가 없다. 또한, 스위치는 문제가 발생하기 전에 이벤트를 트리거하므로, 네트워크 관리자는 문제가 발생하기 전에 치료 동작을 제공할 수 있다. 이 타입의 이벤트-트리거링 메커니즘은 패킷-스위칭 네트워크들의 관리자를 더 관리하기 쉽게 만든다.

Description

버퍼 통계 트래킹{BUFFER STATISTICS TRACKING}
본 발명은 일반적으로 패킷-스위칭 네트워크들, 특히, 스위치들의 버퍼 통계를 트래킹하는 시스템들 및 방법들에 관한 것이다.
일반적으로, 패킷-스위칭 네트워크들에서, 스위치들은 네트워크 관리자들에 의해 폴링(polling)될 수 있는 버퍼 통계를 유지한다. 따라서, 네트워크 관리자는 네트워크 관리자의 관심을 요구할 수 있는 임의의 잠재적인 이슈들을 식별하기 위해 스위치들로부터 버퍼 통계를 주기적으로 폴링할 것이다. 그 대신에, 네트워크 관리자는 특정 스위치에 관해 발생한 문제에 대응하여 버퍼 통계를 폴링할 것이다. 불행히도, 수백 개의(또는 심지어 수천 개의) 스위치들을 갖는 큰 네트워크들에 대해서, 폴링된 데이터의 양은 흔들릴(staggering) 수 있고, 완전한 양의 데이터를 검토하는 것은 엄청나게 힘든 일일 수 있다.
본 발명의 목적은 스위치들의 버퍼 통계를 효율적으로 트래킹하는 시스템들 및 방법을 제공하는 것이다.
일 측면에 따르면, 버퍼를 갖는 스위치에서, 방법은:
(a) 통계의 타입을 결정하는 단계로서, 상기 통계의 타입은:
(a1) 현재 사용-카운트; 및
(a2) 최대 사용-카운트로 구성된 그룹으로부터 선택된 적어도 하나인, 상기 결정하는 단계;
(b) 상기 결정된 통계의 타입에 대한 사용-카운트를 트래킹하는 단계로서, 상기 사용-카운트는:
(b1) 이그레스 사용-카운트;
(b2) 인그레스 사용-카운트; 및
(b3) 기기 사용-카운트로 구성된 그룹으로부터 선택된 적어도 하나인, 트래킹하는 단계;
(c) 상기 사용-카운트에 대응하는 임계치와 비교하는 단계; 및
(d) 상기 사용-카운트가 상기 대응하는 임계치를 초과하면 이벤트를 트리거하는 단계를 포함한다.
바람직하게, 상기 방법은:
(e) 리셋 명령을 수신하는 단계; 및
(f) 상기 리셋 명령에 대응하여 상기 사용-카운트를 리셋하는 단계를 더 포함한다.
일 측면에 따르면, 시스템은:
버퍼와 관련된 사용-카운트(use-count)를 저장하는 사용-카운트 레지스터;
상기 사용-카운트에 대응하는 임계치를 저장하는 임계치 레지스터; 및
상기 사용-카운트를 상기 임계치와 비교하는 메모리 관리 유닛(MMU, memory management unit)을 포함하고, 상기 MMU는 상기 사용-카운트가 상기 임계치를 초과할 때 이벤트를 트리거(trigger)한다.
바람직하게, 상기 사용-카운트 레지스터는 이그레스(egress) 사용-카운트를 더 저장한다.
바람직하게, 상기 이그레스 사용-카운트는:
이그레스 유니캐스트(UC, egress unicast) 큐(queue) 사용-카운트;
이그레스 큐-그룹 공유된 사용-카운트;
이그레스 포트 사용-카운트;
이그레스 멀티캐스트(MC, egress multicast) 버퍼-풀(BP, buffer-pool) 사용-카운트;
이그레스 UC 플러스 MC(UC+MC) BP 사용-카운트들; 및
이그레스 중앙 처리 장치(CPU, central processing unit) 큐 사용-카운트를 포함하는 그룹으로부터 선택된 적어도 하나이다.
바람직하게, 상기 사용-카운트 레지스터는 인그레스 사용-카운트를 더 저장한다.
바람직하게, 상기 인그레스 사용-카운트는:
인그레스 포트 및 우선순위 그룹(PG, priority group) 유니캐스트 플러스 멀티캐스트(UC+MC) 공유된 사용-카운트;
인그레스 포트 PG 헤드룸(headroom) 사용-카운트;
인그레스 포트 버퍼 풀(BP) UC+MC 공유된 사용-카운트; 및
인그레스 BP UC+MC 공유된 사용-카운트를 포함하는 그룹으로부터 선택된 적어도 하나이다.
바람직하게, 상기 사용-카운트 레지스터는 기기 사용-카운트를 더 저장한다.
바람직하게, 상기 이벤트는 하드웨어 중앙 처리 장치(CPU) 중단(interrupt)이다.
바람직하게, 상기 이벤트는 상기 사용-카운트를 업데이트하는 것을 정지시키는 명령이다.
바람직하게, 상기 이벤트는 전용 비트(dedicated bit)가 상기 사용-카운트가 상기 임계치를 초과했다는 것을 표시하도록 설정되는 것이다.
일 측면에 따르면, 네트워크 스위치에서, 방법은:
버퍼와 관련된 사용-카운트를 트래킹하는 단계;
상기 트래킹된 사용-카운트가 미리 정의된 임계치를 초과하는지 여부를 결정하는 단계; 및
상기 사용-카운트가 상기 미리 정의된 임계치를 초과하면 이벤트를 트리거(trigger)하는 단계를 포함한다.
바람직하게, 상기 이벤트를 트리거하는 단계는:
중앙 처리 장치(CPU, central processing unit) 중단(interrupt)을 발행하는(issue) 단계를 포함한다.
바람직하게, 상기 이벤트를 트리거하는 단계는:
상기 사용-카운트의 업데이트를 정지하는 단계를 포함한다.
바람직하게, 상기 이벤트를 트리거하는 단계는:
전용 비트가 상기 사용-카운트가 상기 미리 정의된 임계치를 초과한다는 것을 표시하도록 설정하는 단계를 포함한다.
바람직하게, 상기 사용-카운트를 트래킹하는 단계는:
이그레스 사용-카운트를 트래킹하는 단계를 포함한다.
바람직하게, 상기 이그레스 사용-카운트를 트래킹하는 단계는:
이그레스 유니캐스트(UC, egress unicast) 큐(queue) 사용-카운트를 트래킹하는 단계;
이그레스 큐-그룹 공유된 사용-카운트를 트래킹하는 단계;
이그레스 포트 사용-카운트를 트래킹하는 단계;
이그레스 멀티캐스트(MC, egress multicast) 버퍼-풀(BP, buffer-pool) 사용-카운트를 트래킹하는 단계;
이그레스 UC 플러스 MC(UC+MC) BP 사용-카운트들을 트래킹하는 단계; 및
이그레스 중앙 처리 장치(CPU, central processing unit) 큐 사용-카운트를 트래킹하는 단계를 포함하는 그룹으로부터 선택된 적어도 하나의 단계를 포함한다.
바람직하게, 상기 사용-카운트를 트래킹하는 단계는:
인그레스 사용-카운트를 트래킹하는 단계를 포함한다.
바람직하게, 상기 인그레스 사용-카운트를 트래킹하는 단계는:
인그레스 포트 및 우선순위 그룹(PG, priority group) 유니캐스트 플러스 멀티캐스트(UC+MC) 공유된 사용-카운트를 트래킹하는 단계;
인그레스 포트 PG 헤드룸(headroom) 사용-카운트를 트래킹하는 단계;
인그레스 포트 버퍼 풀(BP) UC+MC 공유된 사용-카운트를 트래킹하는 단계; 및
인그레스 BP UC+MC 공유된 사용-카운트를 트래킹하는 단계를 포함하는 그룹으로부터 선택된 적어도 하나의 단계를 포함한다.
본 발명에 따르면, 스위치들의 버퍼 통계를 효율적으로 트래킹하는 시스템들 및 방법이 제공된다.
본 제시의 많은 측면들은 다음 도면들을 참조하여 더 잘 이해될 수 있다. 도면들의 구성요소들은 본 제시의 원리를 명확히 설명하는데 대신에 놓은 범위, 주안점에 대해 필수적이지는 않다. 더욱이, 도면들에서, 유사한 참조 번호는 일련의 도면들에 걸쳐서 대응하는 부분들을 지시한다.
도 1은 스위치가 버퍼 통계에 기반하여 이벤트를 트리거하는 방법의 일 실시예를 보여주는 흐름도이다.
도 2는 트래킹에 대한 버퍼 통계를 선택하는 방법의 일 실시예를 보여주는 흐름도이다.
도 3은 스위치에서 사용-카운트를 트래킹하는 방법의 일 실시예를 보여주는 흐름도이다.
도 4는 스위치에서 이벤트를 트리거하는 방법의 일 실시예를 보여주는 흐름도이다.
도 5는 스위치의 이그레스 통계를 트래킹하는 방법의 일 실시예를 보여주는 흐름도이다.
도 6은 스위치의 인그레스 통계를 트래킹하는 방법의 일 실시예를 보여주는 흐름도이다.
일반적으로, 패킷-스위칭 네트워크들에서, 스위치들은 네트워크 관리자들에 의해 폴링(polling)될 수 있는 버퍼 통계를 유지한다. 따라서, 스위치가 이슈(issue)(예를 들어, 큐(queue) 길이가 너무 길어짐)를 만나면, 네트워크 관리자는 이슈들을 격리하고 치료 동작을 제공하기 위해 문제가 있는 스위치로부터의 버퍼 통계를 폴링할 수 있다. 불행히도, 버퍼 통계가 폴링되는 시간에 의해, 문제는 이미 발생했고(예를 들어, 네트워크 정체), 그 시점에서 네트워크 관리자의 역할은 단순히 문제를 고치는 것이다(네트워크 트래픽을 다른 스위치들로 재-라우팅함).
대신에, 네트워크 관리자는 문제들을 방지해보려는 노력으로 버퍼 통계를 주기적으로 폴링할 수 있다. 요컨대, 버퍼 통계를 검토함에 의해, 네트워크 관리자는 문제를 막기 위해 사용 가능한 자원들을 재할당할 수 있다. 불행히도, 수백 개의(심지어 수천 개의) 스위치들을 갖는 큰 네트워크들에 대해, 폴링된 데이터의 양은 흔들릴(staggering) 수 있고, 완전한 양의 데이터를 검토하는 것은 엄청나게 힘든 일일 수 있다. 이것은 버퍼 통계에 대해 모든 스위치들을 폴링하는 것은 고장 직전인 몇몇 스위치들뿐만 아니라 정상적으로 동작하는 많은 스위치들에 대한 정보의 수집을 야기하기 때문이다. 따라서, 잠재적인 문제를 식별하기 위해 데이터의 늪 사이를 면밀히 검토하는 것은 많은 시간이 걸리는 일이다.
여기서 제시된 시스템들 및 방법들은 스위치가 임박한 문제를 표시할 수 있는 버퍼가 임계치에 도달한 것에 대응하여 버퍼 통계를 트래킹하고, 하드웨어 중단(interrupt) 또는 시스템 스냅샷(snapshot)과 같은 이벤트를 트리거하도록 한다. 스위치 자신이 네트워크 관리자에게 알리기 위해 이벤트를 트리거하므로, 네트워크 관리자는 더 이상 잠재적인 문제들을 식별하기 위해 데이터의 산더미 사이를 면밀히 검토할 필요가 없다. 또한, 스위치는 문제가 일어나기 전에 이벤트를 트리거하므로, 네트워크 관리자는 문제가 발생하기 전에 치료 동작을 제공할 수 있다. 이 타입의 이벤트-트리거링 메커니즘은 패킷-스위칭 네트워크들의 관리를 더 처리하기 쉽게 한다.
이벤트-트리거링 메커니즘을 구현하기 위해, 스위칭 시스템은 스위치 버퍼와 관련된 사용-카운트를 저장하는 사용-카운트 레지스터를 포함한다. 이 사용-카운트는 이그레스 통계, 인그레스 통계, 또는 기기 통계를 가리킬 수 있고, 큐 당(per-queue) 기반, 포트 당(per-port) 기반, 또는 풀 당(per-pool) 기반으로 모니터될 수 있다. 시스템은 또한 각각의 사용-카운트와 관련된 적절한 임계치 값들을 저장하는 임계치 레지스터를 포함한다. 시스템의 메모리 관리 유닛(MMU, memory management unit)은 사용-카운트가 임계치를 초과하는지 여부를 결정하기 위해 사용-카운트를 임계치와 비교한다. 그리고, 사용-카운트가 임계치를 초과하면, MMU는 이벤트를 트리거한다. 이벤트는 하드웨어 중앙 처리 장치(CPU, central processing unit) 중단일 수 있고, 그것은 네트워크 관리자에게 스위치 버퍼가 어떤 임계치를 초과했음을 알린다. 또한 이벤트는 임계치가 초과되었을 때 스위치의 스냅샷일 수 있다. 이와 같이, 이벤트는 사용-카운트들을 업데이트하는 것을 정지시키는 명령의 발행일 수 있다. 대안으로, 이벤트는 단순히 레지스터의 전용 비트를 설정하는 것일 수 있고, 이것은, 폴링될 때, 비트가 설정된 특정 스위치에 네트워크 관리자의 주의를 끌게 한다.
현실의 버퍼에서의 메커니즘을 알리는 것을 구현하는 것에 추가하여, 유사한 메커니즘은 가상 큐들에서 구현될 수 있다. 따라서, 실제 큐(또는 현실의 물리적 포트)를 모니터링하는 것보다, 가상 큐는, 예를 들어, 토큰 버킷 미터(token bucket meter)를 이용하여 구현될 수 있다. 토큰 버킷 미터는 관련 기술 분야에서 알려져 있으므로, 여기서는 간략한 논의만 제공된다. 가상 큐는 실제 큐의 행동을 그림자처럼 따라 다님에 의해 실제 큐를 모방한다. 그러나, 가상 큐가 실제 큐보다 더 느린 레이트(rate)로 비우도록(drain) 구성될 수 있으므로, 가상 큐의 사용-카운트는 실제 큐의 사용-카운트들보다 더 빠르게 누적될 수 있다. 이것은 잠재적 문제들의 더 빠른 감지를 야기하고, 또한 큐 증가로부터의 임의의 레이턴시(latency) 영향을 줄이거나 제거한다.
간단한 개요를 제공하면서, 도면들에 도시된 실시예들의 설명에 대해 참조가 지금 자세히 만들어진다. 몇몇 실시예들이 이 도면들과 관련되어 설명되지만, 본 발명을 여기 제시된 실시예 또는 실시예들에 한정하려는 것은 아니다. 반대로, 모든 대안들, 변형들, 및 등가물들을 포함하려는 것이다.
도 1은 버퍼 통계에 기반하여 스위치가 이벤트를 트리거하는 방법의 일 실시예를 보여주는 흐름도이다. 도 1에 도시된 바와 같이, 프로세스는 모니터될 통계의 타입(예를 들어, 현재 사용-카운트, 최대 사용-카운트 등)의 결정(110)으로 시작한다. 통계의 타입의 결정(110)을 위한 프로세스의 일 실시예가 도 2를 참조하여 보여진다.
통계의 타입이 결정되면(110), 스위치(여기서는 스위치 그 자체로 단순히 지칭됨)에 대한 버퍼 통계 모니터링 메커니즘은 그 통계에 대한 사용-카운트를 트래킹한다(120). 트래킹 메커니즘은 사용-카운트를 연속적으로 증가시키는 증가의 카우트-레지스터 만큼 단순할 수 있다. 사용-카운트를 트래킹하는(120) 방법의 일 실시예는 도 3을 참조하여 보여진다.
스위치는 그리고는 트래킹된 사용-카운트를 임계치 레지스터에 저장될 수 있는 임계치와 비교한다(130). 사용-카운트가 임계치를 초과하지 않으면, 시스템은 사용-카운트를 계속해서 트래킹한다(120). 그 대신에, 사용-카운트가 임계치를 초과하면, 시스템은 이벤트(예를 들어, 하드웨어 중단, 시스템 스냅샷 등)를 트리거한다(140). 이벤트를 트리거하는(140) 프로세스의 일 실시예는 도 4를 참조하여 보여진다.
이때에, 받아들일 수 있는 성능을 획득하기 위해, 네트워크 관리자 또는 운영자는 종종 트래픽-의존적인 MMU 버퍼 입장 설정들을 조정할 필요가 있을 수 있다는 것에 주목할 가치가 있다. 다시 말해서, 이벤트-트리거드 메커니즘의 성능은 적절한 임계치 값을 설정하는 것에 의존한다. 예를 들어, 임계치 값이 너무 높게 설정되면, 사용-카운트는 이벤트를 트리거하지 않고 손쉽게 위급한(alarming) 값을 초과할 수 있다. 대신에, 임계치가 너무 낮게 설정되면, 받아들일 수 있는 (및 정상의) 사용-카운트들조차도 불필요하게 이벤트를 트리거할 수 있다.
이벤트가 트리거되면(140), 시스템은 네트워크 관리자가 사용-카운트들을 리셋하기를 기다리고(150), 리셋(reset) 명령이 발행되면 사용-카운트들을 리셋한다(160). 사용-카운트들을 리셋한(160) 직후에, 시스템은 사용-카운트들을 트래킹하는 단계(120)로 돌아간다.
위에서 언급된 바와 같이, 도 2는 트래킹을 위한 버퍼 통계를 선택하는 방법의 일 실시예를 보여주는 흐름도이다. 도 2에 도시된 바와 같이, 시스템은 네트워크 관리자가 현재 사용-카운트를 모니터하기를 원하는지 여부를 결정한다(210). 그렇다면, 시스템은 현재 사용-카운트를 트래킹한다(220). 대신에, 네트워크 관리자가 최대 사용-카운트에 기반하여 이벤트들을 트리거하고 경보를 발하기를 원하면, 시스템은 최대 사용-카운트를 트래킹한다(230). 사용-카운트들의 트래킹은 도 3을 참조하여 더 자세히 도시된다.
도 3에 도시된 바와 같이, 스위치는 이그레스 사용-카운트들(310), 인그레스 사용-카운트들(340), 기기 사용-카운트들(370), 또는 이 사용-카운트들 모두의 조합을 트래킹한다. 이것을 하기 위해, 스위치는 그것이 이그레스 사용-카운트들을 트래킹해야 하는지를 결정하고(320), 그렇다면 이그레스 사용-카운트를 트래킹한다(330). 이그레스 사용-카운트들을 트래킹하는(330) 방법의 일 실시예는 도 5를 참조하여 도시된다. 스위치는 그것이 인그레스 사용-카운트들을 트래킹해야 하는지를 결정하고(350), 그렇다면 홀로 또는 이그레스 사용-카운트들의 트래킹(310)과 결합하여 인그레스 사용-카운트를 트래킹한다(360). 인그레스 사용-카운트들을 트래킹하는(360) 방법의 일 실시예는 도 6을 참조하여 도시된다. 스위치는 그것이 기기 사용-카운트들을 트래킹해야 하는지를 결정하고(380), 그렇다면 홀로 또는 이그레스 및 인그레스 사용-카운트들의 트래킹(310, 330)과 결합하여 기기 사용-카운트를 트래킹한다(390). 알 수 있는 바와 같이, 트래킹할 사용-카운트 파라미터들은 융통성이 있다.
도 4는 스위치에서 이벤트를 트리거하는 방법의 일 실시예를 보여주는 흐름도이다. 대략, 이벤트는 프로세서 중단(410), 시스템 스냅샷(440), 또는 단순히 레지스터의 전용 비트의 트리거링(470)일 수 있다. 몇몇 실시예들에 대해, 이벤트는 선택적인 시스템 스냅샷을 지닌 중단 트리거, 또는 선택적인 시스템 스냅샷을 지닌 전용 비트("스티키(sticky) 비트")를 설정하는 것일 수 있다. 일 실시예에서, 스위치는 중앙 처리 장치(CPU) 중단이 발행되어야 하는지 여부를 결정하고(420), 그렇다면, CPU 중단을 발행한다(430). 중단은 네트워크 관리자에게 특정 사용-카운트가 임계치를 초과했다는 것을 경보를 발한다. 스위치는 다음에 그것이 스위치 버퍼들 통계의 스냅샷을 찍어야 하는지 여부를 결정하고(450), 그렇다면, 사용-카운트들을 업데이트하는 것을 정지시키는 명령을 발행한다(460). 시스템 스냅샷(440)은 홀로 또는 CPU 중단(410)과 결합하여 수행될 수 있다. 스위치는 또한 이벤트를 트리거링하는 것(480)에 대응하여 레지스터의 전용 비트를 설정하도록(490) 구성될 수 있다. 이 전용 비트는 그것의 대응하는 임계치를 초과하는 사용-카운트를 가리킨다. 따라서, 관리자에게 다루기 힘든 양의 정보를 제공하는 대신에, 각각의 스위치에 대한 하나의 전용 비트는 네트워크 관리자에 의해 쉽게 소화될 수 있는 관리하기 쉬운 양의 정보를 제공한다.
도 5는 스위치의 이그레스 통계를 트래킹하는(310) 방법의 일 실시예를 보여주는 흐름도이다. 위에서 언급된 바와 같이, 다양한 이그레스-관련 통계가 큐 당 트래킹될 수 있다. 구현에서, 이 큐 당(per-queue) 정보는 유니캐스트(UC, unicast) 당(per-unicast) 또는 멀티캐스트(MC, multicast) 당(per-multicast) 기반으로 더 분리될 수 있다. 도 5는 UC 및 MC 큐들이 분리되는 일 실시예를 제공한다. 그러나, 이런 입도(granularity)의 미세한 레벨이 일반적으로는 필요하지 않다는 것은 이해되어야 한다. 도 5에 도시된 바와 같이, 이그레스 유니캐스트(UC) 사용-카운트들을 모니터하기로 한 결정(510)은 스위치가 이그레스 UC 큐 사용-카운트를 트래킹하도록(515) 한다. 유사하게, 이그레스 큐-그룹 공유된 사용-카운트들을 모니터하기로 한 결정(520)은 스위치가 이그레스 큐-그룹 공유된 사용-카운트들을 트래킹하도록(525) 한다. 이그레스 포트 사용-카운트들, 이그레스 멀티-캐스트(MC) 버퍼 풀(BP, buffer pool) 사용-카운트들, 이그레스 UC 플러스 MC(UC+MC) BP 사용-카운트들, 및 이그레스 CPU 사용-카운트들에 대한 유사한 결정들(530, 540, 550, 560)은 스위치가 그 사용-카운트들을 트래킹하도록(535, 545, 555, 565) 한다. 다시 말해서, 네트워크 관리자의 필요 또는 바램에 기반하여 이 사용-카운트들 중 하나 이상이 트래킹된다.
도 5에서 이그레스 통계가 트래킹되는(310) 방법과 유사하게, 인그레스 통계 트래킹(340)은 도 6의 흐름도를 통해 도시된다. 스위치는 다음 사용-카운트들: 인그레스 우선순위 그룹(PG, priority group) UC+MC 사용-카운트들, 인그레스 포트 PG 헤드룸(headroom) 사용-카운트들, 인그레스 포트 BP UC+MC 공유된 사용-카운트들, 및 인그레스 BP UC+MC 공유된 사용-카운트들 중 하나 이상을 모니터링해야 하는지 여부를 결정한다(610, 620, 630, 640). 그 후에, 스위치는 원하는 사용-카운트들을 트래킹한다(615, 625, 635, 645). 도 5를 참조하여 언급된 바와 같이, UC 및 MC는 분리될 필요가 없으나, 대신에, 모니터링은 큐-당 기반으로 수행될 수 있다.
알 수 있는 바와 같이, 복수의 상이한 변수들이 스위치에 의해 모니터될 수 있다. 그리고, 임계치(또는 경보(alarm) 레벨)을 초과하는 특정 변수에 대응하여, 스위치는 네트워크 관리자에게 경보를 발하는 하드웨어 이벤트를 트리거한다.
버퍼 통계에 기반하여 이벤트를 트리거하는 방법을 일반적으로 설명하는 데 추가하여, 이 제시는 또한 카운트 레지스터들에 대한 특정 파라미터들 및 버퍼 통계의 트래킹을 구현하기 위한 값들을 제공한다. 현재 사용-카운트들 또는 최대 사용-카운트들을 저장할지 여부에 대한 결정은 1-비트 레지스터에 기반할 수 있고, 여기서, 0-값은 현재 사용-카운트들을 트래킹하고 1-값은 최대 사용-카운트들을 트래킹한다. 유사하게, 1-비트 트래킹-인에이블(enable) 비트는 1-값은 사용-카운트들을 계속해서 업데이트하는 반면 0-값은 사용-카운트들을 업데이트하거나 캡처링(capturing)하는 것을 정지하도록 설정될 수 있다.
버퍼 통계 또는 사용-카운트 값들은 오히려 레지스터에 저장되고, 여기서 각각의 레지스터의 연속적인 증가는 사용-카운트들, 버퍼들의 유닛들에서의 증가를 나타낸다. 당업자는 카운트 사이즈가 가장 나쁜- 경우 전체 버퍼 사용을 다루기에 충분해야 한다는 것을 이해할 것이다. 또한, 프로파일(profile) 인덱스는 어느 임계치가 어느 사용-카운트 값에 대응하는지를 식별하기 위해 사용될 수 있다.
각각의 트리거링 이벤트들은 또한 1-비트 값에 의해 식별될 수 있다. 따라서, 예를 들어, 하드웨어 중단에 대한 0-값은 CPU 중단이 발행되지 않을 것을 지시할 수 있고, 반면, 1-값은 CPU 중단의 발행을 야기한다. 유사하게, 스냅샷에 대한 0-값은 사용-카운트들의 계속적 업데이트들을 야기할 수 있고, 반면에 시스템 스냅샷에 대한 1-값은 사용-카운트가 정지할 것을 야기할 수 있다.
각각의 트리거링 이벤트에 대해, 레지스터는 어떤 타입의 사용-카운트(예를 들어, 이그레스 큐 전체, 이그레스 큐-그룹 공유된, 이그레스 포트 BP 공유된, CPU 큐 전체 등)가 이벤트를 트리거했는지를 나타내기 위해 사용될 수 있고, 반면에 다른 레지스터는 이벤트를 트리거하는 것을 일으킨 포트, 풀 또는 큐의 식별을 제공한다. 포트 번호들 및 버퍼 풀들에 기반한 트리거들에 대해, 8-비트 레지스터가 이용될 수 있고, 여기서 처음 6 비트는 포트 번호를 나타내고, 반면 나머지 2 비트는 풀 번호를 나타낸다. 알 수 있는 바와 같이, 이 정보를 저장하는 레지스터의 사이즈는 사용-카운트들의 타입들, 사용-카운트들의 최대값들, 사용-카운트들을 트리거한 기기들의 개수 등을 수용하기 위해 커스터마이즈(customize)될 수 있다. 이 사용-카운트 레지스터들을 구성할 수 있는 무수한 방법들이 있으므로, 당업자가 위에서-언급된 설명으로부터 사용-카운트 레지스터들을 손쉽게 구현할 수 있으므로, 특정 비트-값들을 지닌 추가적인 예들은 여기서 생략된다.
사용-카운트들이 이벤트를 트리거하기 위해 사용되는 프로시져(procedure)를 구현함에 의해, 네트워크 관리자는 모든 스위치들에 대한 모든 버퍼 통계를 폴링하지 않고 더 세밀한 입자에 대해 패킷-스위칭 네트워크가 수행하는 방법을 손쉽게 검사할 수 있다. 이 타입의 트래킹 메커니즘은 네트워크 성능의 더 간결한 리뷰를 허용하고, 따라서 네트워크 관리자가 시스템 성능을 최적화하도록 네트워크 구성요소들을 재구성하도록 허용한다.
메모리 관리 유닛(MMU)은 하드웨어, 소프트웨어, 펌웨어(firmware), 또는 그들의 조합으로 구현될 수 있다. 선호되는 실시예(들)에서, MMU는 관련 분야에서 잘 알려진 다음 기술들: 데이터 신호들에 대해 논리 기증들을 구현하기 위한 논리 게이트(gate)들을 갖는 별개의 논리 회로(들), 적절한 결합의 논리 게이트들을 갖는 어플리케이션 특정 통합 회로(ASIC, application specific integrated circuit), 프로그래머블 게이트 어레이(들)(PGA, programmable gate array(s)), 필드 프로그래머블 게이트 어레이(FPGA, field-programmable gate array) 등의 임의의 것 또는 조합을 이용하여 하드웨어로 구현된다. 대안적인 실시예에서, MMU는 메모리에 저장되고 적절한 명령 실행 시스템에 의해 실행되는 소프트웨어 또는 펌웨어로 구현된다.
흐름도의 임의의 프로세스 설명들 또는 블록들은 프로세스에서 특정 논리 기능들 또는 단계들을 구현하기 위한 하나 이상의 실행가능한 명령들을 포함하는 모듈들, 세그먼트들 또는 코드의 일부들을 나타내는 것으로 이해되어야 하고, 본 제시의 관련 분야의 당업자에 의해 이해될 바와 같이, 실질적으로 동시 또는 반대 순서를 포함하여 도시되거나 논의된 것과 다른 순서로 기능들이 실행될 수 있는 대안적인 구현들은 본 제시의 선호되는 실시예의 범위 내에 포함된다.
이벤트들의 트리거링은 논리 기능들을 구현하기 위한 실행가능한 명령들의 순서화된 리스트를 포함하는 하드웨어 또는 소프트웨어 코드에 의해 실행될 수 있고, 명령 실행 시스템, 장치, 또는 기기 예를 들어, 컴퓨터-기반 시스템, 프로세서-포함 시스템, 또는 명령 실행 시스템, 장치 또는 기기로부터 명령들을 불러와서 명령들을 실행할 수 있는 다른 시스템에 의해 또는 결합하여 사용되기 위한 임의의 컴퓨터-판독가능 매체로 구현될 수 있다. 이 문서의 맥락에서, "컴퓨터-판독가능 매체"는 명령 실행 시스템, 장치 또는 기기에 의해 또는 결합하여 사용을 위한 프로그램을 포함하거나, 저장하거나, 전달하거나, 전파하거나 전송할 수 있는 임의의 수단일 수 있다. 컴퓨터-판독 가능 매체는 예를 들어, 전자, 마그네틱, 광, 전자기, 적외선, 또는 반도체 시스템, 장치 기기, 또는 전파 매체일 수 있으나, 이에 한정되지 않는다. 컴퓨터-판독가능 매체의 더 특정한 예들(완벽하지 않은 리스트)은 다음: 하나 이상의 와이어(wire)들을 갖는 전기 연결(전자), 포터블(portable) 컴퓨터 디스켓(마그네틱), 임의 접속 메모리(RAM, random access memory)(전자), 판독 전용 메모리(ROM, read-only memory)(전자), 소거 가능한 프로그래머블 판독 전용 메모리(erasable programmable read only memory)(EPROM 또는 플래시 메모리)(전자), 광섬유(광), 및 포터블 컴팩트 디스크(compact disc) 판독 전용 메모리(CDROM)(광)을 포함할 수 있다. 프로그램은 예를 들어, 종이 또는 다른 매체의 광 스캐닝을 통해 전자적으로 캡쳐되어, 필요하다면 적절한 방법으로 컴파일(compile)되거나, 해석되거나, 또는 그렇지 않으면 프로세스된 후, 컴퓨터 메모리에 저장될 수 있으므로, 컴퓨터-판독 가능 매체는 심지어 종이 또는 프로그램이 프린트될 수 있는 다른 적절한 매체일 수 있다.
예시적인 실시예들이 보여지고 설명되었지만, 설명된 바와 같이 본 제시에 대한 많은 변경들, 수정들 또는 대안들이 만들어질 수 있다는 것은 당업자에게 명확할 것이다. 예를 들어, 여기서 사용-카운트가 논의되나, 패킷 레이트들도 유사한 방법으로 모니터될 수 있다는 것은 이해되어야 한다. 따라서, 모든 이런 변경들, 수정들 및 대안들은 본 제시의 범위 이내인 것으로 간주되어야 한다.

Claims (15)

  1. 시스템으로서,
    버퍼와 관련된 사용-카운트(use-count)를 저장하는 사용-카운트 레지스터;
    상기 사용-카운트에 대응하는 임계치를 저장하는 임계치 레지스터; 및
    상기 사용-카운트를 상기 임계치와 비교하는 메모리 관리 유닛(MMU, memory management unit)을 포함하고, 상기 MMU는 상기 사용-카운트가 상기 임계치를 초과할 때 이벤트를 트리거(trigger)하는, 시스템.
  2. 제1항에 있어서, 상기 사용-카운트 레지스터는 이그레스(egress) 사용-카운트를 더 저장하는, 시스템.
  3. 제2항에 있어서, 상기 이그레스 사용-카운트는:
    이그레스 유니캐스트(UC, egress unicast) 큐(queue) 사용-카운트;
    이그레스 큐-그룹 공유된 사용-카운트;
    이그레스 포트 사용-카운트;
    이그레스 멀티캐스트(MC, egress multicast) 버퍼-풀(BP, buffer-pool) 사용-카운트;
    이그레스 UC 플러스 MC(UC+MC) BP 사용-카운트들; 및
    이그레스 중앙 처리 장치(CPU, central processing unit) 큐 사용-카운트를 포함하는 그룹으로부터 선택된 적어도 하나인, 시스템.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서, 상기 사용-카운트 레지스터는 인그레스 사용-카운트를 더 저장하는, 시스템.
  5. 청구항 4에 있어서, 상기 인그레스 사용-카운트는:
    인그레스 포트 및 우선순위 그룹(PG, priority group) 유니캐스트 플러스 멀티캐스트(UC+MC) 공유된 사용-카운트;
    인그레스 포트 PG 헤드룸(headroom) 사용-카운트;
    인그레스 포트 버퍼 풀(BP) UC+MC 공유된 사용-카운트; 및
    인그레스 BP UC+MC 공유된 사용-카운트를 포함하는 그룹으로부터 선택된 적어도 하나인, 시스템.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서, 상기 사용-카운트 레지스터는 기기 사용-카운트를 더 저장하는, 시스템.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서, 상기 이벤트는 하드웨어 중앙 처리 장치(CPU) 중단(interrupt)인, 시스템.
  8. 청구항 1 내지 7 중 어느 한 항에 있어서, 상기 이벤트는 상기 사용-카운트를 업데이트하는 것을 정지시키는 명령인, 시스템.
  9. 청구항 1 내지 8 중 어느 한 항에 있어서, 상기 이벤트는 전용 비트(dedicated bit)가 상기 사용-카운트가 상기 임계치를 초과했다는 것을 표시하도록 설정되는 것인, 시스템.
  10. 네트워크 스위치에서의 방법으로서,
    버퍼와 관련된 사용-카운트를 트래킹하는 단계;
    상기 트래킹된 사용-카운트가 미리 정의된 임계치를 초과하는지 여부를 결정하는 단계; 및
    상기 사용-카운트가 상기 미리 정의된 임계치를 초과하면 이벤트를 트리거(trigger)하는 단계를 포함하는, 방법.
  11. 청구항 10에 있어서, 상기 이벤트를 트리거하는 단계는:
    중앙 처리 장치(CPU, central processing unit) 중단(interrupt)을 발행하는(issue) 단계를 포함하는, 방법.
  12. 청구항 10 또는 11에 있어서, 상기 이벤트를 트리거하는 단계는:
    상기 사용-카운트의 업데이트를 정지하는 단계를 포함하는, 방법.
  13. 청구항 10 내지 12 중 어느 한 항에 있어서, 상기 이벤트를 트리거하는 단계는:
    전용 비트가 상기 사용-카운트가 상기 미리 정의된 임계치를 초과한다는 것을 표시하도록 설정하는 단계를 포함하는, 방법.
  14. 청구항 10 내지 13 중 어느 한 항에 있어서, 상기 사용-카운트를 트래킹하는 단계는:
    이그레스 사용-카운트를 트래킹하는 단계를 포함하는, 방법.
  15. 버퍼를 갖는 스위치에서의 방법으로서,
    (a) 통계의 타입을 결정하는 단계로서, 상기 통계의 타입은:
    (a1) 현재 사용-카운트; 및
    (a2) 최대 사용-카운트로 구성된 그룹으로부터 선택된 적어도 하나인, 결정하는 단계;
    (b) 상기 결정된 통계의 타입에 대한 사용-카운트를 트래킹하는 단계로서, 상기 사용-카운트는:
    (b1) 이그레스 사용-카운트;
    (b2) 인그레스 사용-카운트; 및
    (b3) 기기 사용-카운트로 구성된 그룹으로부터 선택된 적어도 하나인, 트래킹하는 단계;
    (c) 상기 사용-카운트에 대응하는 임계치와 비교하는 단계; 및
    (d) 상기 사용-카운트가 상기 대응하는 임계치를 초과하면 이벤트를 트리거하는 단계를 포함하는, 방법.
KR1020130075356A 2012-08-07 2013-06-28 버퍼 통계 트래킹 KR101451149B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261680478P 2012-08-07 2012-08-07
US61/680,478 2012-08-07
US13/628,394 US20140086258A1 (en) 2012-09-27 2012-09-27 Buffer Statistics Tracking
US13/628,394 2012-09-27

Publications (2)

Publication Number Publication Date
KR20140019730A true KR20140019730A (ko) 2014-02-17
KR101451149B1 KR101451149B1 (ko) 2014-10-22

Family

ID=48672338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130075356A KR101451149B1 (ko) 2012-08-07 2013-06-28 버퍼 통계 트래킹

Country Status (4)

Country Link
EP (1) EP2696536A1 (ko)
KR (1) KR101451149B1 (ko)
CN (1) CN103580910A (ko)
TW (1) TW201408009A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383893A (zh) * 2016-09-23 2017-02-08 上海携程商务有限公司 时间序列数据管理方法及系统
CN112437025B (zh) * 2020-11-18 2022-08-26 苏州盛科通信股份有限公司 缓存区快照的实现方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997003549A2 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Prioritized access to shared buffers
US7689857B2 (en) * 2000-07-13 2010-03-30 Computer Associates Think, Inc. Method and apparatus for monitoring and maintaining user-perceived quality of service in a communications network
US7948896B2 (en) * 2005-02-18 2011-05-24 Broadcom Corporation Weighted-fair-queuing relative bandwidth sharing
US7787390B1 (en) * 2006-01-30 2010-08-31 Marvell International Ltd. Custom automatic remote monitoring for network devices
CN101505245B (zh) * 2009-03-06 2011-01-05 成都市华为赛门铁克科技有限公司 一种发送日志信息的方法及装置

Also Published As

Publication number Publication date
TW201408009A (zh) 2014-02-16
CN103580910A (zh) 2014-02-12
KR101451149B1 (ko) 2014-10-22
EP2696536A1 (en) 2014-02-12

Similar Documents

Publication Publication Date Title
US20140086258A1 (en) Buffer Statistics Tracking
JP6025753B2 (ja) パフォーマンス・メトリックを監視するためのコンピュータによって実施される方法、コンピュータ可読記憶媒体、およびシステム
US10860714B2 (en) Technologies for cache side channel attack detection and mitigation
US8560689B2 (en) Administering incident pools for event and alert analysis
US8893157B2 (en) Administering incident pools for event and alert analysis
US8499203B2 (en) Configurable alert delivery in a distributed processing system
US9201756B2 (en) Administering event pools for relevant event analysis in a distributed processing system
CN108572898B (zh) 一种控制接口的方法、装置、设备、以及存储介质
US9191296B2 (en) Network event management
US20190334792A1 (en) Detecting microbursts
EP3330855A1 (en) Managing hardware resources
CN113313036B (zh) 一种节目播放状态的检测方法及检测系统
KR101451149B1 (ko) 버퍼 통계 트래킹
US11394730B2 (en) Activity detection based on time difference metrics
US10282245B1 (en) Root cause detection and monitoring for storage systems
CN108370326A (zh) 用于生成警报和警报清除中断的方法和设备
US10223189B1 (en) Root cause detection and monitoring for storage systems
JP5793762B2 (ja) ネットワーク装置、ネットワークシステム及びアラート情報処理方法
WO2014061529A1 (ja) 情報処理装置及び情報処理方法及びプログラム
CN112242915A (zh) 用于对onu设备进行过载控制的方法与装置
JP2023042430A (ja) ネットワーク監視装置、ネットワーク監視方法、及び、ネットワーク監視プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee