KR20110128870A - 서버 컴퓨터, 메시지 스로틀링 방법 및 컴퓨터-판독 가능 데이터 저장 매체 - Google Patents

서버 컴퓨터, 메시지 스로틀링 방법 및 컴퓨터-판독 가능 데이터 저장 매체 Download PDF

Info

Publication number
KR20110128870A
KR20110128870A KR1020117021577A KR20117021577A KR20110128870A KR 20110128870 A KR20110128870 A KR 20110128870A KR 1020117021577 A KR1020117021577 A KR 1020117021577A KR 20117021577 A KR20117021577 A KR 20117021577A KR 20110128870 A KR20110128870 A KR 20110128870A
Authority
KR
South Korea
Prior art keywords
throttling
server computer
request message
time
throttled
Prior art date
Application number
KR1020117021577A
Other languages
English (en)
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
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20110128870A publication Critical patent/KR20110128870A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

서버 컴퓨터는 성능 모니터 모듈 및 스로틀링 로직 모듈을 포함한다. 성능 모니터 모듈은 서버 컴퓨터의 시스템 변수를 모니터링하는 성능 모니터를 포함한다. 스로틀링 로직 모듈은 성능 모니터에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하는지 여부를 결정한다. 시스템 변수가 사전 결정된 임계점을 초과할 때, 스로틀링 로직 모듈은 스로틀링 플래그를 설정한다. 적어도 하나의 스로틀링 플래그가 사전 결정된 개수의 타임 스냅샷 각각에 대해 설정될 때 스로틀링 로직 모듈은 서버 컴퓨터에서 스로틀링을 활성화한다. 스로틀링의 활성화는 서버 컴퓨터에 의해 수신된 요청 메시지의 처리를 제한한다.

Description

서버 컴퓨터, 메시지 스로틀링 방법 및 컴퓨터-판독 가능 데이터 저장 매체{WEB FRONT-END THROTTLING}
본 발명은 웹 프론트-엔드 서버에 스로틀링 성능을 제공하는 시스템 및 방법에 관한 것이다.
웹 프론트-엔드 서버(web front-end servers)는 인터넷 상의 데이터베이스 서버로부터 정보를 액세스하도록 시도하는 클라이언트 시스템에게 인터페이스를 제공한다. 웹 프론트-엔드 서버는 전형적으로 클라이언트 요청을 처리하고, 데이터베이스 서버에 그 요청을 전달하고, 획득된 데이터를 클라이언트 시스템에게 리턴(return)한다.
온라인 브라우저 기반의 문서 및 협업(collaboration) 시스템은 전형적으로 클라이언트 요청을 처리하기 위해 다수의 웹 프론트-엔드 서버를 제공한다. 클라이언트는 데이터베이스 서버에 액세스하기 위한 그 요청이 적절한 시간 안에 처리되기를 기대한다. 그러나 시스템이 사용중(busy)일 때, 웹 프론트-엔드 서버는 때때로 과부하가 걸려, 적절한 시간 안에 클라이언트 요청에 응답하지 못할 수 있다.
본 발명의 실시예는 서버 컴퓨터에 스로틀링(throttling) 성능을 제공하는 것에 관한 것이다. 서버 컴퓨터는 성능 모니터 모듈, 스로틀링 로직 모듈 및 스로틀링 구성 모듈을 포함한다. 성능 모니터 모듈은 하나 이상의 성능 모니터를 포함한다. 각각의 성능 모니터는 서버 컴퓨터의 시스템 변수를 모니터링한다. 스로틀링 로직 모듈은 성능 모니터에 의해 모니터링된 시스템 변수가 사전 결정된 임계점을 초과하는지 여부를 결정한다. 시스템 변수가 사전 결정된 임계점을 초과하면, 스로틀링 로직 모듈은 스로틀링 플래그(throttling flag)를 설정한다.
스로틀링 구성 모듈은 하나 이상의 성능 모니터에 의해 모니터링되는 각각의 시스템 변수에 대한 사전 결정된 임계점을 저장한다. 스로틀링 구성 모듈은 또한 하나 이상의 스로틀링 로직 변수를 저장한다. 스로틀링 로직 모듈은 적어도 하나의 스로틀링 플래그가 사전 결정된 개수의 타임 스냅샷(time snapshot) 각각에 대해 설정될 때 서버 컴퓨터에서 스로틀링을 활성화한다. 스로틀링의 활성화는 서버 컴퓨터에 의해 수신된 요청 메시지의 처리를 제한한다.
첨부된 도면 및 이하의 설명에서 본 발명의 하나 이상의 기술에 대한 세부 사항이 제시되어 있다. 이 기술의 다른 특징, 목적 및 이점은 명세서, 도면 및 청구항으로부터 명확해질 것이다.
본 발명은 웹 프론트-엔드 서버에 스로틀링 성능을 제공하여 클라이언트가 데이터베이스에 접속하고자 요청할 때 적절한 시간 안에 클라이언트에게 응답할 수 있게 하는 시스템 및 방법을 제공한다.
도 1은 웹 프론트-엔드 스로틀링을 위한 예시적인 시스템을 도시하는 도면.
도 2는 웹 프론트-엔드 서버의 예시적인 모듈을 도시하는 도면.
도 3은 웹 프론트-엔드 스로틀링에 사용된 예시적인 스로틀링 메커니즘의 예시적인 논리도를 도시하는 도면.
도 4는 예시적인 웹 프론트-엔드 서버에서 실행되는 예시적인 동작에 대한 흐름도를 도시하는 도면.
도 5는 도 4에 도시된 예시적인 동작 중 하나에 대한 흐름도를 도시하는 도면.
도 6은 도 5에 도시된 예시적인 동작 중 하나에 대한 흐름도를 도시하는 도면.
도 7은 도 5에 도시된 예시적인 동작 중 다른 하나에 대한 흐름도를 도시하는 도면.
도 8은 웹 프론트-엔드 스로틀링을 구현하는 시스템을 위한 운영 환경을 도시하는 도면.
본 발명은 웹 프론트-엔드 서버에게 스로틀링 성능을 제공하는 시스템 및 방법에 관한 것이다. 시스템 및 방법은 웹 프론트-엔드 서버의 시스템 상태(system health)를 모니터링하기 위해 성능 모니터를 사용한다. 하나 이상의 성능 모니터가 지정된 기간 동안 시스템 자원이 사전 결정된 임계점의 범위 밖으로 벗어났다는 것을 표시할 때, 스로틀링은 웹 프론트-엔드 서버에서 활성화된다. 스로틀링이 웹 프론트-엔드 서버에서 활성화될 때, 소정 타입의 클라이언트 요청 메시지, 즉 전형적으로 낮은 우선 순위를 갖는 요청 메시지는 웹 프론트-엔드 서버에 의해 처리되지 않는다. 그 대신에 전형적으로 시스템이 사용중(busy) 상태임을 나타내는 오류 메시지가 요청한 클라이언트 시스템에게 리턴된다.
도 1은 웹 프론트-엔드(WFE) 스로틀링을 위한 예시적인 시스템(100)을 도시한다. 예시적인 시스템(100)은 클라이언트(102, 104), 네트워크(106), 로드 밸런서(load balancer)(108), WFE 서버(110, 112, 114) 및 백-엔드(back-end) 서버(116)를 포함한다. 더 많은 개수 또는 더 적은 개수의 클라이언트, WFE, 백-엔드 서버, 로드 밸런서 및 네트워크를 사용할 수도 있다. 본 명세서에서 WFE 및 WFE 서버라는 용어는 상호 교환 가능하게 사용된다.
예시적인 실시예에서, 클라이언트(102, 104)는 데스크탑 컴퓨터, 랩탑 컴퓨터, 단말 컴퓨터, PDA(personal data assistant) 또는 휴대 전화 장치 등과 같은 컴퓨팅 장치이다. 클라이언트(102, 104)는 입/출력 장치, 중앙 처리 장치("CPU"), 데이터 저장 장치 및 네트워크 장치를 포함할 수 있다. 본 출원에서, 클라이언트 및 클라이언트 컴퓨터라는 용어는 상호 교환 가능하게 사용된다.
WFE(110, 112, 114)는 네트워크(106)를 통해 로드 밸런서(108)를 거침으로서 클라이언트(102, 104)에 의해 액세스될 수 있다. 백-엔드 서버(116)는 WFE(110, 112, 114)에 의해 액세스될 수 있다. 로드 밸런서(108)는 서버 컴퓨터이다. 로드 밸런서(108), WFE(110, 112, 114) 및 백-엔드 서버(116)는 입/출력 장치, 중앙 처리 장치("CPU"), 데이터 저장 장치 및 네트워크 장치를 포함할 수 있다. 예시적인 실시예에서, 네트워크(106)는 인터넷이고, 클라이언트(102, 104)는 WFE(110, 112, 114)와, 원격으로 WFE(110, 112, 114)에 접속된 자원을 액세스할 수 있다. 본 출원에서, 서버 및 서버 컴퓨터라는 용어는 상호 교환 가능하게 사용된다.
예시적인 실시예에서, 예시적인 시스템(100)은 온라인의 브라우저 기반 문서 협업 시스템이다. 온라인의 브라우저 기반 문서 협업 시스템의 예시로는 워싱톤주 레드몬드에 위치한 마이크로소프트 코포레이션에서 생산된 마이크로소프트 쉐어포인트(Microsoft Sharepoint)가 있다. 예시적인 시스템(100)에서, 백-엔드 서버(116)는 SQL 서버이고, 그 예로서 워싱톤주 레드몬드에 위치한 마이크로소프트 코포레이션에서 생산된 SQL 서버 2008이 있다.
예시적인 시스템(100)에서, WFE(110, 112, 114)는 클라이언트(102, 104)와 백-엔드 서버(116) 사이에 인터페이스를 제공한다. 로드 밸런서(108)는 클라이언트(102, 104)로부터 WFE(110, 112, 114)로 요청을 전달하는 서버 컴퓨터이다. 로드 밸런서(108)는 WFE 활용도, WFE에 대한 접속의 수 및 전체적인 WFE 성능 등과 같은 인자를 이용하여 어느 WFE 서버가 클라이언트 요청을 수신할 것인지를 결정한다.
예시적인 시스템(100)에서, 클라이언트 요청의 예시는 백-엔드 서버(116)에 저장된 문서를 액세스하는 것, 백-엔드 서버(116)에 저장된 문서를 편집하는 것 또는 백-엔드 서버(116)에 문서를 저장하는 것이 될 수 있다. 로드 밸런서(108)가 네트워크(106)를 통해 클라이언트 요청을 수신할 때, 로드 밸런서(108)는 WFE 서버(110, 112, 114) 중 어느 것이 클라이언트 요청을 수신할 것인지를 결정한다. WFE 서버(110, 112, 114) 사이에서 요청의 균형을 맞추려는 시도에도 불구하고, 하나 이상의 WFE 서버(110, 112, 114)의 시스템 자원은 WFE가 클라이언트 요청을 허용하지 못할 수 있는 정도까지 고갈될 수 있다.
예시적인 시스템(100) 내의 각각의 WFE는 스로틀링 메커니즘을 포함한다. 스로틀링 메커니즘은 언제 WFE가 스로틀링을 활성화할 것인지를 결정한다. 스로틀링이 WFE에서 활성화될 때, 낮은 우선 순위의 클라이언트 요청 메시지는 WFE에서 거부되고, WFE가 사용중 상태임을 나타내는 오류 응답 메시지가 WFE로부터 요청을 제시한 클라이언트(102, 104)에게 전달된다.
도 2는 예시적인 WFE(110)를 보다 상세하게 도시한다. 도 2에 도시된 바와 같이, 예시적인 WFE(110)는 예시적인 성능 모니터 모듈(202), 예시적인 스로틀링 구성 모듈(204), 예시적인 스로틀링 로직 모듈(206), 예시적인 분류 모듈(208), 예시적인 성능 분석 모듈(210) 및 예시적인 인터페이스 모듈(212)을 포함한다.
예시적인 성능 모니터 모듈(202)은, 서버의 상태를 나타내는 WFE(110) 상의 시스템 변수를 계속 추적하는 하나 이상의 성능 모니터를 포함한다. 전형적으로, WFE(110)는 각각의 모니터링된 시스템 변수에 대하여 하나의 성능 모니터를 포함한다. 성능 모니터는 전형적으로 모니터링되는 시스템 변수의 값에 대한 카운트를 저장하는 카운터이다. 본 명세서에서, 성능 모니터 및 성능 카운터라는 용어는 상호 교환 가능하게 사용된다.
성능 카운터가 모니터링하는 시스템 변수의 예시는 CPU 사용 퍼센트 및 메가바이트(megabytes) 단위의 이용 가능한 WFE 메모리 등과 같은 자원 사용 변수 및 WFE에 의해 대기열(queued)에 있는 요청의 개수 및 밀리초 단위의 대기열 내에서의 요청 대기 시간 등과 같은 성능 변수를 포함한다. 예시적인 시스템(100)에서, 대기열에 있는 예시적인 요청은 ASP.NET 요청일 수 있고, 요청 대기 시간은 ASP.NET 요청 대기 시간일 수 있다. ASP.NET는 마이크로소프트에 의해 개발 및 판매되는 프로그래머가 다이나믹 웹 사이트, 웹 애플리케이션 및 웹 서비스를 제작할 수 있게 하는 웹 애플리케이션 프레임워크이다. ASP.NET는 흔히 마이크로소프트 쉐어포인트 애플리케이션을 제작하는 데 사용된다.
예시적인 스로틀링 구성 모듈(204)은 각각의 성능 카운터에 대한 임계점을 저장한다. 각각의 임계점은 구성 가능한 사전 결정된 임계점이다. 각각의 임계점은 시스템 관리자에 의해 수동으로 구성되거나 WFE의 성능 분석에 기초하여 프로그램적으로 구성될 수 있다. 각각의 임계점은 성능 카운터에 의해 모니터링되는 시스템 변수에 대한 한계를 나타낸다. 모니터링되는 시스템 변수에 따라서, 임계점은 시스템 변수에 대한 상한 또는 하한을 나타낸다. 상한을 초과하는 성능 카운트 또는 하한 이하로 떨어지는 성능 카운트는 성능 관련 문제를 나타낸다.
예시적인 스로틀링 구성 모듈(204)은 또한 하나 이상의 스로틀링 로직 변수를 저장한다. 스로틀링 로직 변수는 스로틀링 메커니즘의 측면을 지정한다. 예시적인 스로틀링 로직 변수는 스로틀링을 활성화할지 여부를 결정하는 데 필요한 타임 스냅샷의 개수 및 타임 스냅샷 사이의 시간 간격을 포함한다. 다른 스로틀링 로직 변수도 가능하다. 각각의 스로틀링 로직 변수는 구성 가능하다.
예시적인 스로틀링 로직 모듈(206)은 하나 이상의 성능 카운터를 모니터링하고, 언제 WFE를 위한 스로틀링을 활성화할지 결정한다. 전형적으로, 예시적인 WFE(110)에 있어서 언제 스로틀링을 활성화할지에 대한 결정은 n단계 프로세스이다. 예시적인 n단계 프로세스에서, 하나 이상의 성능 카운터는 시간 상의 n 지점에서 모니터링된다. 시간 상의 제 1 지점은 타임 스냅샷 1로 지정되고, 시간 상의 n번째 지점은 타임 스냅샷 n으로 지정된다.
예시적인 n단계 프로세스에서, 예시적인 스로틀링 로직 모듈(206)은 성능 카운터에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하는지 여부를 결정한다. 예시적인 실시예에서, 시스템 변수가 사전 결정된 임계점을 초과할 때, 시스템 변수의 값은 모니터링되는 시스템 변수에 따라서 상한을 초과하거나 하한보다 낮은 값을 갖는다. 예를 들면 CPU 사용량이 사전 결정된 임계점을 초과할 때, CPU 사용량의 값은 상한을 초과한다. 그러나 이용 가능한 메모리가 사전 결정된 임계점을 초과할 때, 이용 가능한 메모리의 값은 하한보다 낮은 값을 갖는다.
예시적인 n단계 프로세스에서의 제 1 단계는 타임 스냅샷 1에서 하나 이상의 성능 카운터를 모니터링하는 것이다. 하나 이상의 성능 카운터가 타임 스냅샷 1에서 모니터링될 때, 성능 카운터에 의해 모니터링되는 시스템 변수가 상한 임계점을 초과하거나 하한 임계점 이하로 떨어지면, 성능 카운터와 연관된 성능 모니터는 성능 모니터에 대한 스로틀링 플래그를 설정한다.
n단계 프로세스에서의 다음 단계는 타임 스냅샷 2에서 하나 이상의 성능 카운터를 모니터링하는 것이다. 타임 스냅샷 2는 타임 스냅샷 1로부터의 사전 결정된 시간 간격만큼 떨어져 있다. 전형적으로 사용되는 예시적인 시간 간격은 5초이다. 시간 간격은 구성 가능한 값이고, 다른 시간 간격도 사용 가능하다.
하나 이상의 성능 카운터가 타임 스냅샷 2에서 모니터링될 때, 성능 카운터에 의해 모니터링되는 시스템 변수가 상한 임계점을 초과하거나 하한 임계점 이하로 떨어지고, 성능 카운터와 연관된 성능 모니터에 대하여 스로틀링 플래그가 이미 설정되지 않았다면, 성능 카운터와 연관된 성능 모니터는 성능 모니터에 대한 스로틀링 플래그를 설정한다.
이와 동일한 프로세스는 n단계 프로세스 내의 나머지 단계 각각에 대해서 실행된다. 예를 들어, n이 5이면, 하나 이상의 성능 카운터는 각각의 타임 스냅샷 3, 4 및 5에서 추가적으로 모니터링된다. 하나 이상의 성능 카운터가 각각의 타임 스냅샷 3, 4 및 5에서 모니터링될 때, 성능 카운터에 의해 모니터링되는 시스템 변수가 상한 임계점을 초과하거나 하한 임계점 이하로 떨어지고, 성능 카운터와 연관된 성능 모니터에 대하여 스로틀링 플래그가 아직 설정되지 않았다면, 성능 카운터와 연관된 성능 모니터는 성능 모니터에 대한 스로틀링 플래그를 설정한다.
타임 스냅샷 n에서, 예시적인 스로틀링 로직 모듈(206)은 적어도 하나의 스로틀링 플래그가 타임 스냅샷 1에서 설정되었는지 여부 및 적어도 하나의 스로틀링 플래그가 각각의 타임 스냅샷 2-n(타임 스냅샷 2부터 타임 스냅샷 n까지를 의미함)에서 설정되었는지 여부를 결정한다. n이 2인 예시적인 실시예에서, 오로지 2개의 타임 스냅샷만이 사용된다. 예시적인 스로틀링 로직 모듈(206)이 적어도 하나의 스로틀링 플래그가 타임 스냅샷 1에서 설정되고, 적어도 하나의 스로틀링 플래그가 각각의 타임 스냅샷 2-n에서 설정되었다고 결정하면, 예시적인 스로틀링 로직 모듈(206)은 예시적인 WFE(110)에 대하여 스로틀링을 활성화한다. 스로틀링 상태가 WFE(110)에서 활성화되면, WFE(110)에서 수신된 낮은 우선 순위를 갖는 모든 요청 메시지는 WFE(110)에 의해 처리되지 않는다. 그 대신에 WFE(110)는 요청을 시작한 클라이언트에게 오류 메시지, 전형적으로 사용중 오류(busy error)를 전송한다.
하나 이상의 성능 모니터는 대응하는 성능 카운터와 연관된 시스템 변수를 지속적으로 모니터링한다. 스로틀링 플래그가 성능 카운터에 대해 설정될 때, 성능 카운터에 의해 모니터링되는 시스템 변수가 계속 상한을 초과하거나 하한 아래에 있는 상태로 유지되는 경우에 스로틀링 플래그는 설정된 채로 유지된다. 그러나 성능 카운터에 의해 모니터링되는 시스템 변수가 허용 가능한 값으로 되돌아갈 때 - 상한값으로 유지 또는 상한값 이하로 떨어지거나, 하한값으로 유지 또는 하한값을 초과할 때 - 성능 카운터에 대한 스로틀링 플래그는 재설정된다.
예시적인 WFE(110)에 대한 스로틀링을 활성화할 것인지 여부를 결정할 때, 예시적인 스로틀링 로직 모듈(206)은 어느 성능 카운터가 스로틀링 플래그를 설정하는지를 고려하지 않는다. 결정 인자는 적어도 하나의 스로틀링 플래그가 타임 스냅샷 1에서 설정되고, 적어도 하나의 스로틀링 플래그가 각각의 타임 스냅샷 2-n에서 설정된다는 것이다. 예시적인 실시예에서, 스로틀링 상태는 서로 다른 성능 카운터가 타임 스냅샷 1 및 각각의 타임 스냅샷 2-n에서 스로틀링 플래그를 설정하거나, 스로틀링 플래그가 타임 스냅샷 1 및 각각의 타임 스냅샷 2-n에서 동일한 성능 카운터에 대해 설정되는 경우에 활성화될 수 있다.
타임 스냅샷의 숫자 n은 구성 가능하다. 몇몇 예시적인 실시예에서, 예시적인 스로틀링 로직 모듈(206)은 예시적인 WFE(110)에서 스로틀링 상태를 활성화할 것인지 여부에 대한 결정을 실행하기 위해서 2개의 타임 스냅샷을 이용한다. 예시적인 스로틀링 로직 모듈(206)은 오경고(false alarm) 스로틀링 상태를 설정하게 되는 성능에서의 스파이크(spikes) 가능성을 최소화하기 위해서 2개의 타임 스냅샷을 이용한다. 예를 들면, CPU 활동도를 모니터링하는 성능 카운터가 임계점을 초과하게 하는 CPU 활동도 버스트(burst)가 존재할 수 있다. CPU 활동도의 버스트는 매우 짧은 기간 동안만 존재하는 스파이크일 수 있다. 활동도의 짧은 스파이크 때문에 WFE에 대하여 스로틀링 상태를 활성화하는 것이 바람직하지 않기 때문에, 이 예시적인 실시예에서는 2개의 타임 스냅샷을 이용한다. 다른 예시적인 실시예에서, 2개 이상의 타임 스냅샷을 이용할 수 있다.
예시적인 분류 모듈(208)은 메시지 유형에 대한 우선 순위를 할당하고, 스로틀링이 활성화될 때 어느 메시지가 처리될 것인지를 결정하고, 스로틀링이 활성화될 때 어느 메시지가 거부될 것인지를 결정한다. 일반적으로 기록 동작은 완료되게 하고 스로틀링되지 않게 하는 반면, 예를 들면 웹 페이지에 대한 요청 등의 판독 동작은 스로틀링될 가능성이 높게 하는 것이 바람직하다. 예를 들어 클라이언트(102)의 사용자가 편집을 위해 문서를 연다면, 사용자가 문서의 편집을 완료하게 하고 WFE가 사용중이라는 이유로 문서의 편집을 지연시키지 않는 것이 바람직하다. 마찬가지로, 클라이언트(104)의 사용자가 웹 페이지를 보려고 액세스를 시도하고, 사용중 오류를 수신하였다면, 사용자는 단순히 나중에 다시 시도해보려 할 것이다.
예시적인 실시예에서, 분류 모듈(208)은 HTTP 메시지 유형으로 몇몇 메시지를 분류한다. 예를 들면, HTTP Post 및 HTTP Put 메시지 유형은 전형적으로 높은 우선 순위를 할당받고, HTTP Get 메시지 유형은 전형적으로 낮은 우선 순위를 할당받는다. 예시적인 실시예에서, 스로틀링이 예시적인 WFE(110)에서 활성화되고, WFE(110)가 HTTP Post 또는 HTTP Put 메시지 요청을 수신하였다면, WFE(110)는 HTTP Post 또는 HTTP Put 메시지를 처리한다. 마찬가지로 스로틀링이 WFE(110)에서 활성화되고, WFE(110)가 HTTP Get 메시지 요청을 수신하였다면, WFE(110)는 전형적으로 사용중 오류를 리턴함으로써 HTTP Get 메시지를 거부한다.
메시지 유형에 따라 메시지를 분류하는 것에 추가하여, 예시적인 분류 모듈(208)은 또한 메시지 기능에 따라 메시지를 분류할 수도 있다. 예를 들면, 스로틀링이 예시적인 WFE(110)에서 활성화될 때, 검색 엔진 크롤러(search engine crawler)로부터의 메시지를 스로틀링하여 검색 엔진 크롤러가 사용자에 의해 개시된 HTTP Post 요청을 방해하지 않도록 하는 것이 바람직할 것이다.
예시적인 WFE(110)는 하나 이상의 분류 모듈을 포함할 수 있다. 예를 들면 하나의 분류 모듈은 HTTP 기능 유형에 따라 요청을 분류할 수 있다. 다른 분류 모듈은 기능에 따라 요청을 분류할 수 있다. 예를 들면, WFE(110)는 마이크로소프트 쉐어포인트 메시지에 대한 고유한 분류 모듈을 포함할 수 있다. 하나의 분류 모듈이 요청 메시지에 높은 우선 순위를 지정하고, 다른 분류 모듈이 요청 메시지에 낮은 우선 순위를 지정하였다면, 요청 메시지는 낮은 우선 순위를 배정받는다. 오로지 하나의 분류 모듈만이 요청 메시지에 부합한다면, 요청 메시지는 분류자와 연관된 우선 순위를 배정받는다.
예시적인 성능 분석 모듈(210)은 WFE가 시간에 따라 하나 이상의 성능 모니터를 분석할 수 있도록 허용하여 성능 카운터에 대한 임계점 레벨 및 다른 스로틀링 변수가 보다 정확하게 구성될 수 있게 한다. 예를 들면, 성능 분석 모듈(210)은 과도한 개수의 스로틀링 상태가 동일한 성능 카운터가 임계점을 초과하는 것에 의해 유발되었다는 것을 결정할 수 있다. 이 예시에 있어서, 오경고를 최소화하기 위해서 성능 분석 모듈(210)은 성능 카운터를 위한 임계점 한계가 증가되어야 한다는 것을 결정할 수 있다. 다른 예시에서, 성능 분석 모듈(210)은 스냅샷 사이의 시간 간격 또는 스로틀링을 활성화하는 데 필요한 스냅샷의 개수를 수정해야 함을 결정할 수 있다.
예시적인 인터페이스 모듈(212)은 시스템 관리자가 시스템 변수를 수동으로 구성할 수 있게 허용한다. 예를 들면, 시스템 관리자는 하나 이상의 성능 카운터에 대한 시스템 변수 임계점을 수동으로 구성할 수 있다. 시스템 관리자는 n의 값을 수동으로 구성함으로써, 스로틀링을 활성화할 것인지 여부에 대한 결정을 내리는데 사용되는 타임 스냅삿의 개수를 구성할 수 있게 된다. 시스템 관리자는 또한 스냅샷 사이의 시간 간격을 수동으로 구성할 수 있다. 다른 시스템 변수도 구성 가능하다.
예시적인 인터페이스 모듈(212)은 전형적으로 명령어 라인 인터페이스(command line interface)를 제공하여 시스템 관리자가 시스템 변수를 구성할 수 있도록 허용한다. 몇몇 실시예에서, 그래픽 사용자 인터페이스(graphical user interface)를 사용할 수 있다. 다른 사용자 인터페이스도 가능하다.
도 3은 예시적인 스로틀링 로직 모듈(206)에서 이용되는 예시적인 로직(300)을 도시한다. 도 2에 도시된 예시적인 스로틀링 로직 모듈(206)의 실시예에 있어서, n의 값은 2이고, 이는 2단계 스로틀링 메커니즘을 나타낸다. 따라서 2개의 OR 게이트 및 2개의 스로틀링 플래그가 도시되어 있다. 다른 예시적인 실시예에서, OR 게이트의 개수 및 스로틀링 플래그의 개수는 n이다. 예를 들어, 3단계 스로틀링 메커니즘은 3개의 OR 게이트를 사용하고, 이는 3개의 타임 스냅샷에 대응한다. OR 게이트는 오로지 예로서 도시되어 있다. 예시적인 실시예에서, OR 게이트 및 AND 게이트에 의해 사용되는 로직은 예를 들면 소프트웨어 등과 같은 다른 수단으로 구현될 수 있다.
예시적인 OR 게이트(302)는 시간 t에서 하나 이상의 성능 모니터로부터 입력을 수신한다. 시간 t는 타임 스냅샷 1을 구성한다. 시간 t에서, 하나 이상의 성능 모니터 중 어느 하나가 모니터링된 시스템 변수가 상한을 초과하거나 하한 이하로 떨어졌다고 판정한다면, 예시적인 플래그 t가 설정된다. 예시적인 플래그 t는 예시적인 AND 게이트(306)에 대한 첫 번째 입력이다.
예시적인 OR 게이트(304)는 시간 t+1에서 하나 이상의 성능 모니터로부터 입력을 수신한다. 시간 t+1은 타임 스냅샷 2를 구성한다. 시간 t+1에서, 하나 이상의 성능 모니터 중 어느 하나가 모니터링된 시스템 변수가 상한을 초과하거나 하한 이하로 떨어졌다고 판정한다면, 예시적인 플래그 t+1이 설정된다. 예시적인 플래그 t+1은 예시적인 AND 게이트(306)에 대한 두 번째 입력이다.
시간 t+1에서, 플래그 t 및 플래그 t+1이 모두 설정된다면, AND 게이트(306)는 예시적인 스로틀 온/오프 플래그를 설정한다. 예시적인 스로틀 온/오프 플래그가 설정되면, 스로틀링은 예시적인 WFE(110)에서 활성화된다.
도 4는 예시적인 WFE(110)에서 실행된 예시적인 동작(400)을 도시하는 흐름도이다. 동작(402)에서, 예시적인 WFE(110)는 예시적인 클라이언트(102)로부터 요청 메시지를 수신한다. 동작(404)에서, 예시적인 WFE(110)는 요청 메시지에 추가적인 처리를 허용할 것인지 여부를 결정한다. 요청 메시지를 허용할 것인지 여부에 대한 결정을 내릴 때, 예시적인 WFE(110)는 스로틀링이 WFE(110)에서 활성화되었는지 여부 및 요청 메시지가 스로틀링되는 유형 및 기능인지 여부를 결정한다. 예시적인 WFE(110)가 동작(406)에서 요청 메시지를 허용할 것이라고 결정을 내릴 때, 요청 메시지는 동작(408)에서 처리된다. 예시적인 WFE(110)가 동작(406)에서 요청 메시지를 거부할 것이라고 결정을 내릴 때, 예시적인 WFE(110)는 예시적인 클라이언트(102)에게 응답 메시지를 전달한다. 응답 메시지는 전형적으로 사용중 메시지(busy message)인 오류 메시지로서, 예시적인 클라이언트(102)에게 요청 메시지가 예시적인 WFE(110)에서 거부되었음을 나타낸다.
도 5는 예시적인 WFE(110)에서 실행된 예시적인 동작(404)을 보다 상세하게 나타내는 흐름도이다. 예시적인 동작(404)에서, 예시적인 WFE(110)는 예시적인 클라이언트(102)로부터의 요청 메시지를 허용할 것인지 여부를 결정한다.
동작(502)에서, 예시적인 WFE(110)에서 스로틀링이 활성화되었는지 여부에 대해 결정하기 위한 검사가 이루어진다. 동작(504)에서, 예시적인 요청 메시지가 스로틀링될 수 있는지 여부에 대한 결정이 이루어진다. 동작(506)에서 스로틀링이 예시적인 WFE(110)에서 활성화되지 않았다는 결정이 내려지면, 동작(508)에서 요청 메시지는 예시적인 WFE(110)에서 허용된다. 동작(506)에서 스로틀링이 예시적인 WFE(110)에서 활성화되었다는 결정이 내려지고 동작(510)에서 요청 메시지가 스로틀링될 수 없다는 결정이 내려질 때, 동작(512)에서 예시적인 WFE(110)는 예시적인 요청 메시지를 허용한다. 전형적으로 스로틀링될 수 없는 예시적인 요청 메시지는 HTTP Post 또는 HTTP Put 메시지 유형을 갖는 요청 메시지이다.
동작(506)에서 스로틀링이 예시적인 WFE(110)에서 활성화되었다는 결정이 내려지고, 동작(510)에서 요청 메시지가 스로틀링될 수 있다는 결정이 내려질 때, 동작(514)에서 WFE(110)는 예시적인 요청 메시지를 거부한다. 전형적으로 스로틀링될 수 있는 예시적인 요청 메시지는 HTTP Get 메시지 유형을 갖는 요청 메시지이다.
도 6은 예시적인 WFE(110)에서 실행된 예시적인 동작(600)을 보다 상세하게 도시하는 흐름도이다. 예시적인 동작(600)에서 예시적인 WFE(110)는 스로틀링이 예시적인 WFE(110)에서 활성화되었는지 여부를 결정한다. 예시적인 WFE(110)에서 스로틀링이 활성화되었는지 여부에 관한 결정은 규칙적인 시간 간격으로 이루어진다. 예시적인 WFE(110)에서 스로틀링이 활성화되었는지 여부에 관한 결정은 성능 관련 이유 때문에 각각의 수신된 요청 메시지에 대하여 이루어지지는 않는다.
동작(602)에서, 예시적인 WFE(110)는 타임 스냅샷 1에서 WFE(110)에 대한 성능 모니터를 모니터링한다. 타임 스냅샷 1에서 성능 모니터에 의해 모니터링되는 적어도 하나의 시스템 변수가 시스템 변수에 대해 설정된 사전 결정된 임계점을 초과한다면, 동작(604)에서 예시적인 WFE(110)는 제 1 스로틀링 플래그를 설정한다.
동작(606)에서, 예시적인 WFE(110)는 타임 스냅샷 2-n에서 WFE(110)에 대한 성능 모니터를 모니터링하고, 여기에서 타임 스냅샷 2-n은 타임 스냅샷 2부터 타임 스냅샷 n까지를 의미한다. 각각의 타임 스냅샷 2-n에서 성능 모니터에 의해 모니터링되는 적어도 하나의 시스템 변수가 시스템 변수에 대해 설정된 사전 결정된 임계점을 초과하면, 동작(608)에서 예시적인 WFE(110)는 스로틀링 플래그를 설정한다. 각각의 타임 스냅샷 2-n에서 성능 모니터에 의해 모니터링되는 적어도 하나의 시스템 변수가 시스템 변수에 대해 설정된 사전 결정된 임계점을 초과하는 경우에 별개의 스로틀링 플래그가 각각의 타임 스냅샷 2-n에 대해 설정된다. 동작(606) 및 동작(608)은 각각 다수의 동작으로서, 하나의 동작은 각각의 타임 스냅샷 2-n에서 실행된다는 것을 이해할 것이다.
동작(610)에서 스로틀링 플래그가 모두 설정되었다는 결정이 내려지면, 동작(612)에서 WFE(110)는 WFE(110)에서 스로틀링을 활성화한다. 동작(610)에서 스로틀링 플래그가 모두 설정되지 않았다는 결정이 내려지면, 동작(614)에서 WFE(110)는 스로틀링이 활성화된 경우에 WFE(110)에서 스로틀링을 비활성화한다.
도 7은 예시적인 WFE(110)에서 실행된 예시적인 동작(504)을 보다 상세하게 도시하는 흐름도이다. 예시적인 동작(504)에서, 예시적인 WFE(110)는 예시적인 클라이언트(102)로부터의 요청 메시지가 예시적인 WFE(110)에서 스로틀링될 수 있는지 여부에 대해 결정한다.
동작(702)에서, 예시적인 WFE(110)는 예시적인 클라이언트(102)로부터의 요청 메시지 내에서 HTTP 메시지 유형을 식별한다. HTTP 메시지 유형의 몇몇 예시로는 HTTP Post, HTTP Put 및 HTTP Get이 있다. 동작(704)에서, 예시적인 WFE(110)는 요청 메시지의 기능을 식별한다. 예를 들면, 요청 메시지는 크롤러 검색 요청의 일부분일 수 있다.
동작(706)에서, 예시적인 WFE(110)는 식별된 HTTP 메시지 유형을 갖는 요청 메시지가 스로틀링될 수 있는지 여부를 결정한다. 전형적으로 낮은 우선 순위를 갖는 HTTP 메시지 유형, 예를 들면 HTTP Get은 스로틀링될 수 있고, 높은 우선 순위를 갖는 HTTP 메시지 유형, 예를 들면 HTTP Post 및 HTTP Put은 스로틀링되지 않을 수 있다.
동작(708)에서, 예시적인 WFE(110)는 식별된 기능을 갖는 요청 메시지가 스로틀링되지 않을 수 있는지에 대해 결정한다. 해당 메시지가 높은 우선 순위를 갖는다는 것을 나타내는 기능 유형을 갖는 메시지는 스로틀링되지 않을 수 있다. 그와는 반대로, 높은 우선 순위를 갖는 것으로 식별되지 않는 기능 유형을 갖는 메시지는 전형적으로 스로틀링된다. 예를 들면, 크롤러 기능을 나타내는 메시지 유형은 전형적으로 스로틀링되는데, 왜냐하면 크롤러 검색은 자원 집약적일 수 있고, 예를 들면 HTTP Post 또는 HTTP Put 요청 등과 같이 높은 우선 순위를 갖는 요청 메시지를 방해하는 것이 바람직하지 않기 때문이다. 그러므로 크롤러 검색은 전형적으로 스로틀링없이는 완료가 불가능하다.
동작(710)에서, 식별된 메시지 유형이 스로틀링될 수 없다고 결정되면, 동작(712)에서 요청 메시지가 스로틀링될 수 없다는 결정을 내린다. 동작(710)에서, 식별된 메시지 유형이 스로틀링될 수 있다고 결정되고, 동작(714)에서 요청 메시지의 기능이 요청 메시지가 스로틀링될 수 없게 하는 것으로 결정되면, 동작(716)에서 요청 메시지가 스로틀링될 수 없다는 결정이 내려진다. 동작(710)에서, 식별된 메시지 유형이 스로틀링될 수 있다고 결정되고, 동작(714)에서 요청 메시지의 기능이 요청 메시지가 스로틀링되는 것을 방해하지 않는 것이라고 결정되면, 동작(718)에서 요청 메시지가 스로틀링될 수 있다는 결정이 내려진다.
몇몇 예시적인 실시예에서, 메시지 유형 및 메시지 기능은 동일하게 간주될 수 있고, 별개의 것으로 고려될 수 없다. 이러한 예시적인 실시예에서, 동작(702) 및 동작(704)은 결합될 수 있고, 동작(706) 및 동작(708)은 결합될 수 있고, 동작(710-716)은 결합될 수 있다.
도 8은 전자 컴퓨팅 장치(800) 상의 예시적인 물리적 구성 요소를 도시하는 블록도이다. 클라이언트 시스템(102, 104) 및 서버 시스템(108, 110, 112, 114, 116) 및/또는 클라이언트 시스템(102, 104) 및/또는 서버 시스템(108, 110, 112, 114, 116) 내의 전자 컴퓨팅 장치는 전자 컴퓨팅 장치(800)의 방식으로 구현될 수 있다. 도 8의 예시에 도시된 바와 같이, 전자 컴퓨팅 장치(800)는 메모리 유닛(801)을 포함한다. 메모리 유닛(801)은 데이터 및 인스트럭션을 저장할 수 있는 컴퓨터-판독 가능 데이터 저장 매체이다. 메모리 유닛(801)은 DRAM(dynamic random access memory), DDR SDRAM(double data rate synchronous dynamic random access memory), 지연 감소형 DRAM, DDR SDRAM, DDR3 SDRAM, 램버스(Rambus) RAM 또는 다른 유형의 컴퓨터-판독 가능 데이터 저장 매체를 포함하지만 이것으로 한정되지 않는 다양한 서로 다른 종류의 컴퓨터-판독 가능 데이터 저장 매체일 수 있다.
추가하여, 전자 컴퓨팅 장치(800)는 처리 유닛(802)을 포함한다. 제 1 예에서, 처리 유닛(802)은 처리 유닛(802)이 특정 기능을 제공하게 하는 소프트웨어 인스트럭션을 실행할 수 있다. 이러한 제 1 예에서, 처리 유닛(802)은 하나 이상의 처리 코어 및/또는 하나 이상의 개별 마이크로프로세서로서 구현될 수 있다. 예컨대, 이 제 1 예에서, 처리 유닛(802)은 하나 이상의 인텔 코어2(Intel Core2) 마이크로프로세서로 구현될 수 있다. 처리 유닛(802)은 x86 인스트럭션 집합, POWER 인스트럭션 집합, RISC 인스트럭션 집합, SPARC 인스트럭션 집합, IA-64 인스트럭션 집합, MIPS 인스트럭션 집합, 또는 다른 인스트럭션 집합 등과 같은 인스트럭션 집합 내의 인스트럭션을 실행할 수 있을 것이다. 제 2의 예에서, 처리 유닛(802)은 특정 기능을 제공하는 ASIC(application specific integrated circuit)로 구현될 수 있다. 제 3의 예에서, 처리 유닛(1002)은 ASIC를 이용하고, 소프트웨어 인스트럭션을 실행하는 것에 의해 특정 기능을 제공할 수 있다.
전자 컴퓨팅 장치(800)는 또한 클라이언트 시스템(102, 104) 또는 서버 시스템(108, 110, 112, 114, 116)이 디스플레이 장치(806)에 비디오 정보를 출력할 수 있게 하는 비디오 인터페이스(804)를 포함할 수 있다. 디스플레이 장치(806)는 다양한 다른 종류의 디스플레이 장치일 수 있다. 예컨대, 디스플레이 장치(806)는 음극선관(cathode-ray tube) 디스플레이, LCD 디스플레이 패널, 플라즈마 스크린 디스플레이 패널, 접촉 감지(touch-sensitive) 디스플레이 패널, LED 어레이(LED array) 또는 다른 종류의 디스플레이 장치일 수 있다.
추가하여, 전자 장치(800)는 비휘발성 저장 장치(808)를 포함한다. 비휘발성 저장 장치(808)는 데이터 및/또는 인스트럭션을 저장할 수 있는 컴퓨터-판독 가능 데이터 저장 매체이다. 비휘발성 저장 장치(808)는 다양한 다른 종류의 서로 다른 비휘발성 저장 장치일 수 있다. 예를 들면, 비휘발성 저장 장치(808)는 하나 이상의 하드 디스크 드라이브, 자기 테이프 드라이브, CD-ROM 드라이브, DVD-ROM 드라이브, 블루레이(Blu-Ray) 디스크 드라이브 또는 다른 종류의 비휘발성 저장 장치일 수 있다.
전자 컴퓨팅 장치(800)는 또한 클라이언트 시스템(102, 104) 및 서버 시스템(108, 110, 112, 114, 116)이 외부 구성 요소와 통신할 수 있게 하는 외부 구성 요소 인터페이스(810)를 포함한다. 도 8의 예시에서 도시된 바와 같이, 외부 구성 요소 인터페이스(810)는 입력 장치(812) 및 외부 저장 장치(814)와 통신한다. 전자 컴퓨팅 장치(800)의 한 구현에서, 외부 구성 요소 인터페이스(810)는 USB(Universal Serial bus) 인터페이스이다. 전자 컴퓨팅 장치(800)의 다른 구현에서, 전자 컴퓨팅 장치(800)는 전자 컴퓨팅 장치(800)가 입력 장치 및/또는 출력 장치와 통신하게 하는 다른 종류의 인터페이스를 포함할 수 있다. 예컨대, 전자 컴퓨팅 장치(800)는 PS/2 인터페이스를 포함할 수 있다. 입력 장치(812)는 키보드, 마우스, 트랙볼(trackballs), 스타일러스(stylus) 입력 장치, 터치 패드, 접촉 감지 디스플레이 장치, 접촉 감지 디스플레이 스크린 또는 다른 종류의 입력 장치를 포함하지만 이것으로 한정되지 않는 다양한 서로 다른 종류의 장치일 수 있다. 외부 저장 장치(814)는 자기 테이프, 플래시 메모리 모듈, 자기 디스크 드라이브, 광학 디스크 드라이브 및 다른 컴퓨터-판독 가능 데이터 저장 매체를 포함하는 다양한 서로 다른 종류의 컴퓨터-판독 가능 데이터 저장 매체일 수 있다.
추가하여, 전자 컴퓨팅 장치(800)는 전자 컴퓨팅 장치(800)가 네트워크(106)로 데이터를 전송할 수 있게 하고 네트워크(106)로부터 데이터를 수신할 수 있게 하는 네트워크 인터페이스(816)를 포함한다. 네트워크 인터페이스(816)는 다양한 서로 다른 종류의 네트워크 인터페이스일 수 있다. 예를 들면, 네트워크 인터페이스(816)는 이더넷(Ethernet) 인터페이스, 토큰-링(token-ring) 인터페이스, 광섬유 인터페이스, 무선 네트워크 인터페이스(예를 들면, WiFi, WiMax 등) 또는 다른 종류의 네트워크 인터페이스일 수 있다.
전자 컴퓨팅 장치(800)는 또한 전자 컴퓨팅 장치(800)의 서로 다른 구성 요소들 간에 통신을 용이하게 하는 통신 매체(818)를 포함한다. 통신 매체(818)는 PCI 버스, PCI 익스프레스(PCI Express) 버스, AGP(accelerated graphics port) 버스, 인피니밴드(Infmiband) 상호 접속, 직렬 ATA(Advanced Attachment) 상호 접속, 병렬 ATA 상호 접속, 파이버 채널(Fiber Channel) 상호 접속, USB 버스, SCSI(Small Computer System Interface) 인터페이스 또는 다른 종류의 통신 매체를 포함하지만 이것으로 한정되지 않는 하나 이상의 서로 다른 종류의 통신 매체를 포함할 수 있다.
몇몇 컴퓨터-판독 가능 데이터 저장 매체는 도 8의 예시(즉, 메모리 유닛(801), 비휘발성 저장 장치(808) 및 외부 저장 장치(814))에 도시되어 있다. 종합해서, 이러한 컴퓨터-판독 가능 데이터 저장 매체는 단일 로직 컴퓨터-판독 가능 데이터 저장 매체를 구성할 수 있다. 이 단일 로직 컴퓨터-판독 가능 데이터 저장 매체는 처리 유닛(802)에 의해 실행되는 인스트럭션을 저장할 수 있다. 상기 명세서에서 설명된 동작은 이 단일 로직 컴퓨터-판독 가능 데이터 저장 매체에 저장된 인스트럭션의 실행의 결과에 의한 것일 수 있다. 따라서, 이 설명에서 특정한 로직 모듈이 특정한 동작을 실행한다고 제시하면, 그 설명은 소프트웨어 모듈의 인스트럭션이 처리 유닛(802) 등과 같은 처리 유닛이 그 동작을 실행하게 한다는 것을 의미하는 것으로 해석될 수 있다.
상술된 여러 실시예는 오로지 예시를 목적으로 제공되었고, 제한하는 것으로 간주되어서는 안 된다. 본 명세서의 진정한 정신 및 범주를 벗어나지 않으면서 상술된 실시예에 대한 여러 변경 및 수정이 이루어질 수 있다.

Claims (15)

  1. 서버 컴퓨터(110)로서,
    하나 이상의 성능 모니터를 포함하는 성능 모니터 모듈(202)-상기 하나 이상의 성능 모니터는 각각 상기 서버 컴퓨터(110)의 시스템 변수를 모니터링함-과,
    상기 성능 모니터에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하는지 여부를 결정하고, 시스템 변수가 사전 결정된 임계점을 초과할 때 스로틀링 플래그(throttling flag)를 설정하는 스로틀링 로직 모듈(throttling logic module)(206)과,
    상기 하나 이상의 성능 모니터에 의해 모니터링되는 각각의 시스템 변수에 대한 사전 결정된 임계점을 저장하고, 하나 이상의 스로틀링 로직 변수를 더 저장하는 스로틀링 구성 모듈(204)을 포함하고,
    상기 스로틀링 로직 모듈(206)은 적어도 하나의 스로틀링 플래그가 사전 결정된 개수의 타임 스냅샷 각각에 대해 설정될 때, 상기 서버 컴퓨터(110)에서 스로틀링을 활성화하고,
    상기 스로틀링의 활성화는 상기 서버 컴퓨터(110)에 의해 수신된 요청 메시지의 처리를 제한하는
    서버 컴퓨터.
  2. 제 1 항에 있어서,
    상기 서버 컴퓨터(110)에 의해 수신된 요청 메시지의 처리에 대한 상기 제한은 요청 메시지의 거부를 포함하는
    서버 컴퓨터.
  3. 제 1 항에 있어서,
    상기 스로틀링 로직 모듈(206)은 상기 스로틀링 플래그와 연관된 상기 시스템 변수가 사전 결정된 임계점 아래로 떨어질 때 스로틀링 플래그를 비활성화하는
    서버 컴퓨터.
  4. 제 1 항에 있어서,
    상기 스로틀링 로직 모듈(206)은 적어도 하나의 스로틀링 플래그가 상기 사전 결정된 개수의 타임 스냅샷 각각에 대해 설정되지 않을 때 스로틀링을 비활성화하는
    서버 컴퓨터.
  5. 제 1 항에 있어서,
    하나 이상의 분류자(classifier)를 포함하는 분류 모듈(208)을 더 포함하고,
    상기 하나 이상의 분류자는 각각 요청 메시지의 하나 이상의 등급이 스로틀링될 수 있는지 아니면 스로틀링될 수 없는지를 식별하는
    서버 컴퓨터.
  6. 제 1 항에 있어서,
    상기 서버 컴퓨터에서 성능 데이터를 분석하여 상기 성능 모니터에 대한 상기 사전 결정된 임계점을 결정하는 성능 분석 모듈(210)을 더 포함하는
    서버 컴퓨터.
  7. 제 1 항에 있어서,
    상기 사전 결정된 임계점 및 상기 스로틀링 로직 변수가 상기 서버 컴퓨터 상의 인터페이스를 이용하여 구성될 수 있도록 허용하는 인터페이스 모듈(212)을 더 포함하는
    서버 컴퓨터.
  8. 서버 컴퓨터(110)에서 메시지를 스로틀링하는 방법으로서,
    상기 서버 컴퓨터(110)에서 클라이언트 컴퓨터(102)로부터 HTTP 요청 메시지를 수신하는 단계와,
    상기 서버 컴퓨터(110)에서 상기 HTTP 요청 메시지를 수신하는 것에 응답하여, 상기 서버 컴퓨터(110)에서 상기 요청 메시지를 허용할 것인지 여부를 결정하는 단계와,
    상기 서버 컴퓨터(110)에서 상기 요청 메시지를 거부하기로 결정이 내려졌을 때, 상기 클라이언트 컴퓨터(102, 104)에게 상기 요청 메시지가 상기 서버 컴퓨터(110)에서 거부되었다는 것을 통지하는 응답 메시지를 상기 클라이언트 컴퓨터(102)에게 전송하는 단계를 포함하고,
    상기 서버 컴퓨터(110)에서 상기 요청 메시지를 허용할 것인지 여부를 결정하는 상기 단계는
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되었는지 여부를 결정하는 단계와,
    상기 요청 메시지가 스로틀링될 수 있는지 결정하는 단계와,
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되지 않았다면, 상기 서버 컴퓨터(110)에서 상기 요청 메시지를 허용하는 단계와,
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되고, 상기 요청 메시지가 스로틀링될 수 없을 때, 상기 서버 컴퓨터(110)에서 상기 요청 메시지를 허용하는 단계와,
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되고, 상기 요청 메시지가 스로틀링될 수 있을 때, 상기 서버 컴퓨터(110)에서 상기 요청 메시지를 거부하는 단계를 포함하는
    메시지 스로틀링 방법.
  9. 제 8 항에 있어서,
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되었는지 여부를 결정하는 상기 단계는,
    제 1 타임 스냅샷에 대응하는 시간에, 상기 서버 컴퓨터(110) 상에서 하나 이상의 성능 모니터의 상태를 모니터링하는 단계와,
    상기 제 1 타임 스냅샷의 시간에 상기 서버 컴퓨터(110)에서 상기 하나 이상의 성능 모니터의 상태를 모니터링하는 것에 응답하여, 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과할 때, 제 1 스로틀링 플래그를 설정하는 단계와,
    하나 이상의 추가적인 타임 스냅샷에 대응하는 시간을 결정하는 단계-상기 하나 이상의 추가적인 타임 스냅샷은 각각 상기 제 1 타임 스냅샷으로부터 하나 이상의 사전 결정된 타임 간격에서 발생함-와,
    상기 하나 이상의 추가적인 타임 스냅샷 각각에 대응하는 시간에, 상기 서버 컴퓨터(110)에서 하나 이상의 성능 모니터의 상태를 모니터링하는 단계와,
    각각의 상기 하나 이상의 추가적인 타임 스냅샷의 시간에 상기 서버 컴퓨터(110)에서 상기 하나 이상의 성능 모니터의 상태를 모니터링하는 것에 응답하여, 상기 하나 이상의 추가적인 타임 스냅샷 각각에서 상기 하나 이상의 성능 모니터 중 적어도 하나가 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하였다고 결정하였는지 여부를 결정하는 단계와,
    각각의 상기 하나 이상의 추가적인 타임 스냅샷의 시간에 상기 서버 컴퓨터(110)에서 상기 하나 이상의 성능 모니터의 상태를 모니터링하는 것에 응답하여, 상기 하나 이상의 추가적인 타임 스냅샷 각각에서 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하였다고 결정될 때 추가적인 스로틀링 플래그를 설정하는 단계와,
    상기 하나 이상의 추가적인 타임 스냅샷 중 최종 타임 스냅샷의 시간에 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하였다고 결정될 때, 상기 제 1 스로틀링 플래그가 설정되었는지 여부 및 상기 하나 이상의 추가적인 타임 스냅샷 각각에 대해 스로틀링 플래그가 설정되었는지 여부를 결정하는 단계와,
    상기 하나 이상의 추가적인 타임 스냅샷 중 상기 최종 타임 스냅샷의 시간에 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하였다고 결정될 때 및 상기 제 1 스로틀링 플래그가 설정되었고, 스로틀링 플래그가 상기 하나 이상의 추가적인 타임 스냅샷 각각에 대해 설정되었다고 결정될 때, 상기 서버 컴퓨터(110)에 스로틀링을 활성화하는 단계를 포함하는
    메시지 스로틀링 방법.
  10. 제 8 항에 있어서,
    상기 요청 메시지가 스로틀링될 수 있는지 여부를 결정하는 상기 단계는,
    상기 요청 메시지의 HTTP 메시지 유형을 식별하는 단계와,
    상기 요청 메시지의 기능을 식별하는 단계와,
    상기 요청 메시지의 상기 식별된 HTTP 메시지 유형이 스로틀링될 수 있는 HTTP 메시지 유형인지 여부를 결정하는 단계와,
    상기 요청 메시지의 상기 식별된 기능이 스로틀링될 수 없는 기능인지 여부를 결정하는 단계와,
    상기 요청 메시지의 상기 식별된 HTTP 메시지 유형이 스로틀링될 수 없는 HTTP 메시지 유형일 때 또는 상기 요청 메시지의 상기 식별된 기능이 스로틀링될 수 없는 기능일 때, 상기 요청 메시지가 스로틀링될 수 없다고 결정하는 단계와,
    상기 요청 메시지의 상기 식별된 HTTP 메시지 유형이 스로틀링될 수 있는 HTTP 메시지 유형이고, 상기 요청 메시지의 상기 식별된 기능이 스로틀링될 수 없는 것으로 식별되지 않은 기능일 때, 상기 요청 메시지가 스로틀링될 수 있다고 결정하는 단계를 포함하는
    메시지 스로틀링 방법.
  11. 제 8 항에 있어서,
    상기 요청 메시지가 스로틀링될 수 있는지 여부를 결정하는 상기 단계는 하나 이상의 분류자를 사용하여 스로틀링되는 것으로 지정된 HTTP 메시지 유형을 식별하는 단계를 더 포함하는
    메시지 스로틀링 방법.
  12. 제 8 항에 있어서,
    상기 타임 스냅샷의 개수는 구성 가능한
    메시지 스로틀링 방법.
  13. 제 8 항에 있어서,
    상기 하나 이상의 성능 모니터 각각에 대한 상기 사전 결정된 임계점은 구성 가능한
    메시지 스로틀링 방법.
  14. 제 8 항에 있어서,
    제 1 타임 스냅샷과 제 2 타임 스냅샷 사이의 사전 결정된 시간 간격은 구성 가능한
    메시지 스로틀링 방법.
  15. 서버 컴퓨터(110)의 처리 유닛에 의해 실행될 때 상기 서버 컴퓨터(110)가 동작을 실행하게 하는 인스트럭션을 포함하는 컴퓨터-판독 가능 데이터 저장 매체로서,
    상기 동작은
    클라이언트 컴퓨터(102)로부터 HTTP 요청 메시지를 수신하는 동작과,
    상기 HTTP 요청 메시지를 수신하는 것에 응답하여, 상기 요청 메시지를 허용할 것인지 여부를 결정하는 동작과,
    상기 서버 컴퓨터(110)에서 상기 요청 메시지를 거부하는 것으로 결정이 내려질 때, 상기 요청 메시지가 상기 서버 컴퓨터(110)에서 거부되었다는 것을 상기 클라이언트 컴퓨터(102)에게 통지하는 응답 메시지를 상기 클라이언트 컴퓨터(102, 104)에게 전송하는 단계를 포함하고,
    상기 요청 메시지를 허용할 것인지 여부를 결정하는 상기 동작은
    제 1 타임 스냅샷에 대응하는 시간에, 상기 서버 컴퓨터(110)에서 하나 이상의 성능 모니터의 상태를 모니터링하는 동작과,
    상기 제 1 타임 스냅샷의 시간에 상기 서버 컴퓨터(110)에서 상기 하나 이상의 성능 모니터의 상태를 모니터링하는 것에 응답하여, 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과한다는 것이 결정될 때, 제 1 스로틀링 플래그를 설정하는 동작과,
    하나 이상의 추가적인 타임 스냅샷에 대응하는 시간을 결정하는 동작-상기 하나 이상의 추가적인 타임 스냅샷은 각각 상기 제 1 타임 스냅샷으로부터 하나 이상의 사전 결정된 시간 간격에서 발생함-과,
    상기 하나 이상의 추가적인 타임 스냅샷 각각에 대응하는 시간에, 상기 서버 컴퓨터(110)에서 하나 이상의 성능 모니터의 상태를 모니터링하는 동작과,
    상기 하나 이상의 추가적인 타임 스냅샷 각각의 시간에 상기 서버 컴퓨터(110)에서 하나 이상의 성능 모니터의 상태를 모니터링하는 것에 응답하여, 상기 하나 이상의 추가적인 타임 스냅샷 각각에서 상기 하나 이상의 성능 모니터 중 적어도 하나가 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과하였다는 것을 결정하는지 여부를 결정하는 동작과,
    상기 하나 이상의 추가적인 타임 스냅샷 각각의 시간에 상기 서버 컴퓨터(110)에서 상기 하나 이상의 성능 모니터의 상태를 모니터링하는 것에 응답하여, 상기 하나 이상의 추가적인 타임 스냅샷 각각에서 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과한다고 결정될 때, 추가적인 스로틀링 플래그를 설정하는 동작과,
    상기 하나 이상의 추가적인 타임 스냅샷 중 최종 타임 스냅샷의 시간에 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과한다고 결정될 때, 상기 제 1 스로틀링 플래그가 설정되었는지 여부 및 스로틀링 플래그가 상기 하나 이상의 추가적인 타임 스냅샷 각각에 대해 설정되었는지 여부를 결정하는 동작과,
    상기 하나 이상의 추가적인 타임 스냅샷 중 최종 타임 스냅샷의 시간에 상기 하나 이상의 성능 모니터 중 적어도 하나에 의해 모니터링되는 시스템 변수가 사전 결정된 임계점을 초과한다고 결정될 때 및 상기 제 1 스로틀링 플래그가 설정되고, 스로틀링 플래그가 상기 하나 이상의 추가적인 타임 스냅샷 각각에 대해 설정되었다고 결정될 때, 상기 서버 컴퓨터(110)에서 스로틀링을 활성화하는 동작과,
    상기 요청 메시지의 HTTP 메시지 유형을 식별하는 동작과,
    상기 요청 메시지의 기능을 식별하는 동작과,
    상기 요청 메시지의 식별된 HTTP 메시지 유형이 스로틀링될 수 있는 HTTP 메시지 유형인지 여부를 결정하는 동작과,
    상기 요청 메시지의 식별된 기능이 스로틀링될 수 없는 기능인지 여부를 결정하는 동작과,
    상기 요청 메시지의 식별된 HTTP 메시지 유형이 스로틀링될 수 없는 HTTP 메시지 유형일 때 또는 상기 요청 메시지의 식별된 기능이 스로틀링될 수 없는 기능일 때, 상기 요청 메시지가 스로틀링될 수 없다고 결정하는 동작과,
    상기 요청 메시지의 식별된 HTTP 메시지 유형이 스로틀링될 수 있는 HTTP 메시지 유형이고, 상기 요청 메시지의 식별된 기능이 스로틀링될 수 없는 것으로 식별되지 않은 기능일 때, 상기 요청 메시지가 스로틀링될 수 있다고 결정하는 동작과,
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되지 않을 때 상기 서버 컴퓨터(110)에서 상기 요청 메시지를 허용하는 동작과,
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되고 상기 요청 메시지가 스로틀링될 수 없을 때, 상기 서버 컴퓨터(110)에서 상기 요청 메시지를 허용하는 동작과,
    스로틀링이 상기 서버 컴퓨터(110)에서 활성화되고 상기 요청 메시지가 스로틀링될 수 있을 때, 상기 서버 컴퓨터(110)에서 상기 요청 메시지를 거부하는 동작을 포함하는
    컴퓨터-판독 가능 데이터 저장 매체.
