KR20210101111A - 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법 - Google Patents

실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20210101111A
KR20210101111A KR1020200055366A KR20200055366A KR20210101111A KR 20210101111 A KR20210101111 A KR 20210101111A KR 1020200055366 A KR1020200055366 A KR 1020200055366A KR 20200055366 A KR20200055366 A KR 20200055366A KR 20210101111 A KR20210101111 A KR 20210101111A
Authority
KR
South Korea
Prior art keywords
virtual server
role
usage
resource
roles
Prior art date
Application number
KR1020200055366A
Other languages
English (en)
Other versions
KR102309806B1 (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
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Publication of KR20210101111A publication Critical patent/KR20210101111A/ko
Priority to KR1020210129444A priority Critical patent/KR20210120963A/ko
Application granted granted Critical
Publication of KR102309806B1 publication Critical patent/KR102309806B1/ko

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

실시간 가상 서버 성능 데이터를 진단하기 위한 방법 및 시스템이 개시된다. 일 실시예에서, 예시적인 방법은 적어도 하나의 가상 서버에 제1 역할을 할당하기위한 요청을 수신하는 단계; 제1 역할을 가상 서버의 제1 리소스와 연관시키도록 가상 서버를 구성하는 단계; 가상 서버와 연관된 식별자 및 가상 서버에 할당된 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하는 단계; 제1 리소스 사용량의 표시를 수신하는 단계; 제1 리소스 사용량을 제1 역할에 맵핑하는 단계; 제1 리소스 사용량의 표시를 저장하는 단계; 제1 리소스 사용량의 변경을, 대응하는 제1 리소스 동작과 연관시키는 단계; 제1 리소스 사용량을 포함하도록 웹페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하는 단계; 사용자로부터 웹페이지에 대한 요청을 수신하는 단계; 및 웹페이지를 사용자 인터페이스로 전달하는 단계를 포함한다.

Description

실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법{SYSTEMS AND METHODS FOR CENTRALIZATION AND DIAGNOSTICS FOR LIVE VIRTUAL SERVER PERFORMANCE DATA}
본 개시는 일반적으로 라이브 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 컴퓨터화된 시스템 및 방법에 관한 것이다. 특히, 본 개시의 실시예는 프로세싱, 스토리지, 또는 통신 역할을 가상 서버에 할당하기 위한 요청을 수신하는 시스템에 관한 것이다. 시스템은 역할을 가상 서버의 리소스(resource)와 연관시키도록 가상 서버를 구성하고, 역할과 연관된 리소스 사용량 및 동작을 기록한다. 리소스 사용량은 추적되고 리소스 동작에 매핑된다. 이러한 방식으로, 단일 구성 관리 데이터베이스는 성능 변화를 신속하게 추적할 수 있고, 성능 변화를 야기할 수 있는 동작을 결정하여, 이에 따라 가상 서버 성능 이슈의 효율적인 진단 및 완화를 돕는다.
가상 서버의 확산은 적은 비용으로 대규모 컴퓨팅 리소스에 대한 액세스를 확대시켰다. 다양한 기업은 클라우드 컴퓨팅으로도 알려진 가상 서버 리소스를 제공한다. 또한, 회사, 대학 및 정부 기관은 웹사이트를 호스팅하고, 복잡한 컴퓨터 시뮬레이션을 수행하고, 대규모 데이터베이스를 저장하는 등 기타 서비스를 위해 가상 서버를 이용한다. 가상 서버는 클라이언트에게 안전하고 안정적이며 확장 가능한 컴퓨팅 리소스를 제공하여, 클라이언트가 서버 기능을 유지 관리하는 것보다 제품을 만드는 데 집중할 수 있게 한다.
그러나, 대량의 가상 서버 리소스를 소비하는 복잡한 조직은 종종 가상 서버 성능 또는 효율을 추적하는 데에 어려움을 갖는다. 예를 들어, 대형 회사는 각각 다른 가상 서버 리소스를 요구하는 여러 가지 다른 동작을 가질 수 있다. 관리 부서는 가상 서버 상에서 스토리지(storage)를 요구할 수 있는 반면, 연구 개발은 계산 모델링을 위한 프로세싱을 요구하고, 판매 부서는 웹사이트를 호스팅하기 위해 가상 서버가 필요할 수 있다.
또한, 조직 내의 여러 가지 다른 동작은 동일한 리소스를 소비한다. 고객 서비스 채팅과 온라인 상점 모두 웹사이트를 호스팅하는 가상 서버가 필요할 수 있다. 또는, 대학에서 컴퓨터 공학부는 기계 학습 알고리즘 훈련 및 몬테카를로 시뮬레이션(Monte Carlo simulation) 수행과 같은 다양한 계산 연구를 위한 프로세싱 능력을 요구할 수 있다. 그러나, 가상 서버 공급자는 종종 집계된 사용량이나 각 리소스, 또는 개별 가상 서버의 총 사용량만을 보고한다. 이로 인해, 복잡한 조직은, 실시간으로 채용된 가상 서버의 효율을 측정하기 어렵게 된다. 조직은 무엇이 가상 서버의 성능을 떨어뜨리는지 판단하지 못할 수 있으며, 리소스를 낭비하는 역할로 인해 불필요한 비용을 지불할 수 있다. 이는 조직 리소스의 낭비를 초래할 수 있으며, 가상 서버 상에서의 개별 역할에 대한 이슈를 진단하기 위한 상당한 시간과 비용이 소요된다.
따라서, 가상 서버 리소스를 요구하는 조직에서의 라이브 가상 서버 성능 데이터를 중앙 집중화하고 진단하기 위한 시스템 및 방법이 필요하다.
본 개시의 일 형태는 라이브 가상 서버 성능 데이터의 진단을 위한 컴퓨터-구현 시스템에 관한 것이다. 이 시스템은 명령들을 저장하는 메모리 및 그 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 명령들은: 역할을 가상 서버의 제1 리소스와 연관시키도록 가상 서버를 구성하고; 가상 서버와 연관된 식별자 및 가상 서버에 할당된 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하고; 가상 서버로부터 제1 리소스 사용량의 표시를 수신하고; 제1 리소스 사용량을 제1 역할에 매핑하고; 제1 리소스 사용량의 표시를 데이터 스토어에 저장하고; 제1 리소스 사용량의 변화를 대응하는 제1 리소스 동작과 연관시키고; 제1 역할에 매핑된 제1 리소스 사용량과 제1 리소스 동작을 포함하도록, 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하고; 사용자로부터 웹 페이지에 대한 요청을 수신하며; 그리고 디스플레이하기 위해 웹 페이지를 사용자 인터페이스로 전달한다.
본 개시의 다른 형태는 라이브 가상 서버 성능 데이터의 진단을 위한 컴퓨터-구현 방법에 관한 것이다. 이 방법은: 적어도 하나의 가상 서버에 제1 역할을 할당하기 위한 요청을 수신하고; 제1 역할을 가상 서버의 제1 리소스를 연관시키도록 가상 서버를 구성하고; 가상 서버와 연관된 식별자 및 가상 서버에 할당된 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하고; 가상 서버로부터 제1 리소스 사용량의 표시를 수신하고; 제1 리소스 사용량을 제1 역할에 매핑하고; 제1 리소스 사용량의 표시를 데이터 스토어에 저장하고; 제1 리소스 사용량의 변화를 대응하는 제1 리소스 동작과 연관시키고; 제1 역할에 매핑된 제1 리소스 사용량과 제1 리소스 동작을 포함하도록, 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하고; 사용자로부터 웹 페이지에 대한 요청을 수신하고; 그리고 디스플레이하기 위해 웹 페이지를 사용자 인터페이스로 전달하는 것;을 포함한다.
본 개시의 다른 형태는 라이브 가상 서버 성능 데이터의 진단을 위한 컴퓨터-구현 시스템에 관한 것이다. 이 시스템은: 명령들을 저장하는 메모리; 및 명령들을 실행하도록 구성된 적어도 하나의 프로세서;를 포함하고, 명령들은: 적어도 하나의 가상 서버에 제1 역할을 할당하기 위한 요청을 수신하고; 제1 역할을 가상 서버의 스토리지와 연관시키도록 가상 서버를 구성하고; 가상 서버와 연관된 식별자 및 가상 서버에 할당된 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하고; 가상 서버로부터 스토리지 사용량의 표시를 수신하고; 스토리지 사용량을 제1 역할에 매핑하고; 스토리지 사용량의 표시를 데이터 스토어에 저장하고; 스토리지 사용량의 표시가 임계 값의 초과를 표시하는지 결정하고, 이에 응답하여, 가상 서버의 스토리지를 증강시키기 위한 추가적인 스토리지를 구성하고; 스토리지 사용량의 변화를 대응하는 스토리지 동작과 연관시키고; 제1 역할에 매핑된 스토리지 사용량과 스토리지 동작을 포함하도록, 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하고; 사용자로부터 웹 페이지에 대한 요청을 수신하며; 그리고 디스플레이하기 위해 웹 페이지를 사용자 인터페이스로 전달한다.
다른 시스템, 방법, 및 컴퓨터 판독가능 매체가 또한 본 명세서에서 논의된다.
도 1은 개시된 실시예에 따른, 클라이언트 및 가상 서버를 포함하는 네트워크를 도시한다.
도 2는 개시된 실시예에 따른, 라이브 가상 서버 성능 진단 프로세스의 흐름도이다.
도 3은 개시된 실시예에 따른, 다수의 가상 서버의 역할 및 리소스의 연관을 도시한다.
이어서 첨부된 도면을 참조하여 자세하게 설명된다. 가능하면, 도면 및 상세한 설명에서 같은 참조 부호가 같거나 유사한 부분을 참조하도록 사용된다. 여기에 몇몇 예시적인 실시예가 설명되지만, 변경, 조정 및 다른 구현도 가능하다. 예를 들면, 도면 내의 구성 및 단계에 대해 교체, 추가, 또는 변경이 이루어질 수 있고, 여기에 설명된 예시적인 방법은 개시된 방법에 대해 단계를 교체, 순서 변경, 제거 또는 추가함으로써 변경될 수 있다. 따라서, 다음의 자세한 설명은 개시된 실시예 및 예시로 제한되는 것은 아니다. 대신에 본 발명의 적절한 범위는 청구범위에 의해 규정된다.
본 개시의 실시예는 가상 서버 리소스 사용량 메트릭 그레이딩을 위한 시스템 및 방법에 관한 것이다.
도 1은 가상 서버 리소스 사용량 메트릭 그레이딩 시스템(102)을 포함하는 네트워크(100)를 나타낸다. 시스템(102)은 적어도 하나의 프로세서(116), 데이터가 전송될 수 있게 하는 입출력(I/O) 디바이스(118), 및 적어도 하나의 메모리(120)를 포함한다. 메모리(120)는 IP 카테고리화 모듈을 동작시키기 위한 프로그램을 저장한다. 메모리(120)는 또한 그래픽 사용자 인터페이스(GUI)에 대한 명령을 저장할 수 있다.
또한, 프로세서(116)는 정보를 조작 또는 프로세싱할 수 있는 일반 또는 특정 전자 디바이스일 수 있다. 예를 들어, 프로세서는 임의의 수의 중앙 프로세싱 유닛(또는 "CPU"), 그래픽 프로세싱 유닛(또는 "GPU"), 광학 프로세서, 프로그래머블 로직 컨트롤러, 마이크로컨트롤러, 마이크로프로세서, 디지털 신호 프로세서, 지적 재산(IP) 코어, 프로그래머블 로직 어레이(PLA), 프로그래머블 어레이 로직(PAL), 일반 어레이 로직(GAL), 복합 프로그래머블 로직 디바이스(CPLD), 필드-프로그래머블 게이트 어레이(FPGA), 시스템 온 칩(SoC), 주문형 집적 회로(ASIC), 및 데이터 프로세싱이 가능한 임의의 유형의 회로의, 임의의 조합을 포함할 수 있다. 프로세서는 또한 네트워크를 통해 결합된 여러 머신 또는 디바이스에 걸쳐 분산된 하나 이상의 프로세서를 포함하는 가상 프로세서일 수 있다.
또한, 메모리(120)는 (예를 들어, 미도시된 버스를 통해) 프로세서에 의해 액세스 가능한 코드 및 데이터를 저장할 수 있는 일반 또는 특정 전자 디바이스일 수 있다. 예를 들어, 메모리는 임의의 수의 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 광 디스크, 자기 디스크, 하드 드라이브, 솔리드-스테이트 드라이브, 플래시 드라이브, 보안 디지털(SD) 카드, 메모리 스틱, 컴팩트 플래시(CF) 카드, 또는 임의의 유형의 저장 장치의, 임의의 조합을 포함할 수 있다. 코드는 운영 체제(OS) 및 특정 태스크를 위한 하나 이상의 애플리케이션 프로그램(또는 "앱")을 포함할 수 있다. 메모리는 또한 네트워크를 통해 결합된 여러 머신 또는 디바이스에 걸쳐 분산된 하나 이상의 메모리를 포함하는 가상 메모리일 수 있다.
시스템(102)은 구성 관리 데이터베이스(CMDB)(104)에 접속된다. CMDB(104)는 프로세서, I/O 디바이스, 및 메모리를 포함할 수 있다. CMDB(104)의 메모리는 프로세서 속도 및 메모리, 저장된 변수, 포트 및 IP 어드레스를 포함하는 접속 파라미터를 포함하는 필요한 리소스 할당과 같은, 가상 서버를 초기화하기 위한 구성 파일을 저장할 수 있다. CMDB(104)는 또한 가상 서버 리소스에 대한 역할에 대응하는 사용자 요청을 저장할 수 있다. 일부 실시예에서, 시스템(102)은 CMDB(104)로서 동시에 동작할 수 있다.
시스템(102)은 컴퓨터 네트워크(106)에 접속된다. 예를 들어, 컴퓨터 네트워크(106)는 임의의 수의 인터넷, 인트라넷, LAN(Local-Area network), WAN(Wide-Area network), MAN(Metropolitan-Area network), VPN(virtual private NetWork), (예를 들어, IEEE 802. 11a/b/g/n을 따르는) 무선 네트워크, 유선 네트워크, 임대 회선, 셀룰러 데이터 네트워크, 및 블루투스 접속, 적외선 접속, 또는 NFC(Near-Field Communication) 접속을 사용하는 네트워크의 임의의 조합을 포함할 수 있다.
시스템(102)은 직접 또는 컴퓨터 네트워크(106)를 통해, 클라이언트 디바이스(108)에 더 접속된다. 클라이언트 디바이스(108)는 노트북, 독립형 컴퓨터, 이동 전화 등일 수 있다. 사용자는 클라이언트 장치(108)를 통해 가상 서버 리소스 요청을 시스템(102)으로 전송할 수 있다. 일부 실시예에서, 시스템(102)은 단일 유닛이 사용자 요청을 수신하고 구성 파일을 생성 및 저장하도록 클라이언트 디바이스(108)를 포함할 수 있다. 대안적으로, 시스템(102) 및 클라이언트 디바이스(108)는 클라이언트 디바이스(108)와 시스템(102) 사이에서 교환되는 정보가 컴퓨터 네트워크(106)를 통과할 필요가 없도록 직접 접속될 수 있다.
또한, 시스템(102)은 가상 서버 제공자(110)와 통신한다. 제공자(110)는 예를 들어, 대여 또는 구매로 이용 가능한 서버 팜(server farm)과 같은, 복수의 서버 또는 범용 컴퓨터를 동작시키는 서비스일 수 있다. 일부 실시예에서, 제공자(110)는 프로세싱 시간, 프로세서 능력, 스토리지, 또는 대역폭과 같은 연결성에 대한 요금을 사용자에게 청구할 수 있다. 제공자(110)는 또한 장래의 액세스를 보증하기 위한 리테이너로서, 사용 레벨에 관계없이, 가상 서버로의 접속에 대한 설정 기본요금(baseline)을 사용자에게 청구할 수 있다. 제공자(110)는 다양한 능력을 갖는 서버 및 컴퓨터를 가질 수 있으며, 유지보수 요금을 청구하면서 사용자에게 시스템을 판매할 수 있다. 제공자(110)에 의해 가상 서버 리소스를 판매하는 기타 장치도 가능하다.
일부 실시예에서, 고객 디바이스(112)는 네트워크(106)를 통해 제공자(110)의 가상 서버에 의해 호스팅되는 서비스에 접속할 수 있다. 예를 들어, 회사는 제공자(110)에 의해 운영되는 서버를 사용하여 전자 상거래 웹사이트를 호스팅할 수 있다. 고객 디바이스(112)는 그 후에 네트워크(106)를 통해 전자 상거래 웹사이트에 접속할 수 있다. 이러한 방식으로, 고객은 회사에 의해 소유된 컴퓨터에 직접적으로 액세스하지 않고 회사의 웹사이트에 액세스할 수 있고, 대신에 제공자(110)에 의해 운영되는 가상 서버와 상호작용할 수 있다. 이는 회사가 유기 고용인으로 서버를 운영하지 않아도 되는 편리함을 제공할 수 있고, 회사가 필요로 하는 컴퓨팅 전력량에 대해서만 비용을 지불함으로써 비용을 감소시킬 수 있다. 대안적으로, 고객 디바이스(112)는 예를 들어, 대형 서버 팜을 동작시키지 않고 제공자(110)의 가상 서버에 의해 저장된 공통 데이터나 컴퓨팅 전력을 공유할 수 있는 연구 협력자일 수 있다.
도 2는 라이브 가상 서버 성능 진단 프로세스(200)의 단계를 도시한다. 시스템(102)은 프로세스(200)를 수행할 수 있다. 예를 들어, 프로세스(200)를 수행하기 위한 명령은 메모리(120) 상에 저장될 수 있으며 시스템(102)의 프로세서에 의해 구현될 수 있다. 프로세스(200)는 다음의 단계를 포함한다.
단계 202에서, 시스템(102)은 적어도 하나의 가상 서버에 제1 역할을 할당하기 위한 요청을 수신한다. 요청은 클라이언트 디바이스(108)로부터, 다른 프로세스에 의해 자동으로 또는 클라이언트 디바이스(108)를 통해 요청을 입력하는 사용자에 의해 발생될 수 있다. 제1 역할은, 예를 들어, 웹 사이트 호스팅, 시뮬레이션 프로세스, 또는 데이터 스토리지일 수 있다. 요청은 특정 가상 서버를 지정할 수 있다. 또한, 요청은 예를 들어, 프로세싱 시간, 프로세싱 전력, 스토리지, 또는 대역폭과 같은 요건을 포함할 수도 있다. 대안적으로, 사용자는 클라이언트 디바이스(108)를 사용하여 동작을 초기화할 수 있고, 시스템(102)은 동작을 이루기 위해 필요한 리소스를 결정할 수 있다.
단계 204에서, 시스템(102)은 제1 역할을 가상 서버의 제1 리소스와 연관시키도록 가상 서버를 구성한다. 역할을 리소스와 연관시키는 것은, 시스템(102)(또는 가상 서버)이 CMDB(104)로부터 IP 주소 및 포트(port)와 같은 데이터를 검색할 것을 요구할 수 있다. 대안적으로, 소프트웨어, 코드, 초기화 데이터 또는 파라미터, 또는 디지털 자산은 CMDB(104) 또는 다른 스토리지로부터 복사되어 가상 서버에 제공될 수 있다. 시스템(102)은 가상 서버에 대해 어느 리소스가 필요한지를 결정할 수 있다. 한편, 가상 서버는 요청에 포함된 역할에 기초하여 필요한 리소스를 결정할 수 있다.
단계 206에서, 시스템(102)은 가상 서버와 연관된 식별자 및 가상 서버에 할당된 제1 역할의 식별자를 포함하도록 데이터베이스를 수정한다. 데이터베이스는 예를 들어, CMDB(104), 메모리(120)이거나, 또는 가상 서버 상에 저장될 수 있다. 데이터베이스는 예를 들어 SQL 데이터베이스에 가상 서버 식별자 및 제1 역할 식별자를 기록할 수 있다. 제공자(110)는 예를 들어 창고 내의 서버 창고 위치 및 서버 스택(stack) 위치를 포함하는 영숫자 코드, MAC 주소, IP 주소, 또는 지리적 위치와 같은, 리소스를 호스팅하는 가상 서버에 대한 고유 식별자를 제공할 수 있다. 가상 서버 식별자는 또한 역할을 수행하는 가상 서버의 리소스를 지정할 수 있다.
단계 208에서, 시스템(102)은 제1 리소스 사용량의 표시를 가상 서버로부터 수신한다. 표시는 전력 소비량, 프로세싱 지속기간, 프로세서 동작, 대역폭 사용량, 스토리지 등일 수 있다. 또한, 표시들은 시간당 센트(cents per hour), 실행당 센트(cents per execution), 또는 부동 소수점 연산당 센트(cents per floating point operation)와 같은 단위당 비용(cost per unit)을 포함할 수 있다. 표시는 매월 1테라바이트당 센트(cents per terabyte)와 같은 단위당 시간당 비용(cost per unit per time)을 포함할 수 있다. 대안적으로, 단위당 비용은 제1 리소스 사용량의 표시와 별도로 획득될 수 있다. 일부 실시예에서, 표시는 가상 서버 리소스를 소비하는 특정 가상 서버 또는 계정을 식별하는 정보를 더 포함할 수 있다. 시스템(102)은 중요도가 낮은 리소스에 비해, 높은 중요도를 갖는 가상 서버로부터 표시를 더 빈번하게 수신할 수 있다. 예를 들어, 시스템(102)은 소비자 웹사이트를 제공하는 가상 서버로부터 표시를 1분에 한 번씩 수신할 수 있지만, 장기 이메일 아카이브 백업을 제공하는 가상 서버로부터는 표시를 15분에 한 번씩 수신할 수 있다. CMDB(104)는 시스템(102)이 표시를 수신하는 빈도를 결정하는데 있어서 사용하는, 상대적인 중요도에 관한 정보를 저장할 수 있다.
표시는 제공자(110)에 의해 동작되는 애플리케이션 프로그래밍 인터페이스(API)에 의해, 또는 가상 서버에 의해 직접 제공될 수 있다. API는, 예를 들어, 서버 헬스(server health)의 표시를 더 제공할 수 있다. 시스템(102)은 API에 액세스하기 위해 스큐 프로그래밍 라이브러리(Skew programming library)를 사용할 수 있고, 데이터의 관련 서브세트를 JSON 파일과 같은 단순화된 데이터 구조로 포맷할 수 있다. 일부 실시예에서, 시스템(102)은, 가상 서버 성능을 보고하는 제공자 API 및 가상 서버 성능의 검증 및 외부 테스트의 보고를 수행하는 제2 API와 같은 복수의 API로부터의 표시를 수신할 수 있다. 표시는 가상 서버 성능의 전체(overall) 측정치를 형성하도록 조합될 수 있다. 또한, 복수의 역할은 모두 단일 조직과 연관될 수 있다. 예를 들어, 조직은 가상 서버 리소스의 다양한 조합을 이용하는 많은 역할을 가질 수 있고, 시스템(102)은 복수의 역할을 수행하는 복수의 리소스에 대한 리소스 사용량의 표시를 수신할 수 있다. 일부 실시예에서, 시스템(102)은 가상 서버 리소스 성능에 대해 공개적으로 이용 가능한 메트릭과 같은, 조직 외부의 역할에 대한 리소스 사용량의 표시를 검색 또는 수신할 수 있다. 예를 들어, 시스템(102)은 가상 서버 리소스 성능 메트릭의 샘플을 확립하기 위해 가상 서버 식별자의 공지된 순열(permutations)을 사용하여 반복된 API 요청을 행할 수 있다.
단계 210에서, 시스템(102)은 제1 리소스 사용량을 제1 역할에 매핑한다. 예를 들어, 시스템(102)은 표시와 함께 제공된 가상 서버 식별자를 데이터베이스에 저장된 가상 서버 식별자와 상관시킬 수 있다. 데이터베이스에 저장된 가상 서버 식별자를 결정하는 것은, 단계 204에서 가상 서버와 연관된 제1 역할을 제공하여, 시스템(102)이 제1 리소스 비용을 제1 역할에 매핑할 수 있게 한다. 시스템(102)은 또한 소비된 리소스가 대응하는 역할 및 소유자를 갖도록 보장하기 위해 가상 서버 식별자를 감사(audit)할 수 있다. 예를 들어, 시스템(102)은 대응하는 역할 또는 역할 소유자가 없으면 리소스에 대한 액세스를 종료할 수 있다. 시스템(102)은 또한 통신 프로토콜, 액세스, 및 복제의 충돌을 해제하기 위해 가상 서버 네트워크 구성을 모니터링할 수 있다.
일부 실시예에서, 수신된 표시는 가상 서버 식별자를 포함하지 않는다. 시스템(102)은 그 후에 리소스 사용량을 제공자(110)로부터의 다른 정보에 매칭시킴으로써 가상 서버 식별자를 결정할 수 있다. 예를 들어, 수신된 표시는, 한 달에 대한 23테라바이트, 29테라바이트, 51테라바이트 및 81테라바이트 스토리지와 같은, 사용 목록만을 포함할 수 있다. 시스템(102)은 추가 단계에서 제공자 웹 사이트에 액세스하여 예를 들어, 어느 가상 서버가 그 달 동안 23테라바이트를 저장하였는지를 결정함으로써, 제1 역할에 대한 매핑이 가능하도록 가상 서버 식별자를 획득할 수 있다.
또한, 일부 상황에서, 시스템(102)은 가상 서버로부터 제2 리소스 사용량의 표시를 수신할 수 있다. 리소스 사용량을 데이터베이스 또는 제공자 정보와 같은 다른 리소스와 비교한 후에, 시스템(102)은 제2 리소스가 임의의 역할과 연관되어 있지 않은 것으로 결정하고, 제2 리소스에 대한 액세스를 종료할 수 있다. 예를 들어, 시스템(102)은 프로세싱 시간 5시간에 비용이 $0.20인 표시를 수신하고 가상 서버 식별자는 없을 수 있다. 제공자 정보를 분석한 후에, 시스템(102)은 $0.20의 비용에 대해 책임이 있는 가상 서버가 데이터베이스의 어떠한 역할과도 연결되어 있지 않은 것으로 결정할 수 있으며, 서버에 대한 액세스를 자동으로 종료할 수 있다. 예로서, 시스템(102)은 식별자 A623g.6을 갖는 가상 서버에 대한 2테라바이트의 스토리지 표시를 수신할 수 있다. 시스템(102)은 식별자 A623g.6을 갖는 서버에 대해 데이터베이스를 검색할 수 있지만 연관된 역할을 찾지 못할 수 있으며, 이는 예를 들어, 사용자가 역할을 중단하였고 더 이상 리소스를 요구하지 않는다는 것을 나타낸다. 그 후, 시스템(102)은 자동으로 제2 리소스로의 액세스를 종료할 수 있다. 일부 실시예에서, 시스템(102)은 연관된 역할을 갖지 않는 가상 서버 리소스에 서로 다른 역할을 자동으로 재할당할 수 있거나, 사용자에 의해 재할당을 위한 연관되지 않은 리소스를 플래그(flag)할 수 있다.
또한, 시스템(102)은 가상 서버 리소스 사용량의 라이브 업데이트를 수신 또는 요청할 수 있다. 예를 들어, 시스템(102)은 매 1분과 같이, 짧은 시간 프레임 상에서 가상 서버 리소스 사용량을 요청하기 위해 API를 이용할 수 있다. 이는 높은 시간 분해능을 갖는 데이터를 제공할 수 있으며, 이는 변화가 평균 리소스 사용량에 숨겨지지 않고, 오히려 시스템(102)이 변화가 발생할 때 이를 식별할 수 있게 한다. 예를 들어, 5분에 걸쳐 1기가바이트에서 100기가바이트로의 스토리지 사용량에서의 스파이크는 한 시간에 걸친 평균 스토리지 사용량을 나타내는 시간별 데이터에서 숨겨질 수 있다.
단계 212에서, 시스템(102)은 제1 리소스 사용량의 표시를 데이터 스토어에 저장한다. 데이터 스토어는 CMDB(104)에서 가상 서버, 또는 다른 시스템일 수 있다. 시스템(102)은, 예를 들어, 표시를 SQL 데이터베이스, JSON 파일, 텍스트 파일 등으로 체계화함으로써 표시의 검색을 가능하게 할 수 있고, Elasticsearch와 같은 검색 엔진 리소스에 데이터베이스를 제공하는 것을 가능하게 할 수 있다. 시스템(102)은 또한 복수의 리소스 사이에서 사용량의 비교를 위해 복수의 리소스 사용량의 표시를 저장할 수 있다. 시스템(102)은 예컨대 효율 메트릭을 결정하기 위해, 다른 역할 대비 어느 역할의 상대적 성능 메트릭을 결정하기 위해, 또는 이력 평균과 현재 리소스 성능을 비교하여 상대적 성능 메트릭을 결정하기 위해, 스토리지 전에 표시를 더 분석할 수 있다. 시스템(102)은 또한 저장된 표시로부터 베이스라인 리소스 사용량을 더 결정할 수 있다.
단계 214에서, 시스템(102)은 제1 리소스의 사용량의 변화를 대응하는 제1 리소스 동작과 연관시킨다. 변화는 베이스라인 대비 사용량의 변화일 수 있다. 예를 들어, 한 달과 같은 기간에 걸친 가상 서버의 평균 네트워크 사용이 20Mbps이면, 시스템(102)은 네트워크 사용량이 예를 들어, 베이스라인의 200%를 초과할 때 제1 리소스 사용량의 변화를 등록할 수 있다. 또한, 단계 208에서 획득된 높은 시간 분해능을 갖는 라이브 데이터를 사용하여, 시스템(102)은 언제 스파이크가 발생했는지를 결정할 수 있다. 시스템(102)은 또한 제1 리소스 사용량의 변화에 대응하는 제1 리소스 동작을 적시에 결정하기 위해, 가상 서버의 작업 로그, 또는 스케줄링된 작업을 포함하는 가상 서버의 구성 파일을 분석할 수도 있다. 그 후, 시스템(102)은 악의적 사용자(malicious user), 리소스 집약적인 사용자 활동, 또는 잘못된 구성(misconfiguration)과 같은 스파이크의 원인을 식별할 수 있다. 가상 서버 성능의 라이브 업데이트 및 높은 시간 분해능 데이터 없이는, 시스템(102)은 많은 동작중 어느 것이 리소스 스파이크의 원인임을 결정하지 못할 수 있어, 리소스 사용량의 비용 및 디버깅 동작의 비용을 증가시킨다.
또한, 시스템(102)은 복수의 역할과 연관된 복수의 리소스의 사용량의 표시를 수신할 수 있다. 시스템(102)은 또한 제1 역할과 연관된 효율 메트릭을 계산할 수 있으며, 효율 메트릭은 제1 역할과 연관된 리소스 사용량 및 복수의 역할과 연관된 리소스 사용량에 기초한다. 시스템(102)은 효율 메트릭의 변화를 대응하는 제1 리소스 동작과 연관시킬 수 있다. 효율 메트릭은 다른 역할의 성능 대비 제1 역할의 상대적인 성능을 반영하거나, 또는 복수의 역할에 걸쳐 유사한 가상 서버 리소스 성능 대비 가상 서버 리소스 성능을 반영할 수 있다. 예를 들어, 효율 메트릭은, 다른 역할 대비 일정 기간 동안 제1 역할의 CPU 사용량에 기초하는, CPU 효율 메트릭; 다른 역할 대비 일정 기간 동안 제1 역할의 메모리 사용량에 기초하는, 메모리 효율 메트릭; 또는 다른 역할 대비 일정 기간 동안 단위 통화당 프로세싱된 바이트 수에 기초하는, 네트워크 효율 메트릭; 중 적어도 하나를 포함할 수 있다. 일부 실시예에서, CPU 효율 메트릭, 메모리 효율 메트릭, 및 네트워크 효율 메트릭의 조합에 기초한 총 효율 메트릭이 사용될 수 있다. 총 효율 메트릭은 사용되지 않는 리소스를 생략할 수 있다. 또한, 가상 서버는 메트릭에 기초하여 서로에 대해 순위가 매겨질 수 있고, 다른 가상 서버에 비한 그 성능에 기초하여 가상 서버에 등급이 할당될 수 있다. 예를 들어, 다른 가상 서버의 네트워크 효율의 90%를 초과하는 네트워크 효율을 갖는 가상 서버는 A 등급을 받을 수 있는 반면, 다른 가상 서버의 90% 미만의 네트워크 효율을 갖는 가상 서버는 F 등급을 받을 수 있다.
단계 216에서, 시스템(102)은 라이브 서버 진단 데이터를 디스플레이하는 웹 페이지에 대한 요청이 수신되었는지를 결정한다. 단계 216가 "예"이면, 시스템(102)은 단계 220으로 진행하고, 제1 역할에 매핑된 제1 리소스 사용량 및 제1 리소스 동작을 포함하도록 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정한다. 시스템(102)은 디스플레이하기 위해 웹 페이지를 사용자 인터페이스로 더 전달한다. 예를 들어, 시스템(102)은 가상 서버에 대한 시간에 따른 네트워크 사용량의 라인 그래프를 나타내는 웹 페이지를 만들 수 있다. 웹 페이지는 또한, 예를 들어, 가상 서버 작업 로그의 발췌(excerpt), 실행 코드, 파일 이름, 또는 통신 IP 어드레스를 포함하는 텍스트 박스를 디스플레이할 수 있다. 텍스트 박스는 리소스 사용량 또는 효율 변화의 원인의 효율적인 식별을 돕기 위해 리소스 사용량의 스파이크 또는 감소 근처에 위치될 수 있다.
웹 페이지에 대한 요청이 없었다면, 단계 216은 "아니오"이고, 시스템(102)은 사용량 임계 값이 초과되었는지를 결정하기 위해 단계 218로 진행한다. 사용량 임계 값은 예를 들어 CMDB(104)에 저장될 수 있다. 제1 리소스 동작이 임계 값을 초과하여 단계 218이 "예"이면, 시스템(102)은 제1 리소스 동작을 수행하기 위해 제2 리소스를 구성할 수 있다. 이는 시스템(102)이 사용자를 위해 가상 서버 성능의 지속된 품질을 보장하게 할 수 있다. 예를 들어, 전자 상거래 업체가 온라인 판매를 수행하는 경우, 웹사이트를 호스팅하는 가상 서버는 트래픽의 급격한 증가를 경험할 수 있다. 이 증가는 더 느린 가상 서버 응답 시간 및 감소된 소비자 만족도를 초래할 수 있다. 이를 피하기 위해, 시스템(102)은 증가된 트래픽을 처리하는 것을 돕기 위해 추가적인 가상 서버를 자동으로 구성 및 스핀 업(spin up)할 수 있거나, 또는 우수한 성능을 갖는 서버에 역할을 이전(transfer)할 수 있다. 대안적으로, 트래픽이 감소할 때, 시스템(102)은 리소스 사용량 또는 효율이 임계 값 아래로 떨어졌다는 것을 결정할 수 있고, 대응하는 역할은 더 비용 효율적인 가상 서버 상의 리소스에 이전할 수 있다.
단계 216 또는 단계 218이 웹 페이지에 대한 요청이 수신되지 않고 사용량 임계 값이 초과되지 않아서 (또는 대안적으로, 사용량 임계 값이 충족되지 않아서) "아니오"이면, 시스템(102)은 제1 리소스 사용량의 추가 표시를 수신하기 위해 단계 208로 복귀할 수 있다. 또한, 단계 220에서 웹사이트를 수정하거나 단계 222에서 제2 리소스를 구성한 후에, 시스템(102)은 제1 리소스 사용량의 추가적인 표시를 수신하기 위해 단계 208로 복귀할 수 있다.
일부 실시예에서, 시스템(102)은 가상 서버와 연관된 개별 역할 또는 리소스의 성능을 분석하는 것이 아니라, 전체 유닛으로서 가상 서버의 성능을 분석할 수 있다. 예를 들어, 시스템(102)은 가상 서버의 리소스에 대응하는 표시의 조합으로서 총 가상 서버 사용량을 결정할 수 있다. 시스템(102)은 또한 총 가상 서버 사용량의 변화를 대응하는 역할 동작과 연관시킬 수 있다. 그 후, 시스템(102)은 총 가상 서버 사용량, 가상 서버 식별자, 및 대응하는 역할 동작을 포함하도록 웹 페이지 상에 프리젠테이션하기 위한 제2 사용자 인터페이스 요소를 수정할 수 있다. 이는 한 번에 전체 가상 서버의 분석을 가능하게 하여 어떤 역할 또는 리소스가 가상 서버 성능의 저하를 야기하는지를 결정하는데 도움을 줄 수 있다.
예를 들어, 가상 서버의 프로세싱을 이용하는 제1 역할은 제1 역할의 동작과 연관되지 않는 가상 서버 효율의 저하를 경험할 수 있다. 제1 역할을 독립하여 보는 것으로는, 시스템(102)은 저하의 원인을 진단하지 못할 수 있다. 그러나, 제2 역할은 동시에 가상 서버의 연결성을 사용할 수 있고, 제2 역할의 연결성 요건에서의 스파이크는 제1 역할의 프로세싱 효율의 저하를 야기할 수 있다. 시스템(102)은 전체 가상 서버 성능의 변화와 관련하여, 제2 역할의 연결성 동작을 포함하는 변화와 동시에 발생하는 모든 동작을 보여주기 위해 디스플레이 상의 요소를 수정할 수 있다. 또한, 시스템(102)은 제1 및 제2 역할 모두에 대한 성능을 개선하기 위해 제2 가상 서버를 구성할 수 있고, 제2 역할을 제2 가상 서버에 이전할 수 있다.
도 3은 여러 가상 서버의 역할 및 리소스의 예시적인 연관을 도시한다. 도 3은 2개의 조직, 판매 그룹(302) 및 연구 및 개발 그룹(304)을 도시한다. 판매 그룹(302)은 2개의 역할, 웹 호스팅 역할(306) 및 이메일 아카이브 역할(308)을 포함하는 반면, 연구 및 개발 그룹(304)은 뉴럴 네트워크 훈련 역할(310)을 포함한다.
판매 그룹(302)의 웹 호스팅 역할(306)은 프로세싱, 스토리지 및 연결성을 필요로 한다. 도 3에 도시된 바와 같이, 이들 3가지 요건은 여러 가상 서버 사이에 분배될 수 있다. 예를 들어, 가상 서버 A(312), 가상 서버 B(314), 및 가상 서버 C(316)는 웹 호스팅 역할(306)에 리소스를 제공한다. 이러한 방식으로, 단일 역할은 복수의 가상 서버로부터의 리소스를 이용할 수 있다. 일부 경우에서, 웹 호스팅 역할(306)이 가상 서버 A(312)의 스토리지 및 가상 서버 C(316)의 스토리지를 사용하는 듯이, 역할은 여러 서버의 동일한 리소스 타입을 사용할 수 있다. 이는 디바이스 제한 또는 다른 역할로부터의 경쟁 할당으로 인해, 단일 가상 서버가 역할의 필요를 충족시킬 수 없을 경우에 발생할 수 있다.
또한, 도 3은 가상 서버가 복수의 역할을 포함할 수 있고, 각 역할은 가상 서버의 적어도 하나의 리소스와 연관된다는 것을 도시한다. 예를 들어, 가상 서버 B(314)는 뉴럴 네트워크 훈련 역할(310)에 프로세싱을, 이메일 아카이브 역할(308)에 스토리지를, 및 웹 호스팅 역할(306)에 연결성을 제공한다. 또한, 개별 리소스는 복수의 역할과 연관될 수 있다. 예를 들어, 가상 서버 A(312)의 스토리지는 웹 호스팅 역할(306) 및 이메일 아카이브 역할(308)과 연관된다.
이러한 방식으로, 가상 서버는 복수의 역할을 포함할 수 있고, 각 역할은 가상 서버의 적어도 하나의 리소스와 연관된다. 또한, 가상 서버의 적어도 하나의 리소스는 복수의 역할과 연관될 수 있다. 이는 사용자들이 여러 역할을 단일 가상 서버 상으로 조합하여 가상 서버 리소스의 사용량을 최대화하는 것을 허용할 수 있다. 또한, 단일 역할이 다수의 서로 다른 서버 사이에 분배될 수 있음으로써, 단일 서버가 제공할 수 있는 것보다 더 큰 리소스에 액세스되거나, 또는 그 역할에 맞춰졌으나 단일 서버에서 이용 가능하지 않은 특정 리소스가 선택되며, 예를 들어 고비용의 고전력 프로세서를 저렴한 소형 스토리지 기능과 혼합할 수 있다. 사용자는 이에 의해 효율을 최대화하고 비용을 감소시킬 수 있다.
본 개시의 예시적인 실시예로서, 라이브 가상 서버 성능 데이터의 진단을 위한 컴퓨터-구현 시스템은, 명령들을 저장하는 메모리 및 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함한다. 명령들은, 시스템이 적어도 하나의 가상 서버에 제1 역할을 할당하기 위한 요청을 수신하게 하고; 제1 역할을 가상 서버의 스토리지와 연관시키도록 가상 서버를 구성하고; 그리고 가상 서버와 연관된 식별자 및 가상 서버에 할당된 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하게 한다. 시스템은 또한, 가상 서버로부터, 스토리지 사용량의 표시를 수신하고; 스토리지 사용량을 제1 역할에 매핑하고; 스토리지 사용량의 표시를 데이터 스토어에 저장하고; 스토리지 사용량의 표시가 임계 값의 초과를 표시하는지 결정하고, 이에 응답하여, 가상 서버의 스토리지를 증강시키기 위한 추가적인 스토리지를 구성하도록 구성된다. 시스템은 스토리지 사용량의 변화를 대응하는 스토리지 동작과 연관시키고; 제1 역할에 매핑된 스토리지 사용량과 스토리지 동작을 포함하도록, 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하고; 사용자로부터 웹 페이지에 대한 요청을 수신하며; 그리고 디스플레이하기 위해 웹 페이지를 사용자 인터페이스로 전달하도록 더 구성된다.
본 개시는 특정 실시예를 참조하여 도시되고 설명되었지만, 본 개시는 다른 환경에서 변경없이 실시될 수 있음을 이해할 것이다. 전술한 설명은 예시의 목적으로 제시되었다. 이는 비-제한적이며 개시된 정확한 양상이나 실시예로 한정되지 않는다. 변형예 및 적응예는 개시된 실시예의 발명의 설명 및 실시에 대한 고려로부터 통상의 기술자에게 명백할 것이다. 또한, 개시된 실시예의 양상이 메모리에 저장되는 것으로서 설명되었지만, 통상의 기술자는 이들 양상이 또한 2차 저장 디바이스(예를 들어, 하드 디스크나 CD ROM, 또는 다른 형태의 RAM이나 ROM, USB 매체, DVD, Blu-ray, 또는 기타 광 드라이브 매체)와 같은 다른 유형의 컴퓨터 판독 가능한 매체에 저장될 수 있는 것을 이해할 것이다.
기재된 설명 및 개시된 방법에 기초하는 컴퓨터 프로그램은 숙련된 개발자의 기술 범위 내에 있다. 다양한 프로그램 또는 프로그램 모듈이 통상의 기술자에게 알려진 임의의 기술을 사용하여 만들어질 수 있으며, 또는 기존의 소프트웨어와 관련되어 설계될 수 있다. 예를 들어, 프로그램 섹션 또는 프로그램 모듈은 .Net Framework, .Net Compact Framework(및 Visual Basic, C 등과 같은 관련 언어), Java, C++, Objective-C, HTML, HTML/AJAX 조합, XML 또는 Java 애플릿이 포함된 HTML으로 또는 이에 의하여 설계될 수 있다.
더 나아가, 예시적인 실시예가 본 명세서에서 설명되었지만, 등가 요소, 변형물, 생략물, (예를 들어, 다양한 실시예에 걸친 양상의) 조합물, 적응물 및/또는 대체물을 갖는 임의 및 모든 실시예의 범위가 본 개시에 기초하여 통상의 기술자에게 이해될 것이다. 청구 범위에서의 한정은 청구 범위에서 사용된 언어에 기초하여 광범위하게 해석되어야 하며, 본 명세서 또는 본 출원의 진행 중에 설명된 예시들로 제한되지 않는다. 예시는 비-배타적으로 해석되어야 한다. 이에 더하여, 개시된 방법의 단계는 단계의 재정렬 및/또는 단계의 삽입 또는 삭제를 포함하는 임의의 방식으로 변형될 수 있다. 따라서, 상세한 설명과 예시는 예시로서만 고려되어야 하고, 진정한 범위와 사상은 이하의 청구 범위 및 등가물의 전체 범위에 의해 나타내지는 것으로 의도된다.

Claims (20)

  1. 라이브 가상 서버 성능 데이터의 진단을 위한 컴퓨터-구현 시스템으로서, 시스템은:
    명령들을 저장하는 메모리; 및
    상기 명령들을 실행하도록 구성된 적어도 하나의 프로세서;를 포함하고,
    상기 명령들은:
    적어도 하나의 가상 서버에 제1 역할을 할당하기 위한 요청을 수신하고;
    상기 제1 역할을 상기 가상 서버의 제1 리소스와 연관시키도록 상기 가상 서버를 구성하고;
    상기 가상 서버와 연관된 식별자 및 상기 가상 서버에 할당된 상기 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하고;
    상기 가상 서버로부터 제1 리소스 사용량의 표시를 수신하고;
    상기 제1 리소스 사용량을 상기 제1 역할에 매핑하고;
    상기 제1 리소스 사용량의 표시를 데이터 스토어에 저장하고;
    상기 제1 리소스 사용량의 변화를 대응하는 제1 리소스 동작과 연관시키고;
    상기 제1 역할에 매핑된 상기 제1 리소스 사용량과 상기 제1 리소스 동작을 포함하도록, 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하고;
    사용자로부터 상기 웹 페이지에 대한 요청을 수신하며; 그리고
    디스플레이하기 위해 상기 웹 페이지를 사용자 인터페이스로 전달하는, 시스템.
  2. 청구항 1에 있어서,
    상기 명령들은 상기 적어도 하나의 프로세서로 하여금,
    상기 제1 리소스 사용량이 임계 값을 초과할 때 상기 제1 리소스 동작을 수행하기 위한 제2 리소스를 구성하도록 더 구성되는, 시스템.
  3. 청구항 1에 있어서,
    상기 가상 서버와 연관된 상기 식별자는 IP 어드레스인, 시스템.
  4. 청구항 1에 있어서,
    상기 가상 서버는 복수의 역할을 포함하고, 각각의 역할은 상기 가상 서버의 적어도 하나의 리소스와 연관되며; 그리고
    상기 가상 서버의 적어도 하나의 리소스는 복수의 역할과 연관되는, 시스템.
  5. 청구항 1에 있어서,
    상기 표시는 애플리케이션 프로그래밍 인터페이스(API)에 의해 제공되는, 시스템.
  6. 청구항 1에 있어서,
    상기 명령들은 상기 적어도 하나의 프로세서로 하여금,
    복수의 역할과 연관된 복수의 리소스의 사용량의 표시를 수신하고; 그리고
    상기 제1 역할과 연관된 효율 메트릭을 계산하도록 더 구성되며,
    상기 효율 메트릭은 상기 제1 역할과 연관된 리소스 사용량 및 상기 복수의 역할과 연관된 리소스 사용량에 기초하는, 시스템.
  7. 청구항 6에 있어서,
    상기 명령들은 상기 적어도 하나의 프로세서로 하여금,
    상기 효율 메트릭의 변화를 대응하는 제1 리소스 동작과 연관시키도록 더 구성되는, 시스템.
  8. 청구항 6에 있어서,
    상기 효율 메트릭은,
    다른 역할 대비 일정 기간 동안의 상기 제1 역할의 CPU 사용량에 기초하는, CPU 효율 메트릭;
    다른 역할 대비 일정 기간 동안의 상기 제1 역할의 메모리 사용량에 기초하는, 메모리 효율 메트릭; 또는
    다른 역할 대비 일정 기간 동안의 단위 통화당 프로세싱된 바이트 수에 기초하는, 네트워크 효율 메트릭; 중 적어도 하나를 포함하는, 시스템.
  9. 청구항 1에 있어서,
    상기 명령들은 상기 적어도 하나의 프로세서로 하여금,
    상기 가상 서버의 리소스들에 대응하는 표시들의 조합으로서 총 가상 서버 사용량을 결정하고;
    상기 총 가상 서버 사용량의 변화를 대응하는 역할 동작과 연관시키고; 그리고
    상기 총 가상 서버 사용량, 가상 서버 식별자, 및 대응하는 역할 동작을 포함하도록 웹 페이지 상에 프리젠테이션하기 위한 제2 사용자 인터페이스 요소를 수정도록 더 구성되는, 시스템.
  10. 청구항 8에 있어서,
    상기 효율 메트릭은 상기 CPU 효율 메트릭, 상기 메모리 효율 메트릭, 및 상기 네트워크 효율 메트릭의 조합에 기초한 총 효율 메트릭을 포함하는, 시스템.
  11. 라이브 가상 서버 성능 데이터의 진단을 위한 컴퓨터-구현 방법으로서, 방법은:
    적어도 하나의 가상 서버에 제1 역할을 할당하기 위한 요청을 수신하고;
    상기 제1 역할을 상기 가상 서버의 제1 리소스를 연관시키도록 상기 가상 서버를 구성하고;
    상기 가상 서버와 연관된 식별자 및 상기 가상 서버에 할당된 상기 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하고;
    상기 가상 서버로부터 제1 리소스 사용량의 표시를 수신하고;
    상기 제1 리소스 사용량을 상기 제1 역할에 매핑하고;
    상기 제1 리소스 사용량의 표시를 데이터 스토어에 저장하고;
    상기 제1 리소스 사용량의 변화를 대응하는 제1 리소스 동작과 연관시키고;
    상기 제1 역할에 매핑된 상기 제1 리소스 사용량과 상기 제1 리소스 동작을 포함하도록, 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하고;
    사용자로부터 상기 웹 페이지에 대한 요청을 수신하고; 그리고
    디스플레이하기 위해 상기 웹 페이지를 사용자 인터페이스로 전달하는 것;을 포함하는, 방법.
  12. 청구항 11에 있어서,
    상기 제1 리소스 사용량이 임계 값을 초과할 때 상기 제1 리소스 동작을 수행하기 위한 제2 리소스를 구성하는 것을 더 포함하는, 방법.
  13. 청구항 11에 있어서,
    상기 가상 서버와 연관된 상기 식별자는 IP 어드레스인, 방법.
  14. 청구항 11에 있어서,
    상기 가상 서버는 복수의 역할을 포함하고, 각각의 역할은 상기 가상 서버의 적어도 하나의 리소스와 연관되며; 그리고
    상기 가상 서버의 적어도 하나의 리소스는 복수의 역할과 연관되는, 방법.
  15. 청구항 11에 있어서,
    상기 표시는 애플리케이션 프로그래밍 인터페이스(API)에 의해 제공되는, 방법.
  16. 청구항 11에 있어서,
    복수의 역할과 연관된 복수의 리소스의 사용량의 표시를 수신하고; 그리고
    상기 제1 역할과 연관된 효율 메트릭을 계산하는 것을 더 포함하며,
    상기 효율 메트릭은 상기 제1 역할과 연관된 리소스 사용량 및 상기 복수의 역할과 연관된 리소스 사용량에 기초하는, 방법.
  17. 청구항 16에 있어서,
    상기 효율 메트릭에의 변화를 대응하는 제1 리소스 동작과 연관시키는 것을 더 포함하는, 방법.
  18. 청구항 16에 있어서,
    상기 효율 메트릭은,
    다른 역할 대비 일정 기간 동안 상기 제1 역할의 CPU 사용량에 기초하는, CPU 효율 메트릭;
    다른 역할 대비 일정 기간 동안 상기 제1 역할의 메모리 사용량에 기초하는, 메모리 효율 메트릭; 또는
    다른 역할 대비 일정 기간 동안 단위 통화당 프로세싱된 바이트 수에 기초하는, 네트워크 효율 메트릭; 중 적어도 하나를 포함하는, 방법.
  19. 청구항 11에 있어서,
    상기 가상 서버의 리소스들에 대응하는 표시들의 조합으로서 총 가상 서버 사용량을 결정하고;
    상기 총 가상 서버 사용량의 변화를 대응하는 역할 동작과 연관시키고; 그리고
    상기 총 가상 서버 사용량, 가상 서버 식별자, 및 대응하는 역할 동작을 포함하도록 웹 페이지 상에 프리젠테이션하기 위한 제2 사용자 인터페이스 요소를 수정하는 것;을 더 포함하는, 방법.
  20. 라이브 가상 서버 성능 데이터의 진단을 위한 컴퓨터-구현 시스템으로서, 시스템은:
    명령들을 저장하는 메모리; 및
    상기 명령들을 실행하도록 구성된 적어도 하나의 프로세서;를 포함하고,
    상기 명령들은:
    적어도 하나의 가상 서버에 제1 역할을 할당하기 위한 요청을 수신하고;
    상기 제1 역할을 상기 가상 서버의 스토리지와 연관시키도록 상기 가상 서버를 구성하고;
    상기 가상 서버와 연관된 식별자 및 상기 가상 서버에 할당된 상기 제1 역할의 식별자를 포함하도록 데이터베이스를 수정하고;
    상기 가상 서버로부터 스토리지 사용량의 표시를 수신하고;
    상기 스토리지 사용량을 상기 제1 역할에 매핑하고;
    상기 스토리지 사용량의 표시를 데이터 스토어에 저장하고;
    상기 스토리지 사용량의 표시가 임계 값의 초과를 표시하는지 결정하고, 이에 응답하여, 상기 가상 서버의 상기 스토리지를 증강시키기 위한 추가적인 스토리지를 구성하고;
    상기 스토리지 사용량의 변화를 대응하는 스토리지 동작과 연관시키고;
    상기 제1 역할에 매핑된 상기 스토리지 사용량과 상기 스토리지 동작을 포함하도록, 웹 페이지 상에 프리젠테이션하기 위한 사용자 인터페이스 요소를 수정하고;
    사용자로부터 상기 웹 페이지에 대한 요청을 수신하며; 그리고
    디스플레이하기 위해 상기 웹 페이지를 사용자 인터페이스로 전달하는, 시스템.
KR1020200055366A 2020-02-07 2020-05-08 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법 KR102309806B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210129444A KR20210120963A (ko) 2020-02-07 2021-09-30 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/784,333 US10817329B1 (en) 2020-02-07 2020-02-07 Systems and methods for centralization and diagnostics for live virtual server performance data
US16/784,333 2020-02-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210129444A Division KR20210120963A (ko) 2020-02-07 2021-09-30 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210101111A true KR20210101111A (ko) 2021-08-18
KR102309806B1 KR102309806B1 (ko) 2021-10-08

Family

ID=72944783

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200055366A KR102309806B1 (ko) 2020-02-07 2020-05-08 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법
KR1020210129444A KR20210120963A (ko) 2020-02-07 2021-09-30 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210129444A KR20210120963A (ko) 2020-02-07 2021-09-30 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법

Country Status (5)

Country Link
US (2) US10817329B1 (ko)
KR (2) KR102309806B1 (ko)
SG (1) SG11202104598XA (ko)
TW (2) TW202223641A (ko)
WO (1) WO2021156669A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11665106B2 (en) * 2021-09-07 2023-05-30 Hewlett Packard Enterprise Development Lp Network-aware resource allocation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090059851A (ko) * 2007-12-07 2009-06-11 한국전자통신연구원 가상 서버 환경에서의 서비스 수준 관리 시스템 및 그 방법
KR101116615B1 (ko) * 2007-03-28 2012-03-07 삼성전자주식회사 자바 가상 머신 상에서 이뤄지는 애플리케이션 및 스레드의자원 관리 시스템 및 방법
KR20160043706A (ko) * 2014-10-14 2016-04-22 삼성에스디에스 주식회사 가상 머신 스케일링 장치 및 그 방법
KR20160122959A (ko) * 2015-04-15 2016-10-25 삼성에스디에스 주식회사 클라우드 관리 시스템 및 방법
KR20170014804A (ko) * 2015-07-31 2017-02-08 주식회사 케이티 클라우드 서비스를 위한 가상 머신 프로비저닝 시스템 및 방법
WO2020017844A1 (ko) * 2018-07-19 2020-01-23 나무기술 주식회사 클라우드 플랫폼에서 복수의 클러스터 및 어플리케이션을 모니터링하는 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933198B1 (en) * 2007-05-30 2011-04-26 Foundry Networks, Llc Virtual router failover dampening
LU91543B1 (en) 2009-03-24 2010-09-27 Wurth Paul Sa Tuyere stock arrangement for a blast furnace and method for operating a blast furnace
US8856783B2 (en) 2010-10-12 2014-10-07 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics
US8862914B2 (en) 2010-02-26 2014-10-14 Microsoft Corporation Virtual machine power consumption measurement and management
WO2012031112A2 (en) * 2010-09-03 2012-03-08 Time Warner Cable, Inc. Methods and systems for managing a virtual data center with embedded roles based access control
US20120117531A1 (en) * 2010-11-08 2012-05-10 Microsoft Corporation Instantiating a Software Development Environment From an Environment Class
US8984414B2 (en) * 2011-11-07 2015-03-17 Google Inc. Function extension for browsers or documents
CN103827899B (zh) 2011-11-18 2017-06-23 英派尔科技开发有限公司 数据中心资源分配
CN102594869A (zh) 2011-12-30 2012-07-18 深圳市同洲视讯传媒有限公司 一种在云计算环境下动态分配资源的方法及装置
US8954387B2 (en) 2012-06-07 2015-02-10 Vmware, Inc. Tracking changes that affect performance of deployed applications
US9122780B2 (en) 2012-06-20 2015-09-01 Intel Corporation Monitoring resource usage by a virtual machine
KR101430649B1 (ko) 2012-10-31 2014-08-18 삼성에스디에스 주식회사 클라우드 환경 내의 데이터 분석 서비스 제공 시스템 및 방법
US9229611B2 (en) * 2013-03-05 2016-01-05 Oracle International Corporation Automatic management of client data consistency
CN103685563A (zh) * 2013-12-31 2014-03-26 湖南师范大学 一种基于移动通信网络的云计算系统及其资源管理方法
CN105183563B (zh) 2015-09-17 2018-07-24 哈尔滨工程大学 一种面向关键任务计算机的cpu资源动态自配置方法
GB201702450D0 (en) * 2017-02-15 2017-03-29 Blue Prism Ltd System for optimising distribution of processing an automated process
TW201916637A (zh) * 2017-09-22 2019-04-16 旭珈有限公司 雲端部署系統
US10855580B2 (en) * 2019-03-27 2020-12-01 Amazon Technologies, Inc. Consistent route announcements among redundant controllers in global network access point
CN110175102A (zh) 2019-05-29 2019-08-27 中国海洋石油集团有限公司 一种信息管理系统
JP7229888B2 (ja) * 2019-09-13 2023-02-28 株式会社日立製作所 リソースの利用効率の最適化を支援するシステム及び方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101116615B1 (ko) * 2007-03-28 2012-03-07 삼성전자주식회사 자바 가상 머신 상에서 이뤄지는 애플리케이션 및 스레드의자원 관리 시스템 및 방법
KR20090059851A (ko) * 2007-12-07 2009-06-11 한국전자통신연구원 가상 서버 환경에서의 서비스 수준 관리 시스템 및 그 방법
KR20160043706A (ko) * 2014-10-14 2016-04-22 삼성에스디에스 주식회사 가상 머신 스케일링 장치 및 그 방법
KR20160122959A (ko) * 2015-04-15 2016-10-25 삼성에스디에스 주식회사 클라우드 관리 시스템 및 방법
KR20170014804A (ko) * 2015-07-31 2017-02-08 주식회사 케이티 클라우드 서비스를 위한 가상 머신 프로비저닝 시스템 및 방법
WO2020017844A1 (ko) * 2018-07-19 2020-01-23 나무기술 주식회사 클라우드 플랫폼에서 복수의 클러스터 및 어플리케이션을 모니터링하는 방법

Also Published As

Publication number Publication date
US20210247995A1 (en) 2021-08-12
KR20210120963A (ko) 2021-10-07
SG11202104598XA (en) 2021-09-29
US10817329B1 (en) 2020-10-27
TW202131179A (zh) 2021-08-16
TWI760022B (zh) 2022-04-01
US11544098B2 (en) 2023-01-03
WO2021156669A1 (en) 2021-08-12
KR102309806B1 (ko) 2021-10-08
TW202223641A (zh) 2022-06-16

Similar Documents

Publication Publication Date Title
US11449379B2 (en) Root cause and predictive analyses for technical issues of a computing environment
US11520649B2 (en) Storage mounting event failure prediction
US9413818B2 (en) Deploying applications in a networked computing environment
US20180107523A1 (en) Managing a set of wear-leveling data using a set of thread events
US20220197770A1 (en) Software upgrade stability recommendations
US20220100632A1 (en) Detecting performance degradation in remotely deployed applications
US20170199798A1 (en) Managing a set of wear-leveling data using a set of thread events
CN109828750B (zh) 自动配置数据埋点的方法、装置、电子设备及存储介质
Bellini et al. Managing cloud via smart cloud engine and knowledge base
US20210263718A1 (en) Generating predictive metrics for virtualized deployments
KR102309806B1 (ko) 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법
US20210295223A1 (en) Cognitive automation based vendor compliance system
US11627193B2 (en) Method and system for tracking application activity data from remote devices and generating a corrective action data structure for the remote devices
KR102324086B1 (ko) 구성 관리 데이터베이스에 대한 비용 효율성 추적
US20210240515A1 (en) Systems and methods for centralization of server initialization information
US11093636B2 (en) Maintaining data protection compliance and data inference from data degradation in cross-boundary data transmission using containers
TW202222056A (zh) 用於實時分析虛擬伺服器記錄的電腦實施系統以及方法
KR102346364B1 (ko) 가상 서버 리소스 사용량 메트릭 평가 및 성능 추적을 위한 시스템 및 방법
US10216610B2 (en) Debug session analysis for related work item discovery
US20230325871A1 (en) Subgroup analysis in a/b testing
US20240028996A1 (en) Root cause analysis in process mining

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent