KR20170049367A - 패스트 데이터 분석을 위한 엣지 기반 로드 쉐딩 시스템 및 그 운영방법 - Google Patents

패스트 데이터 분석을 위한 엣지 기반 로드 쉐딩 시스템 및 그 운영방법 Download PDF

Info

Publication number
KR20170049367A
KR20170049367A KR1020160084537A KR20160084537A KR20170049367A KR 20170049367 A KR20170049367 A KR 20170049367A KR 1020160084537 A KR1020160084537 A KR 1020160084537A KR 20160084537 A KR20160084537 A KR 20160084537A KR 20170049367 A KR20170049367 A KR 20170049367A
Authority
KR
South Korea
Prior art keywords
edge
data
analysis server
load
operation module
Prior art date
Application number
KR1020160084537A
Other languages
English (en)
Other versions
KR102094933B1 (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 한국전자통신연구원
Priority to US15/227,583 priority Critical patent/US10091110B2/en
Publication of KR20170049367A publication Critical patent/KR20170049367A/ko
Application granted granted Critical
Publication of KR102094933B1 publication Critical patent/KR102094933B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/23Bit dropping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일면에 따른 엣지 기반 로드 쉐딩 시스템은 서버/엣지 분할 실행할 것을 결정하고, 하기 엣지 머신에 분석 애플리케이션의 일부 연산 모듈을 전송하고 오프로딩하도록 요청을 하고, 하기 엣지 머신으로부터 선처리 데이터를 수신하여 분석하는 분석 서버; 및 상기 분석 서버로부터 연산 모듈을 수신하여 오프로딩하고, 센서로부터 수집한 센서 데이터를 오프로딩된 연산 모듈을 이용하여 선처리하고, 선처리 데이터를 분석 서버에 전송하는 엣지 머신을 포함한다.

Description

패스트 데이터 분석을 위한 엣지 기반 로드 쉐딩 시스템 및 그 운영방법{Edge-based Load-Shedding System for Fast-Data Analysis and the operating method thereof}
본 발명은 패스트 데이터 분석을 위한 서버/엣지 분할 실행에 기반한 로드 쉐딩 기법에 관한 것으로서, 사람과 사람 사이의 연결이 아닌 사물과 사물 사이의 연결을 의미하는 사물인터넷(Internet of Things: IoT)이 최대 화두가 되고 있으며, 이렇게 네트워크로 연결된 수많은 시스템에서 생성되는 데이터는 빅데이터(Big Data)를 넘어서 패스트 데이터(Fast Data) 환경으로 급속도로 변화하고 있다.
이러한 패스트 데이터 환경은 빅데이터와 달리 수집 데이터를 고속으로 적재하여, 실시간 또는 준 실시간으로 분석 결과를 고속으로 응답하는 특징을 가지고 있으며, 이러한 고속 데이터 처리에 필수적인 스트림 데이터 처리에 대한 다양한 기법들이 연구되고 있다.
본 발명은 고속 스트림 데이터 처리 과정에서 응용을 보다 빠르게 분석하기 위해서 엣지 기반의 데이터 필터링 기법에 관한 것이다.
최근 많은 분산 응용들이 사용되면서 지속적인 정보 흐름이 분산 시스템으로부터 발생하고 있다. 예를 들어 침입탐지 시스템에 사용되는 네트워크 트래픽 데이터, 센서 네트워크 데이터, 주식 시세 데이터 등이 대표적인 정보 흐름의 예이다. 정보 흐름에서 유용한 정보를 얻기 위해서는 이를 지속적으로 적시에 처리해야 하는데, 전통적인 데이터베이스 관리 시스템(DBMS)에서는 정보를 얻기 전에 먼저 데이터를 저장하고, 인덱스 등을 생성하는 과정을 거쳐야 하기 때문에 이러한 요구 사항을 충실히 수행하기가 어렵다. 대안으로, 데이터 스트림 관리 시스템(data stream management system: DSMS)이 있으며, 이를 통해 지속적으로 흘러 들어오는 데이터의 흐름에서 스트림 처리가 가능한 형태의 시스템이 널리 사용되고 있다.
센서 데이터의 특성상, 일반적인 원시 데이터를 바로 분석 애플리케이션에 적용하기는 어려우며, 원시 데이터를 가공, 정제, 적재하는 과정을 사전에 거쳐야 하는 초기 선처리(preprocessing) 과정을 거치게 된다.
종래의 로드 쉐딩 기술은 서버의 자원 및 네트워크 트래픽을 고려하여, 일부 부하를 무시하는 방법으로 로드 쉐딩이 이루어지므로, 시스템의 안정적인 운영에는 도움이 되나 분석 대상이 되는 일부 입력 데이터는 무시하게 되어 분석 결과의 정확도가 떨어지는 문제가 있게 된다.
본 발명은 전술한 문제를 해결하기 위하여 분석 애플리케이션의 전체 처리 과정 중 일부인 선처리 과정을 센서 데이터를 수집하는 엣지 머신이 처리하는 엣지 기반의 로드 쉐딩 방법을 제공하는 것을 목적으로 한다.
본 발명에서는 일반적인 로드 쉐딩 방법과 달리, 입력 부하가 증가할 때, 자동적으로 낮추는 역할을 수행하는 수동적인 방법이 아니라, 입력 부하에 따라, 입력 데이터의 흐름에 따른 분석 애플리케이션이 포함하는 연산 모듈 중 선처리 과정에 해당하는 연산 모듈을 엣지 머신에 오프로딩하여, 엣지 머신에서 입력 데이터를 오프로딩된 연산 모듈이 처리하는 방법에 의하여 분석 서버의 부하를 경감시키는 엣지 기반의 적응형 로드 쉐딩 방법을 제공하는 것을 목적으로 한다.
본 발명은 빅데이터 환경에서 패스트 데이터 환경으로 변화하는 추세에 맞추어, 기존의 데이터 분석을 위한 입력 데이터를 분석 애플리케이션에 적재하기 전에 선결적으로 적용할 수 있는 방법으로 분산 처리 기술을 응용하여 데이터 분석 소프트웨어의 처리 효율을 높일 수 있는 방법을 제공하는 것을 목적으로 한다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일면에 따른 엣지 기반 로드 쉐딩 시스템은 서버/엣지 분할 실행할 것을 결정하고, 하기 엣지 머신에 분석 애플리케이션의 일부 연산 모듈을 전송하고 오프로딩하도록 요청을 하고, 하기 엣지 머신으로부터 선처리 데이터를 수신하여 분석하는 분석 서버; 및 상기 분석 서버로부터 연산 모듈을 수신하여 오프로딩하고, 센서로부터 수집한 센서 데이터를 오프로딩된 연산 모듈을 이용하여 선처리하고, 선처리 데이터를 분석 서버에 전송하는 엣지 머신을 포함한다.
본 발명의 다른 일면에 따른 엣지 머신이 선처리한 센서 데이터를 분석하는 분석 서버, 센서로부터 센서 데이터를 수집하고 상기 센서 데이터를 가공하여 분석 서버로 전송하는 하나 이상의 엣지 머신을 포함하는 엣지 기반 로드 쉐딩 시스템의 운영 방법은, 상기 분석 서버가 (1) 분석 애플리케이션이 포함하는 연산 모듈들의 프로파일 정보를 작성하는 단계; (2) 스스로의 자원 정보 및 네트워크 정보를 수집하는 단계; (3) 엣지 머신의 자원 정보를 수집하는 단계; (4) 상기 프로파일 정보, 상기 스스로의 자원 정보 및 네트워크 정보 및 상기 엣지 머신의 자원 정보를 토대로 서버/엣지 분할 실행할 것을 결정하는 단계; (5) 오프로딩할 엣지 머신 및 오프로딩될 연산 모듈을 결정하는 단계; (6) 상기 오프로딩할 엣지 머신에 상기 오프로딩될 연산 모듈을 전송하는 단계; 및 (7) 상기 오프로딩할 엣지 머신에게 오프로딩할 것을 요청하는 단계;를 포함한다.
본 발명에 따르면, 엣지 머신을 이용하여 분석 서버의 부하를 분산시켜 분석 서버의 로드 쉐딩 효과가 발생한다. 분석 서버 및 엣지 머신의 현재 상황을 고려하여 로드 밸런싱을 하는 것이므로, 보다 효율적인 시스템을 구축하는 효과가 있다.
복수의 엣지 머신은 병렬시스템의 성격을 가지므로, 시스템 전체의 로드를 고려하여 손쉽게 엣지 머신을 추가/제거할 수 있고, 최근 기술 발전으로 엣지 머신의 가격 대비 성능이 향상되어 분석 서버 시스템을 대형화하지 않고도 경제적인 시스템을 구축하는 효과가 있다.
본 발명에서는 오프로딩 기술을 이용하여 각각의 엣지 머신을 수기로 관리하는 것이 아니라 분석 서버를 이용하여 효율적으로 관리할 수 있는 효과가 있다.
본 발명에서 제안하는 연산자 오프로딩에 기반한 서버/엣지 분할 실행이 가능한 로드 쉐딩 방법은 종래의 서버 중심의 데이터 분석에서 서버/엣지 협업 데이터 분석이 가능하게 되며, IoT(Internet of Things)에서 생성되는 다양한 데이터를 좀 더 지능적으로 분석할 수 있는 효과를 가질 수 있게 된다.
도 1은 로드 쉐딩 기법이 적용된 시스템에서의 부하 감소 방법을 설명하기 위한 예시도.
도 2는 본 발명에 따른 엣지 기반 로드 쉐딩 시스템의 구성도.
도 3은 엣지 머신에서 오프로딩에 의한 로드 쉐딩 시스템의 운영방법을 설명하기 위한 블록도.
도 4는 오프로딩이 없는 경우의 로드 쉐딩 시스템의 분석 과정을 설명하기 위한 구조도.
도 5는 본 발명에 다른 오프로딩에 의한 로드 쉐딩 시스템의 운영방법을 설명하기 위한 블록도.
도 6은 빈도수 기반의 로드 쉐딩 방법을 설명하기 위한 예시도.
도 7은 본 발명에 따른 오프로딩에 의한 로드 쉐딩 방법을 설명하기 위한 예시도.
도 8은 본 발명의 부분 실시예에 따른 자식 데몬에서의 오프로딩 절차를 설명하기 위한 블록도.
도 9는 본 발명에 따른 로드 쉐딩 시스템의 전체 구성을 설명하기 위한 블록도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도 1은 로드 쉐딩 기법이 적용된 시스템에서의 부하 감소 방법을 설명하기 위한 예시도이다.
로드 쉐딩(Load Shedding)은 일반적으로 데이터 스트림 관리 시스템(DSMS, Data Stream Manage System)에서 입력되는 데이터가 증가하여, 처리 엔진이 처리할 수 있는 한계 부하에 비해 데이터 입력률이 높을 때, 입력 데이터를 적절히 버림으로써, 부하를 자동적으로 낮추는 역할을 수행하는 기법이다.
도 1에서와 같이 시간에 따라 입력 요청 부하가 증가하는 서버를 생각해보자. 일정 시간이 경과하면, 부하가 100%에 이르게 된다. 실제로 부하가 100%가 될 경우에는 서버가 정상적으로 작동하지 않으므로, 부하가 일정 수준에 이르면 로드 쉐딩 기법이 적용된다. 이를 입력 부하 적응 로드 쉐딩 방법이라 한다. 이에 따르면, 일부 데이터는 로드 쉐딩 방법에 따라 무시되어 입력 부하 수준이 일정 수준으로 유지된다.
여기서 부하(Load)란 네트워크 트래픽, CPU 성능, 메모리 용량 등에 따라 결정되는 값으로 어느 하나의 부하만 100%에 이르면 다른 요인들과 무관하게 서버는 정상적으로 작동하지 않을 수 있다. 로드 쉐딩(부하 경감) 방법은 일부 입력 데이터가 무시되는 단점이 있으나, 서버에 입력되는 부하가 높더라도 서버가 정상적으로 작동하는 장점이 있다.
본 발명의 부분 실시예에 따른 로드 쉐딩 방법은 분석 서버는 서버의 자원 및 네트워크 자원에 따른 부하를 실시간으로 측정하며, 부하가 일정 수준 이하일 경우에는 로드 쉐딩 방법을 사용하지 않고, 분석 서버(210)가 센서(230)가 생성한 센서 데이터(raw data)를 엣지 머신(220)을 통하여 수신하여 처리한다. 부하가 일정 수준을 초과하게 되면, 분석 서버(210)는 엣지 머신(220)에게 데이터 로드 쉐딩 요청(특정 연산 모듈의 오프로딩 요청)을 하여 엣지 머신이 선처리(preprocessing)한 데이터를 수신하게 된다.
도 2는 본 발명에 따른 엣지 기반 로드 쉐딩 시스템의 구조도이다.
본 발명에 따른 로드 쉐딩 시스템은 데이터를 분석하는 하나 이상의 분석 서버(210), 센서(220)로부터 센서 데이터를 전송받아 그대로 분석 서버에 전달하거나 이를 가공하여 가공된 데이터를 전송하는 하나 이상의 엣지 머신(220), 센서 데이터를 엣지 머신(220)에게 전송하는 하나 이상의 센서(230)를 포함한다.
센서 데이터는 센서(230)가 생성하는 가공하지 않은 데이터를 의미하고, 선처리 데이터란 센서 데이터가 하나 이상의 특정 연산 모듈에 의하여 처리되어 분산 서버에 전송되는 데이터를 의미한다.
분석 서버(210), 엣지 머신(220) 및 센서(230)는 네트워크로 연결되어 있는데, 통상 분석 서버(210)와 엣지 머신(220) 사이는 IEEE 802.3을 따르는 이더넷 프로토콜이나 IEEE 802.11 또는 그 하위 호환을 따르는 무선 네트워크로 연결될 수 있고, 엣지 머신(220)과 센서(230) 사이는 IEEE 802.15.4를 따르는 센서 네트워크로 연결될 수 있다. 다만, 연결된 네트워크 프로토콜 종류에 따라 발명의 범위가 제한되는 것은 아니다.
여기서 엣지 머신(220)은 휴대폰, PC, 서버, 휴대용 단말기 등 정보처리가 가능한 각종의 장치를 포함한다. 또한, 센서 데이터를 취합하고 선처리 과정을 수행하여 분석 서버로 전송할 수 있는 라즈베리 파이와 같이 가볍고 저렴한 장치가 엣지 머신(220)이 될 수 있다.
엣지 머신(220)에서 실행되는 엣지 데몬은 센서(230)로부터 센서 데이터를 수신하고 그대로 분석 서버(210)에 전달하거나, 센서 데이터를 가공하여 분석 서버(210)에 전송할 수 있고, 이러한 의미에서 엣지 머신(220)은 게이트웨이의 역할도 수행한다.
도 3은 엣지 머신에서 오프로딩에 의한 로드 쉐딩 시스템의 운영방법을 설명하기 위한 블록도를 나타낸다.
엣지 머신(220)은 엣지 데몬을 실행하고, 엣지 데몬은 부모 데몬(parent process)과 자식 데몬(child process)을 포함한다.
분석 서버에서 수행될 분석 과정의 일부 연산(operation)을 떼어서 엣지 머신(220)에서 수행하는데 이를 오프로딩(Off-loading)이라 한다.
오프로딩의 방법으로 (a) 입력 파라미터의 정보, 출력 파라미터의 정보 및 입력 파라미터를 출력 파라미터로 변환하는 명세를 기재한 파일(입출력 파라미터 매핑 테이블)을 교환하여 처리하는 방법, (b) 분석 서버로부터 분석 애플리케이션의 일부인 연산 모듈을 전송받아 엣지 머신에서 실행하는 방법으로서 자식 데몬(320)이 실행 중에 오프로딩할 연산자를 자식 데몬(320)에 오프로딩하는 방법, (c) 자식 데몬(320)의 실행을 잠시 중단 시키고 오프로딩할 연산 모듈을 포함하여 자식 데몬을 재실행하는 방법을 사용할 수 있다.
상기 (a) 방법은 적용할 수 있는 폭이 좁고, (c) 방법은 다양한 연산 모듈에 적용이 가능하나, 자식 데몬의 실행을 중지시키는 사이 서비스가 중단되어 오버헤드가 큰 단점이 존재하므로, 오프로딩 연산 모듈을 자식 데몬에 로딩하는 방법으로서 (b) 방법이 주요한 수단이 될 수 있다. 다만, 경우에 따라서 (b) 방법에 의하여 연산 모듈을 오프로딩할 수 없을 수 있고, 이때는 (c) 방법을 이용하도록 한다.
패스트 데이터 시스템은 업데이트율이 극도로 높은 실시간 요청을 처리하는 특징과 부정확하고 다양한 비정형 자료를 그 처리 대상으로 하는 특징이 있어 패스트 데이터 시스템은 로 데이터(raw data)의 형식을 사전에 정의하지 못할 수 있으며, 분석해야 할 비정형 센서 데이터를 생성하는 새로운 센서가 추가되면, 해당 센서 데이터의 자료 형식에 맞추어 사후적으로 분석 애플리케이션을 수정해야 할 수 있다.
특정 센서의 센서 데이터는 분석 서버에 분석 도구가 갖춰진 상태에서 분석 서버에 전송되는 것이 원칙이나 분석 서버에 분석 도구가 갖춰지지 않은 상태에서 센서 데이터가 분석 서버에 도달할 수도 있고, 이때는 분석 서버는 해당 센서 데이터를 무시하게 된다.
사후적으로 분석 도구를 갖추었을 경우, 해당 센서 데이터에 대한 분석 서버의 분석 애플리케이션에 포함된 일부 연산을 엣지 머신으로 오프로딩할 수 있다. 오프로딩 기능은 새로운 형식의 센서 데이터를 생성하는 센서에 대한 분석을 진행하는 경우, 적응형 분석 도구(adaptive analytic tools)로서 매우 유용하다 할 것이다. 이와 같이 일부 연산 모듈을 엣지 머신에 오프로딩하여 분석 서버(210)와 엣지 머신(220)의 연산을 기능적으로 분할하는 방법을 서버/엣지 분할 실행이라 한다.
엣지 머신(220)의 엣지 데몬은 부모 데몬(310)과 자식 데몬(320)을 포함하고, 부모 데몬(310)는 자식 데몬(320)을 실행할 수 있고, 그 실행을 중지시킬 수 있다. 즉, 부모 데몬(310)은 자식 데몬(320)을 관리하는 역할을 한다. 부모 데몬은 분석 서버로부터 오프로딩 연산 모듈(분석 애플리케이션의 일부로서 엣지 머신에서 오프로딩이 가능한 연산 모듈)을 전송받아 저장하고, 자식 데몬이 저장된 연산 모듈을 오프로딩하여 실행할 수 있도록 요청한다. 부모 데몬은 미리 정하여진 위치에 오프로딩 연산 모듈 파일을 저장하여 자식 데몬이 오프로딩할 연산 모듈에 접근하여 해당 연산 모듈을 오프로딩할 수 있게 한다. 또한 자식 데몬을 중지(kill process)시키고, 자식 데몬이 상기 오프로딩 연산 모듈을 오프로딩하여 수행할 수 있도록 자식 데몬을 재실행할 수도 있다.
엣지 머신의 입력 데이터와 출력 데이터가 모두 텍스트 타입이거나, 이진형식이라도 사전적으로 정의된 데이터 구조의 매핑이 가능한 경우, 입력 데이터의 데이터 형식, 출력 데이터의 형식, 입력 데이터와 출력 데이터의 매칭 정의 파일(입출력 데이터 매핑 테이블)을 교환하는 것으로 특정 연산을 오프로딩하는 것이 가능하다. 본질적으로 데이터 오프로딩에 해당하는 것이나, 단순한 데이터 처리의 경우에는 연산 모듈을 직접 복사하는 것과 동일한 기능을 구현하는 것이 가능하다.
이때 입출력 데이터의 형식은 JSON 형식, markup language, SQL 데이터 형식 및 사용자 정의 형식 등을 이용할 수 있고, 입출력 데이터 매핑 테이블도 상기 형식으로 작성하는 것이 가능하므로 엣지 머신의 OS나 사용 프로그램이 상이하더라도 JSON 이나 xml parser는 대부분의 프로그램 언어에서 기본적으로 제공하는 라이브러리이므로 필드 매칭 형식으로 오프로딩할 수 있게 된다.
자식 데몬(320)은 멀티 프로세서일 수 있고, 명칭에도 불구하고 멀티 쓰레드일 수 있다. 엣지 머신의 자원 상황에 따라 하나 이상의 자식 데몬이 실행되나, 모든 자식 데몬은 기본적으로 동일한 기능을 수행한다. 외부의 센서는 연결된 엣지 머신에서 실행되는 어느 자식 데몬에게도 데이터 입력이 가능하므로, 자식 데몬이 오프로딩된 연산 모듈이 상이할 경우, 센서(230)가 오프로딩되지 아니한 자식 데몬에 센서 데이터를 입력할 경우 연산 모듈 실행이 실패할 수 있다. 다만, 필요한 연산 모듈이 오프로딩되지 아니한 경우라도 자식 데몬은 입력된 데이터를 그대로 분석 서버에 전송할 수 있다. 자식 데몬에 연산 모듈이 오프로딩된 경우, 오프로딩된 연산 모듈을 이용하여 선처리한 후 선처리된 데이터를 분석 서버에 전송한다.
도 4는 오프로딩이 없는 경우의 로드 쉐딩 시스템의 분석 과정을 설명하기 위한 구조도를 나타낸다.
도 4에서의 엣지 머신은 게이트웨이로서 기능하며, 다른 기능을 가지지 않는다. 최근 라즈베리 파이와 같은 가볍고 저렴하면서 가격 대비 성능이 뛰어난 장치들이 많이 개발되고 있어 데이터 수집 및 전송하는 기능 외에 종래 서버가 제공하는 기능 중 일부를 충분히 수행할 수 있게 되었다.
분석 서버는 여러 연산 모듈들(연산 1, 연산 2, 연산 3, 연산 4)을 이용하여 분석 결과를 출력한다. 도 4에서의 분석 서버는 서버/엣지 분할 실행되지 않는 경우이며, 센서 데이터(raw data)를 분석할 수 있고, 엣지 머신이 선처리한 데이터를 분석할 수도 있다. 이를 위해 분석 서버는 엣지 머신으로부터 수신하는 데이터가 센서 데이터 그대로 인지, 선처리 과정을 거친 데이터인지 구분할 수 있고, 연산 모듈이 오프로딩되지 않아 센서 데이터를 그대로 수신한 경우 분석 서버에서 분석 애플리케이션이 수행하는 모든 연산이 수행된다.
이하 각 연산 모듈이 수행하는 연산을 구체적인 예를 들어 설명한다. 로그 데이터에 대한 분석의 경우, 입력 데이터가 "Warning : server is overloaded", "Error : server network connections are refused", "Error : too many connections", "Warning : out of memory" 와 같은 형태이고, 네트워크(network)에 관련 오류(Error) 개수를 알고자 분석하는 경우, 예컨대, 연산 1은 로그 데이터를 띄어쓰기 단위로 분할하는 연산 모듈이고, 연산 2는 각 문장에서 첫 단어가 "Error"인 것을 추출하는 연산 모듈이고, 연산 3은 "Error"가 포함된 문장에 포함된 단어 수를 카운팅하는 연산 모듈이고, 연산 4는 연산 3에서 카운팅된 단어 수를 기준으로 정렬하여 카운팅된 단어 수가 동일한 로그의 수를 산출하는 연산 모듈이라 하면, 순차적인 연산에 의하여 발생한 Error 로그 중 단어수가 많은 것 순서대로인 목록 데이터를 분석할 수 있다. 이러한 분석은 분석 서버에서 모두 이루어져도 문제되지 아니하나, 일부 연산을 엣지 머신에서 분할하여 실행할 수 있고, 이는 도 5에서 더 살펴볼 것이다.
도 5는 본 발명에 다른 오프로딩에 의한 로드 쉐딩 시스템의 운영방법을 설명하기 위한 블록도이다.
도 4와 같이 데이터 수집이 이루어지지만 도 5에서는 엣지 머신(220)에서 연산 모듈 중 연산 1과 연산 2가 실행되며, 연산 3과 연산 4는 분석 서버(210)에서 실행되는 점이 가장 큰 차이이다. 이를 서버/엣지 분할 실행이라 한다. 여기서 연산 1과 연산 2는 오프로딩이 가능한 연산 모듈이며, 연산 3과 연산 4는 오프로딩이 불가능한 연산 모듈일 수 있다.
분석 서버의 입력 로드가 낮을 때는 도 4와 같이 실행되어도 분석 서버의 안정성에 큰 영향을 주지 않는다. 그러나, 도 1에서 살펴본 바와 같이 입력 로드가 일정 수준을 초과하게 되면, 분석 서버(210)가 정상적으로 작동하지 않게 되므로, 분석 서버(210)의 분석 애플리케이션 중 일부 연산 모듈을 엣지 머신(220)에 오프로딩하여 실행하게 된다.
분석 서버는 하나 이상의 분석 애플리케이션을 포함하고, 각 분석 애플리케이션은 하나 이상의 연산 모듈을 포함한다. 분석 서버는 하나의 분석 애플리케이션 내에서 연산 모듈의 실행 순서, 연산 모듈 실행시 필요 자원량, 입력 파라미터의 정보, 출력 파라미터의 정보, 입출력 파라미터의 매핑 테이블 등 연산 모듈에 관한 프로파일 정보를 가지고 있고, 특정 엣지 머신에 특정 연산 모듈을 오프로딩하는 경우, 해당 연산 모듈의 프로파일 정보도 엣지 머신에 함께 전송하게 되므로, 전송받은 프로파일 정보를 기반으로 엣지 머신은 연산 모듈의 실행 순서 및 각 연산 모듈의 입력 파라미터와 출력 파라미터의 포맷을 알게 된다.
상기 필요 자원량이란 연산 모듈이 실행시 필요로 하는 CPU 사용량, 메모리 사용량 등을 고려하여 산출되는 값이고, 상기 입출력 파라미터의 매핑 테이블이란 입력 파라미터를 출력 파라미터로 변환하는 명세를 기재한 파일을 의미한다. 일부 연산 모듈에 있어서는 상기 매핑 테이블을 엣지 머신에 전송함으로써 연산 모듈을 오프로딩하는 것과 동일한 효과를 얻을 수 있다.
분석 서버(210)는 현 시스템에 관한 정보를 수집한다. 엣지 머신의 사양 즉, 엣지 머신의 CPU 성능, 메모리 용량, 저장 공간 등의 정보와 엣지 머신의 현재 로드, 현재 연산 모듈을 오프로딩하였는지 등의 정보, 분석 서버와 엣지 머신 사이의 네트워크의 트래픽량 및 네트워크 대역폭 등의 정보를 수집한다.
수집한 정보를 바탕으로 분석 서버는 엣지 머신에 연산 모듈을 오프로딩할지를 결정하게 된다.
분석 서버가 특정 연산 모듈을 특정 엣지 머신에 오프로딩할 것으로 결정한 경우, 분석 서버는 해당 연산 모듈을 해당 엣지 머신에 전송하고, 엣지 머신이 수신한 연산 모듈을 저장소에 저장하고, 분석 서버로부터 오프로딩 요청을 받게 되면 연산 모듈을 오프로딩하고 오프로딩된 연산 모듈을 이용하여 입력 데이터를 선처리한다.
엣지 머신에서 연산 모듈을 오프로딩하더라도 오프로딩된 연산 모듈을 이용하여 입력 데이터를 선처리하지 않을 수 있다. 연산 모듈의 특징과 시스템 환경에 따라 서버/엣지 분할 실행이 전체 시스템의 관점에서 항상 효율적인 것은 아니기 때문이다. 다만, 오프로딩하는 과정은 오버헤드가 크므로, 연산 모듈을 오프로딩만 하고, 상황에 따라 오프로딩된 연산 모듈로 데이터 처리를 할지를 결정할 수 있다.
엣지 머신의 오프로딩하기 전 엣지 머신의 부하가 이미 높은 상태에 있다면, 엣지 머신에 네트워크로 연결된 센서로부터 센서 데이터가 대량 유입되어 센서 데이터를 그대로 분석 서버로 전달하는 것만으로도 엣지 머신의 자원이 부족하다고 판단할 수 있으므로, 특정 연산 모듈이 이미 오프로딩 되어 있다고 하더라도, 오프로딩 연산 모듈을 사용하지 않을 수 있다. 그러나, 엣지 머신의 CPU 로드 및 메모리 로드는 충분한데 단지 네트워크 사용량이 많은 경우에, 오프로딩된 연산 모듈에 의하여 출력 데이터가 입력 데이터보다 작다면, 오프로딩 요청을 할 수 있다. 출력 데이터가 입력 데이터보다 작은지 여부는 입력 파라미터 정보와 출력 파라미터 정보로부터 판단할 수 있다.
각각의 엣지 머신의 CPU와 메모리는 분석 서버에 비하여 그 성능과 용량이 작은 것이 일반적이나, 엣지 머신(220)은 통상 복수로 구성되어 있으므로, 분석 서버(210)의 일부 기능을 엣지 머신(220)이 수행하는 것만으로도 로드 쉐딩(부하 경감)의 기능을 하게 된다.
엣지 머신(220)과 분석 서버(210)의 기능을 분산한 측면에서 로드 쉐딩 시스템은 일종의 분산 처리 시스템으로 볼 수 있고, 각각의 엣지 머신이 서로 상이한 연산자를 오프로딩하는 차이점은 존재하나, 일반적으로 복수의 엣지 머신들은 동일한 기능을 수행한다.
하나 이상의 엣지 머신(220)은 병렬 처리 시스템으로 볼 수 있고, 부하가 높은 엣지 머신이 존재할 경우, 가격이 저렴한 엣지 머신을 용이하게 추가하여 엣지 머신의 전체적인 부하 수준을 경감시킬 수 있다.
다수의 엣지 머신을 관리하기 어려운 측면이 있으나, 분석 서버(210)가 본 발명에서 제시하는 오프로딩 기술을 이용하여 엣지 머신을 관리할 수 있고, 이러한 관리는 시스템의 상황에 따라 자동적으로 이루어지므로, 사람이 직접 유지 보수하는 부담을 줄이면서 안정성 있는 시스템을 운영할 수 있다.
분석 서버는 오프로딩할 연산 모듈이 실행될 때 필요로 하는 CPU 로드 및 메모리 로드 등의 필요 자원 정보를 가지고 있다. 분석 서버는 이를 스스로 테스트해서 얻은 값과 엣지 머신의 성능을 고려하여 필요 자원 정보를 생성할 수 있고, 엣지 머신이 산출한 필요 자원 정보를 수신하여 필요 자원 정보를 생성할 수 있다. 엣지 머신이 오프로딩 연산 모듈을 실행할 때 필요한 자원 정보를 주기적으로 산출하여 분석 서버로 전달하면, 분석 서버는 가중치를 고려하여 자신이 가지고 있는 필요 자원 정보를 갱신할 수 있다.
상기 필요 자원 정보는 특정 엣지 머신에 특정 연산 모듈을 오프로딩할 때, 엣지 머신의 여유 자원 정보와 해당 연산 모듈을 오프로딩하여 실행하기 위한 필요 자원 정보를 비교하여 오프로딩 여부를 결정하는데 이용할 수 있다.
시스템 구성상 취합된 데이터 전체로부터 특정 정보를 추출하는 등의 작업은 오프로딩이 불가능한 연산 모듈로서 분석 서버에서만 처리된다.
엣지 머신(220)은 데이터 정제, 데이터 추출, 데이터 검증과 같은 사전에 처리해야 할 연산 모듈들을 오프로딩하여 선처리할 수 있고, 선처리 과정이 진행되는 만큼 분석 서버의 부하를 감소시키는 효과가 있으며, 엣지 머신에서 선처리된 데이터는 입력 데이터보다 용량이 작을 수 있고, 선처리 과정에서 무의미한 센서 데이터는 분석 서버에 전송하지 않으므로 네트워크 측면에서도 트래픽이 경감된다.
실제 예를 들어서 도 5의 상황을 설명하면, 도 4와 같이 입력 데이터가 "Warning : server overloaded", "Error : server network connections are refused", "Error : too manay connections", "Warning : out of memory" 와 같은 형식이고, 네트워크(network)에 관련된 오류(Error) 개수(count)를 알고자 분석한다면, 로그 데이터를 띄어쓰기 단위로 분할하는 연산 모듈인 연산 1과, 각 문장에서 첫 단어가 "Error"인 것을 추출하는 연산 모듈인 연산 2는 엣지 머신에서 실행되고, "Error"가 포함된 문장에 포함된 단어수를 카운팅하는 연산 모듈인 연산 3과 연산 3에서 카운팅된 단어 수를 기준으로 정렬하여 카운팅된 단어 수가 동일한 로그의 수를 산출하는 연산 모듈인 연산 4는 분석 서버에서 실행되어 서버/엣지 분할 실행이 이루어진다. 분석 서버의 부하를 경감하면서 순차적인 연산에 의하여 발생한 Error 로그 중 단어수가 많은 것 순서대로인 목록 데이터를 분석하는 결과는 도 4에서와 같다.
도 6은 빈도수 기반의 로드 쉐딩 방법을 설명하기 위한 예시도이다.
로드 쉐딩과 관련된 기법들 중에서 가장 일반적인 방법은 샘플링에 기반한 방법이다. 분석 서버의 자원 및 네트워크 대역폭 등을 고려하여 확률에 기반하여 적절한 수의 입력 데이터를 무시하는 방법으로 부하를 경감시킨다. 도 6과 같이 시간별로 t0, t01, t02, t03기에 생성된 데이터 중 일부만을 샘플링하여 처리하는 방법이다. 엣지 머신(220)에서 데이터가 수집되고, 분석 서버에서 연산 1, 연산 2, 연산 3, 연산 4가 순차적으로 이루어지게 된다.
예컨대, 도 6에서 현재 로드 상황 상 각각의 시간 구간 별로 2개의 입력 데이터만을 분석 대상으로 삼고자 한다면, 랜덤 제너레이터에 의하여 구간별로 2개의 입력 데이터가 선택된다. 2개 이하일 경우에는 모두 선택하며, 2개 이상의 입력 데이터가 존재하는 시간 구간에 대하여는 2개 정도의 입력 데이터가 선택될 수 있도록 랜덤 제너레이터의 확률을 정하되, 이미 2개의 입력 데이터가 선택된 경우 남은 데이터는 무시하고, 남은 데이터의 수가 선택할 데이터의 수와 동일한 경우, 남은 데이터를 모두 선택하여 2개의 입력 데이터가 선택될 수 있도록 할 수 있다. 선택할 입력 데이터 수는 모든 구간에서 동일한 것은 아니고 분석 서버의 부하 상황에 따라 다르게 설정된다.
도 6에서 검은색의 표시된 점은 해당 구간에서 선택된 2개의 입력 데이터를 의미한다.
도 7은 본 발명에 따른 오프로딩에 의한 로드 쉐딩 방법을 설명하기 위한 예시도이다.
도 6과 동일한 입력 데이터를 대상으로 설명한다. 예컨대 특정 온도의 범위 내에서 필터링하는 연산의 경우로서, 이 연산자를 엣지 데몬에 오프로딩하여, 로드 쉐딩 연산자는 각각의 시간 구간에서 랜덤 변수에 의하여 샘플링하는 것이 아니라, 오프로딩된 연산자에 의해 필터링되는 데이터만을 분석 서버에 전송하게 된다. 엣지 머신(220)에서 일부 연산을 수행하는 분산 처리 기법에 의하여 결과적으로 로드 쉐딩하는 결과를 얻을 수 있다.
도 5의 경우를 생각하면 전체 로그 데이터 중에 "Error" 시작하는 센서 데이터만을 선처리한 가공 데이터를 분석 서버로 전송하게 되므로, 분석 서버의 부하를 경감시킬 수 있다.
도 7에서 검은색 점으로 표시된 입력 데이터는 엣지 데몬이 오프로딩된 연산자에 의해 필터링되어 분석 서버로 전송하기로 결정한 데이터를 의미하는데, 전송되는 데이터는 상이하나 로드 쉐딩 효과는 유사하다 할 것이다.
다만, 도 6은 랜덤 변수에 의해 임의로 선택된 입력 데이터가 제거되는 것에 반해, 도 7에서는 필요한 데이터는 모두 처리하면서도 분석 서버의 부하를 경감시키는 장점이 있다. 또한, 선처리 과정이 엣지 머신에서 이루어지는 만큼 분석 서버의 부하가 경감되므로, 시간 구간별 처리할 입력 데이터 수를 도 6에서 보다 높게 설정할 수 있다.
오프로딩된 연산 모듈은 분석 서버에서 처리하는 것이 바람직한 대용량 데이터 처리 및 데이터 통계 산출 등을 제외한 비교적인 단순한 연산에 한정된다. 분석 서버의 종합적인 분석 전에 이루어지는 데이터 가공 등의 선처리 연산에 쉽게 적용 가능하다 할 것이다.
도 8은 본 발명의 부분 실시예에 따른 자식 데몬에서의 오프로딩 절차를 설명하기 위한 블록도이다.
자식 데몬(320)은 수집된 데이터를 가공하지 않고 그대로 분석 서버(210)에 전송하거나, 부모 데몬(310)으로부터 오프로딩 실행 명령을 수신하여 수집된 데이터를 오프로딩한 연산자에 의하여 데이터를 처리하고, 처리된 데이터를 분석 서버(210)에 전송하는 역할을 한다.
메모리(840)는 자식 데몬(320)에 의하여 shared memory, semaphore의 형태로 공유될 수 있다. 이러한 기술은 자식 데몬(320)과 부모 데몬(310) 사이에서도 적용 가능하다.
자식 데몬(320)은 데이터 수집부(810), 데이터 처리부(820), 데이터 출력부(830)를 포함한다.
데이터 수집부(810)는 센서로부터 센서 데이터(raw data)를 수집하고, 데이터 처리부(820)는 연산자의 오프로딩 여부에 따라 센서 데이터를 처리한다. 데이터 전송부(830)는 처리된 데이터를 분석 서버(210)로 전송한다.
자식 데몬(320)은 오프로딩 제어부를 더 포함할 수 있다.
분석 서버는 부모 데몬(310)에게 오프로딩할 연산 모듈을 전송하고, 오프로딩 요청을 부모 데몬(310)에게 하는데, 부모 데몬(310)은 전송받은 연산 모듈을 저장하고, 자식 데몬(320)에게 오프로딩 연산 모듈이 저장된 위치를 알려주고, 해당 연산 모듈(도 5에서의 연산 1 및 연산 2)을 오프로딩할 수 있도록 자식 데몬(320)에 요청하고, 자식 데몬이 해당 연산 모듈을 오프로딩한 경우에는 부모 데몬(310)이 자식 데몬에게 오프로딩된 연산 모듈의 실행을 요청하여 자식 데몬(320)이 센서 데이터를 데이터 처리부에서 선처리할 수 있도록 한다. 이를 수신한 자식 데몬(310)의 오프로딩 제어부(870)는 해당 연산 모듈을 오프로딩하여 데이터 처리부(820)가 해당 연산 모듈을 실행한다.
오프로딩 제어부(870)를 통하여 해당 연산 모듈을 오프로딩할 수 없는 경우에는 부모 데몬(310)은 자식 데몬(320)의 실행을 중지(kill)시키고 재실행하여 오프로딩될 수 있도록 처리할 수 있다.
오프로딩된 연산 모듈들에 의하여 선처리된 가공 데이터(출력 데이터)는 데이터 전송부(830)가 분석 서버(210)로 전송하게 된다.
도 9는 본 발명에 따른 로드 쉐딩 시스템의 전체 구성을 설명하기 위한 블록도이다.
센서(230)로부터 생성된 센서 데이터를 자식 데몬(320)의 데이터 수집부(810)가 수집하고, 데이터 처리부(820)가 처리한 후, 데이터 전송부(830)가 분석 서버로 전송한다. 분석 서버(210)의 데이터 수신부(910)가 이를 수신하여, 데이터 분석부(915)가 분석하고, 출력부(920)가 출력하게 된다.
분석 서버(210)의 프로파일 생성부(930)는 연산 모듈의 오프로딩 가능 여부, 필요 자원량, 실행 시간, 입력 파라미터 정보, 출력 파라미터 정보, 입출력 파라미터 매핑 테이블 등의 정보를 담고 있는 프로파일을 생성하고, 프로파일 정보에 따라 로드 쉐딩 제어부는 로드 쉐딩 여부를 결정한다.
제1 모니터링부(935)는 서버의 CPU 사용량, 메모리 사용량, 네트워크 트래픽 및 네트워크 대역폭 등의 서버 자원 정보를 수집하고, 로드 쉐딩 제어부는 서버 자원 정보를 토대로 로드 쉐딩 여부를 결정한다.
제3 모니터링부(950)는 엣지 머신(220)의 제2 모니터링부(955)로부터 각 엣지 머신의 CPU 성능, CPU 사용량, 메모리 용량, 메모리 사용량, 오프로딩한 연산자의 수, 연결된 센서의 수 등의 엣지 자원 정보 및 상태 정보를 수신하여 전체 네트워크 상에 존재하는 엣지 머신의 자원 정보를 토대로 로드 쉐딩 제어부(940)가 로드 쉐딩 여부를 결정할 수 있도록 한다.
로드 쉐딩 제어부(940)가 로드 쉐딩할 것을 결정한다는 것은 본 발명에서는 로드 쉐딩 제어부가 특정 엣지 머신에 특정 연산 모듈을 오프로딩하여 서버/엣지 분할 실행할 것을 결정한 것을 의미한다.
먼저 연산자 전송부(960)에 의하여, 오프로딩할 연산 모듈을 엣지 머신(220)에서 실행되는 부모 데몬(310)의 연산자 수신부(965)에 전송하면, 연산자 수신부(965)는 이를 수신하여 저장소에 저장한다.
오프로딩 요청부(970)는 오프로딩부(973)에 전송된 연산 모듈을 오프로딩할 것을 요청하며, 해당 연산 모듈이 전송되지 않은 경우에는 아무런 행동을 하지 않거나, 연산자 전송부(960)에 연산 모듈의 재전송을 요청한다. 시스템 오버헤드를 줄이기 위하여, 로드 쉐딩 제어부(940)에서 새로운 오프로딩 요청이 오기 전까지 오프로딩 요청부는 아무런 행동을 하지 않게 된다. 이미 연산 모듈이 오프로딩된 경우에는 제어 요청부(976)가 오프로딩 제어부(870)에 오프로딩된 연산 모듈에 의하여 데이터를 처리할 것을 요청한다.
오프로딩부(973)은 연산 모듈이 전송된 후 오프로딩 제어부(870)에 해당 연산 모듈을 데이터 처리부에 실제로 오프로딩할 것을 요청한다. 순차적으로 제어 요청부(976)는 오프로딩 제어부(870)에 오프로딩된 연산 모듈에 의하여 데이터를 처리할 것을 요청한다.
이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술 분야에 통상의 지식을 가진 자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니 되며 이하의 특허청구범위의 기재에 의하여 정해져야 할 것이다.
210: 분석 서버
220: 엣지 머신
230: 센서
310: 부모 데몬
320: 자식 데몬
810: 데이터 수집부
820: 데이터 처리부
830: 데이터 전송부
840: 메모리
850: 프로세서
860: 수신부
870: 오프로딩 제어부
910: 데이터 수신부
915: 데이터 분석부
920: 출력부
930: 프로파일 생성부
935: 제1 모니터링부
940: 로드 쉐딩 제어부
950: 제3 모니터링부
955: 제2 모니터링부
960: 연산자 전송부
965: 연산자 수신부
970: 오프로딩 요청부
973: 오프로딩부
976: 제어 요청부

Claims (13)

  1. 서버/엣지 분할 실행할 것을 결정하고, 하기 엣지 머신에 분석 애플리케이션의 일부 연산 모듈을 전송하고 오프로딩하도록 요청을 하고, 하기 엣지 머신으로부터 선처리 데이터를 수신하여 분석하는 분석 서버; 및
    상기 분석 서버로부터 연산 모듈을 수신하여 오프로딩하고, 센서로부터 수집한 센서 데이터를 오프로딩된 연산 모듈을 이용하여 선처리하고, 선처리 데이터를 분석 서버에 전송하는 엣지 머신
    을 포함하는 엣지 기반 로드 쉐딩 시스템.
  2. 제1항에 있어서,
    상기 분석 서버는 CPU 사용량, 메모리 사용량 및 네트워크 트래픽을 고려하여, 서버/엣지 분할 실행할 것을 결정하는 것인
    엣지 기반 로드 쉐딩 시스템.
  3. 제1항에 있어서,
    상기 분석 서버는 하나 이상의 엣지 머신으로부터 수신한 엣지 머신의 CPU 사용량 및 메모리 사용량 정보를 토대로 서버/엣지 분할 실행할 것을 결정하는 것인
    엣지 기반 로드 쉐딩 시스템.
  4. 제1항에 있어서,
    상기 분석 서버는 CPU 사용량, 메모리 사용량 및 네트워크 트래픽을 고려하여, 서버/엣지 분할 실행할 것을 결정하는 것인
    엣지 기반 로드 쉐딩 시스템.
  5. 제1항에 있어서,
    상기 분석 서버는 프로파일 정보를 토대로 서버/엣지 분할 실행할 것을 결정하고,
    상기 프로파일 정보는 연산 모듈의 실행 순서 및 필요 자원량, 입력 파라미터의 정보 및 출력 파라미터의 정보를 포함하는 것인
    엣지 기반 로드 쉐딩 시스템.
  6. 제 1항에 있어서,
    상기 분석 애플리케이션은 오프로딩이 가능한 모듈과 오프로딩이 불가능한 모듈을 포함하는 것을 특징으로 하는
    엣지 기반 로드 쉐딩 시스템.
  7. 제 1항에 있어서,
    상기 엣지 머신은
    상기 연산 모듈의 오프로딩을 제어하고, 센서로부터 센서 데이터를 수집하여 선처리한 후, 상기 분석 서버에 전송하는 자식 데몬과,
    스스로의 CPU 사용량 및 메모리 사용량을 모니터링하여 상기 분석 서버에 모니터링 정보를 전송하고, 상기 분석 서버로부터 연산 모듈을 수신하여 저장하고, 상기 자식 데몬에게 연산 모듈을 오프로딩하여 데이터 선처리할 것을 요청하는 부모 데몬을 포함하는 것을 특징으로 하는
    엣지 기반 로드 쉐딩 시스템.
  8. 엣지 머신이 선처리한 센서 데이터를 분석하는 분석 서버, 센서로부터 센서 데이터를 수집하고 상기 센서 데이터를 가공하여 분석 서버로 전송하는 하나 이상의 엣지 머신을 포함하는 엣지 기반 로드 쉐딩 시스템의 운영 방법에 있어서,
    상기 분석 서버가
    (1) 분석 애플리케이션이 포함하는 연산 모듈들의 프로파일 정보를 작성하는 단계;
    (2) 스스로의 자원 정보 및 네트워크 정보를 수집하는 단계;
    (3) 엣지 머신의 자원 정보를 수집하는 단계;
    (4) 상기 프로파일 정보, 상기 스스로의 자원 정보 및 네트워크 정보 및 상기 엣지 머신의 자원 정보를 토대로 서버/엣지 분할 실행할 것을 결정하는 단계;
    (5) 오프로딩할 엣지 머신 및 오프로딩될 연산 모듈을 결정하는 단계;
    (6) 상기 오프로딩할 엣지 머신에 상기 오프로딩될 연산 모듈을 전송하는 단계;
    (7) 상기 오프로딩할 엣지 머신에게 오프로딩할 것을 요청하는 단계;
    를 포함하는 엣지 기반 로드 쉐딩 시스템의 운영 방법.
  9. 제8항에 있어서,
    상기 프로파일 정보는 연산 모듈의 실행 순서 및 필요 자원량, 입력 파라미터의 정보 및 출력 파라미터의 정보를 포함하는 것인
    엣지 기반 로드 쉐딩 시스템의 운영 방법
  10. 제8항에 있어서,
    상기 스스로의 자원 정보는 CPU 사용량, 메모리 사용량 및 네트워크 트래픽을 포함하는 것인
    엣지 기반 로드 쉐딩 시스템의 운영 방법
  11. 제9항에 있어서,
    상기 필요 자원량은 상기 연산 모듈을 상기 엣지 머신에서 실행할 때,
    필요한 CPU 로드 및 메모리 로드, 연산 모듈의 실행 시간을 고려하여 산출된 값인
    엣지 기반 로드 쉐딩 시스템의 운영 방법.
  12. 제8항에 있어서,
    상기 엣지 머신이
    (a) 상기 센서로부터 센서 데이터를 수집하는 단계;
    (b) 상기 수집한 데이터를 오프로딩된 연산자를 이용하여 처리하는 단계;
    (c) 상기 처리한 데이터를 분석 서버로 전송하는 단계;
    상기 분석 서버가
    (d) 상기 전송받은 데이터를 분석하는 단계; 및
    (e) 상기 분석된 데이터를 출력하는 단계
    를 더 포함하는 엣지 기반 로드 쉐딩 시스템의 운영 방법.
  13. 제8항에 있어서,
    상기 엣지 머신이
    ① 스스로의 CPU 사용량, 메모리 사용량의 정보를 모니터링하는 단계;
    ② 상기 분석 서버로부터 연산 모듈을 수신하는 단계;
    ③ 상기 연산 모듈을 저장소에 저장하는 단계;
    ④ 상기 저장소에 저장된 연산 모듈을 오프로딩하는 단계; 및
    ⑤ 상기 오프로딩된 연산 모듈에 의하여 데이터 처리를 요청하는 단계;
    를 더 포함하는 엣지 기반 로드 쉐딩 시스템의 운영 방법.

KR1020160084537A 2015-10-28 2016-07-05 패스트 데이터 분석을 위한 엣지 기반 로드 쉐딩 시스템 및 그 운영방법 KR102094933B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/227,583 US10091110B2 (en) 2015-10-28 2016-08-03 Edge-based load shedding system for fast data analysis and operating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150150504 2015-10-28
KR1020150150504 2015-10-28

Publications (2)

Publication Number Publication Date
KR20170049367A true KR20170049367A (ko) 2017-05-10
KR102094933B1 KR102094933B1 (ko) 2020-03-30

Family

ID=58744054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160084537A KR102094933B1 (ko) 2015-10-28 2016-07-05 패스트 데이터 분석을 위한 엣지 기반 로드 쉐딩 시스템 및 그 운영방법

Country Status (1)

Country Link
KR (1) KR102094933B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109462643A (zh) * 2018-10-31 2019-03-12 南京东大智能化系统有限公司 一种基于边缘计算的物联网数据获取方法
KR102075791B1 (ko) * 2019-04-10 2020-03-02 주식회사 와이드티엔에스 에지 컴퓨팅에서 IoT 디바이스 연동을 이용한 패스트 데이터 처리 시스템
CN112368997A (zh) * 2018-07-06 2021-02-12 现代自动车株式会社 资源管理方法和装置
WO2023074939A1 (ko) * 2021-10-28 2023-05-04 한국전자기술연구원 원엠투엠 플랫폼 기반 컴퓨팅 오프로딩 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120122136A (ko) * 2011-04-28 2012-11-07 삼성전자주식회사 데이터 스트림 관리 시스템에서의 부하 경감을 조절하는 방법 및 장치
KR20150086904A (ko) * 2014-01-21 2015-07-29 한국전자통신연구원 적응적 데이터 스트림 관리 시스템 및 그의 제어 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120122136A (ko) * 2011-04-28 2012-11-07 삼성전자주식회사 데이터 스트림 관리 시스템에서의 부하 경감을 조절하는 방법 및 장치
KR20150086904A (ko) * 2014-01-21 2015-07-29 한국전자통신연구원 적응적 데이터 스트림 관리 시스템 및 그의 제어 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112368997A (zh) * 2018-07-06 2021-02-12 现代自动车株式会社 资源管理方法和装置
CN109462643A (zh) * 2018-10-31 2019-03-12 南京东大智能化系统有限公司 一种基于边缘计算的物联网数据获取方法
KR102075791B1 (ko) * 2019-04-10 2020-03-02 주식회사 와이드티엔에스 에지 컴퓨팅에서 IoT 디바이스 연동을 이용한 패스트 데이터 처리 시스템
WO2023074939A1 (ko) * 2021-10-28 2023-05-04 한국전자기술연구원 원엠투엠 플랫폼 기반 컴퓨팅 오프로딩 방법

Also Published As

Publication number Publication date
KR102094933B1 (ko) 2020-03-30

Similar Documents

Publication Publication Date Title
US10091110B2 (en) Edge-based load shedding system for fast data analysis and operating method thereof
CN108009236B (zh) 一种大数据查询方法、系统、计算机及存储介质
CN110868336A (zh) 数据管理方法、装置和计算机可读存储介质
CN107370806B (zh) Http状态码监控方法、装置、存储介质和电子设备
KR20170049367A (ko) 패스트 데이터 분석을 위한 엣지 기반 로드 쉐딩 시스템 및 그 운영방법
WO2019223155A1 (zh) Sql性能监控方法、装置、计算机设备及存储介质
KR102134547B1 (ko) 리스크 식별 방법, 리스크 식별 장치, 및 클라우드 리스크 식별 장치와 시스템
CN111274095A (zh) 日志数据处理方法、装置、设备及计算机可读存储介质
US11349875B2 (en) Dynamic balancing of security rules execution in a database protection system
CN111708667B (zh) 一种业务边缘计算方法及系统
CN111866016A (zh) 日志的分析方法及系统
CN105071954A (zh) 基于探针技术的资源池故障诊断与定位处理方法
CN112612680A (zh) 一种消息告警方法、系统、计算机设备及存储介质
CN115529595A (zh) 一种日志数据的异常检测方法、装置、设备及介质
CN113612819A (zh) 一种边缘计算系统
CN114039900A (zh) 一种高效网络数据包协议分析方法和系统
CN114116172A (zh) 一种流量数据采集方法、装置、设备及存储介质
CN113206797A (zh) 一种流量控制方法、装置、电子设备和存储介质
CN105471938B (zh) 服务器负载管理方法及装置
CN110389840B (zh) 负载消耗预警方法、装置、计算机设备和存储介质
CN108540439B (zh) 数据解析方法及系统、设备和存储介质
CN116248473A (zh) 一种信息处理方法、装置及计算机可读存储介质
CN114090395A (zh) 传感器数据处理方法和设备
CN115080363B (zh) 一种基于业务日志的系统容量评估方法及装置
CN105446707B (zh) 一种数据转换方法

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