KR1020117021577A 2009-03-18 2010-03-09 서버 컴퓨터, 메시지 스로틀링 방법 및 컴퓨터-판독 가능 데이터 저장 매체 KR20110128870A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/406,699 2009-03-18
US12/406,699 US20100241760A1 (en) 2009-03-18 2009-03-18 Web Front-End Throttling

Publications (1)

Publication Number Publication Date
KR20110128870A true KR20110128870A (ko) 2011-11-30

Family

ID=42738587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117021577A KR20110128870A (ko) 2009-03-18 2010-03-09 서버 컴퓨터, 메시지 스로틀링 방법 및 컴퓨터-판독 가능 데이터 저장 매체

Country Status (9)

Country Link
US (1) US20100241760A1 (ko)
EP (1) EP2409238A2 (ko)
JP (1) JP2012521042A (ko)
KR (1) KR20110128870A (ko)
CN (1) CN102356388B (ko)
BR (1) BRPI1007888A2 (ko)
RU (1) RU2011138226A (ko)
SG (1) SG173560A1 (ko)
WO (1) WO2010107628A2 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631109B2 (en) * 2009-05-12 2014-01-14 Hewlett-Packard Development Company, L.P. System and method for dynamic control of network management traffic loads
US20110208854A1 (en) * 2010-02-19 2011-08-25 Microsoft Corporation Dynamic traffic control using feedback loop
US8892632B2 (en) * 2010-06-04 2014-11-18 Microsoft Corporation Client-server interaction frequency control
US8539080B1 (en) * 2012-12-18 2013-09-17 Microsoft Corporation Application intelligent request management based on server health and client information
US9699625B2 (en) 2013-07-18 2017-07-04 International Business Machines Corporation Push notification middleware
US9706002B2 (en) 2013-07-18 2017-07-11 International Business Machines Corporation Push notification via file sharing service synchronization
US9780994B2 (en) 2013-07-18 2017-10-03 International Business Machines Corporation Notification normalization
CN105589783A (zh) * 2014-11-18 2016-05-18 广州市动景计算机科技有限公司 应用程序卡顿问题数据获取方法及装置
US11727997B2 (en) * 2017-07-07 2023-08-15 Micron Technology, Inc. RPMB improvements to managed NAND
US11294678B2 (en) 2018-05-29 2022-04-05 Advanced Micro Devices, Inc. Scheduler queue assignment
US11334384B2 (en) * 2019-12-10 2022-05-17 Advanced Micro Devices, Inc. Scheduler queue assignment burst mode
US11770436B2 (en) * 2020-07-29 2023-09-26 Citrix Systems, Inc. Web client with response latency awareness
US11948000B2 (en) 2020-10-27 2024-04-02 Advanced Micro Devices, Inc. Gang scheduling for low-latency task synchronization
US11842219B2 (en) * 2021-03-05 2023-12-12 EMC IP Holding Company LLC Automatic identification of computer agents for throttling

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
US6961341B1 (en) * 1996-07-02 2005-11-01 Microsoft Corporation Adaptive bandwidth throttling for network services
US6799276B1 (en) * 2000-06-26 2004-09-28 Sun Microsystems, Inc. Method and apparatus for restraining connection request stream associated with high volume burst client in a distributed network
US7231445B1 (en) * 2000-11-16 2007-06-12 Nortel Networks Limited Technique for adaptively distributing web server requests
US20020078382A1 (en) * 2000-11-29 2002-06-20 Ali Sheikh Scalable system for monitoring network system and components and methodology therefore
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7231455B2 (en) * 2002-01-14 2007-06-12 Sun Microsystems, Inc. System monitoring service using throttle mechanisms to manage data loads and timing
US7076672B2 (en) * 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
US7353538B2 (en) * 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
US20060200450A1 (en) * 2005-03-04 2006-09-07 Microsoft Corporation Monitoring health of actively executing computer applications
US7664841B2 (en) * 2005-12-07 2010-02-16 International Business Machines Corporation Selective activation of TCP/IP link and traffic
US7590149B1 (en) * 2006-11-10 2009-09-15 Juniper Networks, Inc. Load balancing with unequal routing metrics in a meshed overlay network
US7877644B2 (en) * 2007-04-19 2011-01-25 International Business Machines Corporation Computer application performance optimization system
JP5173388B2 (ja) * 2007-12-11 2013-04-03 キヤノン株式会社 情報処理装置および情報処理方法
US7840720B2 (en) * 2008-03-31 2010-11-23 International Business Machines Corporation Using priority to determine whether to queue an input/output (I/O) request directed to storage
US20090319440A1 (en) * 2008-04-07 2009-12-24 John Hancock Life Insurance Company (U.S.A.) System and method for providing retirement plan health reports
US8510469B2 (en) * 2009-08-31 2013-08-13 Cisco Technology, Inc. Measuring attributes of client-server applications
US8478451B2 (en) * 2009-12-14 2013-07-02 Intel Corporation Method and apparatus for dynamically allocating power in a data center
US8112062B2 (en) * 2009-12-22 2012-02-07 Cellco Partnership System and method for sending threshold notification in real time
US8200812B2 (en) * 2009-12-31 2012-06-12 International Business Machines Corporation Reducing workload on a backend system using client side request throttling
US9021046B2 (en) * 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US20110208854A1 (en) * 2010-02-19 2011-08-25 Microsoft Corporation Dynamic traffic control using feedback loop

Also Published As

Publication number Publication date
CN102356388B (zh) 2013-05-01
WO2010107628A2 (en) 2010-09-23
RU2011138226A (ru) 2013-03-27
WO2010107628A3 (en) 2011-01-13
SG173560A1 (en) 2011-09-29
JP2012521042A (ja) 2012-09-10
CN102356388A (zh) 2012-02-15
BRPI1007888A2 (pt) 2018-03-06
US20100241760A1 (en) 2010-09-23
EP2409238A2 (en) 2012-01-25

Similar Documents

Publication Publication Date Title
KR20110128870A (ko) 서버 컴퓨터, 메시지 스로틀링 방법 및 컴퓨터-판독 가능 데이터 저장 매체
EP3191960B1 (en) Methods and systems for aggregated multi-application behavioral analysis of mobile device behaviors
KR101789962B1 (ko) 이동 디바이스에서 거동 분석 동작들을 수행함으로써 애플리케이션 상태들을 추론하기 위한 방법 및 시스템
US9792169B2 (en) Managing alert profiles
US9823843B2 (en) Memory hierarchy monitoring systems and methods
WO2021051531A1 (zh) 处理多集群作业记录的方法、装置、设备及存储介质
US11231987B1 (en) Debugging of memory operations
US20170185454A1 (en) Method and Electronic Device for Determining Resource Consumption of Task
US7555621B1 (en) Disk access antiblocking system and method
KR20190113490A (ko) NVMe 컨트롤러에 의한 명령 인출 관리 방법 및 시스템
CN115004156A (zh) 实时多租户工作负载跟踪和自动节流
US20170212846A1 (en) Analyzing lock contention within a system
US11394629B1 (en) Generating recommendations for network incident resolution
US10356015B2 (en) Execution traces
US20160217126A1 (en) Text classification using bi-directional similarity
US10768853B2 (en) Information handling system with memory flush during shut down
US20160350657A1 (en) Cross-Module Behavioral Validation
US11550692B2 (en) Integrated event processing and policy enforcement
US10673937B2 (en) Dynamic record-level sharing (RLS) provisioning inside a data-sharing subsystem
US20110125726A1 (en) Smart algorithm for reading from crawl queue
KR102464688B1 (ko) 모니터링 결과의 이벤트 등급 결정 방법 및 장치
Zhang et al. Discovering indicators for congestion in DBMSs
US10331576B2 (en) Deadlock avoidance in a multi-processor computer system with extended cache line locking
JP6896035B2 (ja) 監視システム、監視SaaS提供装置、管理装置、及びプログラム
Kim et al. Measuring the optimality of Hadoop optimization

Legal Events

Date Code Title Description
SUBM Surrender of laid-open application requested