KR102576226B1 - Caching system that can predict and resolve server overload through artificial intelligence algorithms - Google Patents

Caching system that can predict and resolve server overload through artificial intelligence algorithms Download PDF

Info

Publication number
KR102576226B1
KR102576226B1 KR1020230026570A KR20230026570A KR102576226B1 KR 102576226 B1 KR102576226 B1 KR 102576226B1 KR 1020230026570 A KR1020230026570 A KR 1020230026570A KR 20230026570 A KR20230026570 A KR 20230026570A KR 102576226 B1 KR102576226 B1 KR 102576226B1
Authority
KR
South Korea
Prior art keywords
server
model
query
unit
request message
Prior art date
Application number
KR1020230026570A
Other languages
Korean (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 KR1020230026570A priority Critical patent/KR102576226B1/en
Application granted granted Critical
Publication of KR102576226B1 publication Critical patent/KR102576226B1/en

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/3442Recording 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 planning or managing the needed capacity
    • 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/901Indexing; Data structures therefor; Storage structures
    • 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/903Querying
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 서버의 부하를 모니터링하여 특정 데이터를 캐시 메모리에 캐싱함에 따라 축적되는 로그 데이터를 기초로 인공지능 알고리즘을 통해 서버의 과부하를 예측하는 모델을 생성 및 학습하고, 학습된 모델을 통해 서버 과부하를 예측 및 해소하는, 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템에 관한 것이다. 본 발명에 따른 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템은 웹 페이지를 통해 사용자로부터 요청 메시지 및 쿼리를 수신하는 Web 서버, 상기 요청 메시지에 대한 응용프로그램을 실행하여 상기 요청 메시지에 대한 연산을 수행하고 연산결과를 상기 Web 서버에 반환하는 WAS 서버, 상기 WAS 서버로부터 상기 쿼리를 수신하며 상기 쿼리에 대한 응답이 될 수 있는 데이터를 조회하고, 조회결과를 상기 WAS 서버로 반환하는 데이터베이스 서버, 상기 요청 메시지, 상기 요청 메시지에 대한 응용프로그램의 연산결과, 상기 쿼리 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시 메모리부에 캐싱하는 모니터링부 및 미래 시점의 서버 내 부하를 예측하는 서버 부하 예측 모델을 생성하는 서버 부하 예측 모델링 및 예측 서비스부를 포함한다.The present invention generates and learns a model for predicting server overload through an artificial intelligence algorithm based on log data accumulated as specific data is cached in cache memory by monitoring server load, and server overload through the learned model. It relates to a caching system capable of predicting and resolving server overload through an artificial intelligence algorithm that predicts and resolves A caching system capable of predicting and resolving server overload through an artificial intelligence algorithm according to the present invention is a web server that receives a request message and query from a user through a web page, and executes an application program for the request message to receive information about the request message. A WAS server that performs calculations and returns calculation results to the web server, and a database server that receives the query from the WAS server, searches data that can be a response to the query, and returns the search result to the WAS server. , a monitoring unit for caching the request message, the operation result of the application program for the request message, the query and the search result of the database for the query in a cache memory unit, and a server load prediction model for predicting the load in the server at a future point in time. It includes a server load prediction modeling and prediction service unit that generates.

Description

인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템{CACHING SYSTEM THAT CAN PREDICT AND RESOLVE SERVER OVERLOAD THROUGH ARTIFICIAL INTELLIGENCE ALGORITHMS}Caching system capable of predicting and resolving server overload through artificial intelligence algorithms

본 발명은 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템에 관한 것으로, 더욱 상세하게는 서버의 부하를 모니터링하여 특정 데이터를 캐시 메모리에 캐싱함에 따라 축적되는 로그 데이터를 기초로 인공지능 알고리즘을 통해 서버의 과부하를 예측하는 모델을 생성 및 학습하고, 학습된 모델을 통해 서버 과부하를 예측 및 해소하는, 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템에 관한 것이다.The present invention relates to a caching system capable of predicting and resolving server overload through an artificial intelligence algorithm, and more particularly, an artificial intelligence algorithm based on log data accumulated as specific data is cached in cache memory by monitoring server load. It relates to a caching system capable of predicting and resolving server overload through an artificial intelligence algorithm that generates and learns a model that predicts server overload through a learning model and predicts and resolves server overload through the learned model.

최근 IT 서비스의 성장으로 인한 데이터의 증가와 다양한 컨텐츠 확대, 동시 사용자의 증가는 서비스 응답속도 저하에서 서비스 중단에 이르는 많은 시스템 문제를 야기하게 되었고, 특히 정부나 공공기관에서 운영되는 시스템에 대한 문제는 사용자의 민원발생 및 신뢰하락을 넘어서 법적소송까지 가는 심각한 사회현상을 만들어 가고 있다.The recent increase in data, expansion of various contents, and increase in concurrent users due to the growth of IT services have caused many system problems ranging from slow service response speed to service interruption. In particular, problems with systems operated by governments or public institutions It is creating a serious social phenomenon that goes beyond the occurrence of user complaints and the loss of trust and leads to legal proceedings.

종래 시스템은 사용자의 요청에 따라 사용자에게 HTML로 구성된 웹 페이지를 제공하는 WEB 서버, WEB 서버로부터 전달된 요청 메시지에 대한 응용프로그램 서비스를 처리하는 WAS(Web Application Server) 서버 및 사용자의 쿼리에 대한 응답이 될 수 있는 데이터를 저장하는 데이터베이스로 구성된다.A conventional system is a WEB server that provides a web page composed of HTML to a user according to a user's request, a WAS (Web Application Server) server that processes an application service for a request message transmitted from the WEB server, and a response to a user's query. It consists of a database that stores data that can be

이러한 종래 시스템에서, 시스템을 사용하는 동시 접속자가 늘어나면, WEB 서버에서는 네트워크 대역폭 부족으로 인한 사용자의 응답시간 지연이 발생된다. 그리고 응용프로그램 처리 요청량이 폭주함에 따라 WAS 서버에서는 내부에서 구동되는 응용프로그램들이 동시에 데이터베이스로 결과를 요청하는 현상이 발생되는데 데이터베이스 접속을 위한 라이선스가 충분하지 않아 원활한 데이터베이스 조회가 어렵게 된다. 또한, 데이터베이스에서는 WAS 서버에서 요청된 정보를 처리하기 위해 데이터량이 증가하고 데이터가 복잡하게 꼬이는 현상이 발생하고 데이터베이스는 결국 부하를 이기지 못하고 다운되거나 무한대기 상태에 이르게 된다.In such a conventional system, when the number of concurrent users using the system increases, the response time of the user is delayed due to insufficient network bandwidth in the web server. In addition, as the application program processing request volume surges, the application programs running inside the WAS server simultaneously request results from the database. In addition, in the database, the amount of data increases and the data is complicatedly twisted to process the information requested from the WAS server, and the database eventually fails to overcome the load and goes down or reaches an infinite standby state.

기존에 상술한 문제점을 해결하기 위하여, 기존 장비를 고성능 장비로 교체하거나 증설, 분산처리 등 다양하고 더 복잡한 아키텍처를 구성하였다. 하지만, 이러한 기존 해결방법에는 엄청난 장비구매 비용뿐만 아니라 이를 운영하기 위한 전문가 확보와 지속적 유지비용/시간이 이중으로 들어가는 현실적인 문제점이 존재했다. 구체적으로, WEB 서버에서는 근본적 개선이 아닌 사용자의 응답지연을 해소하기 위해 WEB 가속기를 도입하여 마치 은행창구의 번호표를 뽑는 형태로 대기시간의 지루함을 해소하는 큰 도움이 되지 않는 방법을 사용하고 있다. 또는 WEB 서버, WAS 서버 및 데이터베이스에 고성능 장비로 교체 또는 증설을 통한 이중화 구조를 만들어 한 대로 처리하던 것을 여러 대로 처리하도록 구성하는 방식을 채택하고 있는데, 이에 따른 막대한 서버 비용, 다중화 처리로 복잡해진 시스템에 맞춘 소프트웨어 라이센스 비용과 복잡한 인프라 유지/관리 비용이 복합적으로 증가하는 문제점을 안고 있는 것이 현실이다. In order to solve the above-mentioned problems, existing equipment has been replaced with high-performance equipment, or various and more complex architectures such as expansion and distributed processing have been constructed. However, in these existing solutions, there was a realistic problem in that not only the enormous equipment purchase cost, but also the acquisition of experts to operate it and the continuous maintenance cost/time were doubled. Specifically, in the web server, a web accelerator is introduced to solve the user's response delay, not a fundamental improvement, and uses a method that is not very helpful in relieving the boredom of waiting time in the form of pulling out a number ticket at a bank counter. Or, by creating a redundant structure through replacement or expansion of WEB server, WAS server, and database with high-performance equipment, it adopts a method of configuring a single processing unit to be processed by multiple units, resulting in enormous server costs and a complex system due to multiplexing The reality is that software license costs and complex infrastructure maintenance/management costs are complexly increasing.

따라서 종래 시스템의 문제를 해결하기 위해, 물리적인 장비증설의 한계를 벗어난 비용측면, 유지/관리 측면, 향후 확장성 측면을 고려한 새로운 기술도입이 절실히 필요한 상황이며, 이는 대한민국 등록특허공보 제10-2027823호에서 플러그 인 방식의 시스템 응답 성능향상 지능형 캐싱 시스템을 통해, 사용량이 많은 응용프로그램의 연산결과 및 데이터베이스의 조회결과의 캐싱을 통해 기존 시스템의 초당 처리량 및 응답 속도를 향상시키고 안정성을 극대화하는 방안이 개시되었다.Therefore, in order to solve the problems of the conventional system, it is urgently necessary to introduce new technology that considers the cost aspect, maintenance/management aspect, and future expandability aspect beyond the limits of physical equipment expansion. Improving the system response performance of the plug-in method in the call There is a way to improve the throughput and response speed of the existing system per second and maximize stability through caching of operation results of applications with high usage and database query results through an intelligent caching system. has been initiated

대한민국 등록특허공보 제10-2027823호에서 개시하고 있는 방안은 사용량이 많은 웹 페이지에서 요청되는 요청 메시지와 해당 요청 메시지에 대한 연산결과를 캐시 메모리에 캐싱하거나 반복적으로 사용되는 쿼리 및 해당 쿼리에 대한 조회결과를 캐시 메모리에 캐싱하고, 캐시 메모리에 캐싱된 그 데이터가 요청되거나 쿼리가 수신되는 경우 WAS 서버 및 데이터베이스에서 각각 해당 요청 메시지 및 쿼리에 대한 연산을 수행하지 않고 캐시 메모리에 저장된 요청 메시지 및 쿼리에 대한 데이터를 사용자에게 반환함에 따라 전체 시스템의 처리속도 및 응답속도를 향상시킨다.The method disclosed in Korean Patent Registration No. 10-2027823 caches a request message requested from a web page with high usage and the operation result for the request message in a cache memory, or a query that is used repeatedly and a search for the query The result is cached in the cache memory, and when the data cached in the cache memory is requested or a query is received, the request message and query stored in the cache memory are returned without performing operations on the request message and query in the WAS server and database, respectively. It improves the processing speed and response speed of the entire system by returning the data to the user.

즉 대한민국 등록특허공보 제10-2027823호에서 개시하고 있는 방안은 과거의 데이터를 통해 현재의 초당 처리량 및 응답 속도를 향상시키는 것이 한계다.That is, the method disclosed in Korean Patent Registration No. 10-2027823 is limited to improving the current throughput and response speed per second through past data.

한편, 캐싱 시스템 내로 전달되는 요청 메시지 량 또는 쿼리 량은 시간의 흐름에 따라 일정 패턴을 보이는 시계열 데이터이며, 따라서 이와 같은 시계열 데이터를 분석함에 따라 미래의 어느 시점에 서버 내 부하가 발생할지 예측하는 것이 가능하다.On the other hand, the amount of request messages or queries delivered to the caching system is time-series data that shows a certain pattern over time. Therefore, by analyzing such time-series data, it is important to predict the load in the server at some point in the future. possible.

따라서 인공지능 알고리즘을 통해 인공지능 모델링을 학습하고, 학습된 인공지능 모델링을 통해 시계열 데이터를 분석함에 따라 서버 내 과부하를 예측하는 것이 가능하다.Therefore, it is possible to predict overload in the server by learning artificial intelligence modeling through artificial intelligence algorithms and analyzing time series data through learned artificial intelligence modeling.

대한민국 공개특허공보 제10-2016-0126655호 (2016년11월02일 공개)Republic of Korea Patent Publication No. 10-2016-0126655 (published on November 02, 2016) 대한민국 등록특허공보 제10-2008-0075304호 (2008년08월18일 공개)Republic of Korea Patent Registration No. 10-2008-0075304 (published on August 18, 2008)

상술한 문제점을 해결하기 위한 본 발명의 목적은 로그 데이터를 기초로 인공지능 알고리즘을 통해 서버의 과부하를 예측하는 모델을 생성 및 학습하고, 학습된 모델을 통해 서버 과부하를 예측 및 해소할 수 있는 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템을 제공하는 것이다.An object of the present invention for solving the above problems is to generate and learn a model for predicting server overload through an artificial intelligence algorithm based on log data, and artificial intelligence capable of predicting and resolving server overload through the learned model. To provide a caching system capable of predicting and resolving server overload through an intelligent algorithm.

상술한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템은, 캐시 서버 및 고객 서버 그룹을 포함하며, 상기 고객 서버 그룹은, 사용자의 요청에 따라 사용자에게 HTML로 구성된 웹 페이지를 제공하고, 웹 페이지를 통해 사용자로부터 요청(request) 메시지 및 쿼리(query)를 수신하는 Web 서버, 상기 Web 서버로부터 상기 요청 메시지 및 상기 쿼리를 수신하고, 상기 요청 메시지에 대한 응용프로그램을 실행하여 상기 요청 메시지에 대한 연산을 수행하고 연산결과를 상기 Web 서버에 반환하는 WAS(Web Application Server) 서버 및 상기 WAS 서버로부터 상기 쿼리를 수신하며 상기 쿼리에 대한 응답이 될 수 있는 데이터를 조회하고, 조회결과를 상기 WAS 서버로 반환하는 데이터베이스 서버를 포함하고, 상기 캐시 서버는, 상기 요청 메시지, 상기 요청 메시지에 대한 응용프로그램의 연산결과, 상기 쿼리(query) 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시 메모리부에 캐싱하는 모니터링부 및 상기 모니터링부가 상기 캐시 메모리부에 캐싱한 상기 요청 메시지, 상기 요청 메시지에 대한 응용프로그램의 연산결과, 상기 쿼리 및 상기 쿼리에 대한 데이터베이스의 조회결과에 기초하여 미래 시점의 서버 내 부하를 예측하는 서버 부하 예측 모델을 생성하는 서버 부하 예측 모델링 및 예측 서비스부를 포함하며, 상기 모니터링부는, 상기 서버 부하 예측 모델링 및 예측 서비스부가 생성한 서버 부하 예측 모델을 통해 미래 시점에서 사용량이 많을 것으로 예측된 웹 페이지에서 요청되는 요청 메시지와 상기 예측된 웹 페이지에서 요청되는 요청 메시지에 대한 연산결과만을 상기 캐시 메모리부에 캐싱하고, 상기 서버 부하 예측 모델링 및 예측 서비스부가 생성한 서버 부하 예측 모델을 통해 미래 시점에서 사용자에 의해 반복적으로 사용될 것으로 예측된 쿼리 및 상기 예측된 쿼리에 대한 조회결과만을 상기 캐시 메모리부에 캐싱한다.In order to achieve the above object, a caching system capable of predicting and resolving server overload through an artificial intelligence algorithm according to an embodiment of the present invention includes a cache server and a customer server group, and the customer server group includes a user's A web server that provides a web page composed of HTML to a user according to a request and receives a request message and a query from the user through the web page, and receives the request message and the query from the web server, A WAS (Web Application Server) server that executes an application program for the request message, performs an operation on the request message, and returns a calculation result to the web server, and receives the query from the WAS server and responds to the query and a database server that searches data that can be, and returns a search result to the WAS server, wherein the cache server includes the request message, the operation result of the application program for the request message, the query and A monitoring unit for caching the search result of the database for the query in the cache memory unit and the request message cached by the monitoring unit in the cache memory unit, the operation result of the application program for the request message, the query and the query A server load prediction modeling and prediction service unit generating a server load prediction model for predicting a server load at a future time based on a query result of a database, wherein the monitoring unit includes a server generated by the server load prediction modeling and prediction service unit. Through the load prediction model, only the request message requested from the web page predicted to have high usage in the future and the operation result for the request message requested from the predicted web page are cached in the cache memory unit, and the server load prediction model and a query predicted to be repeatedly used by a user at a future point in time through a server load prediction model generated by the prediction service unit and only a search result for the predicted query are cached in the cache memory unit.

상기 WAS 서버는, 미래 사용량이 많을 것으로 예측된 웹 페이지에 대한 요청 메시지가 수신되고, 상기 미래가 현재 시점으로 다가온 경우 상기 요청 메시지에 대한 연산을 수행하지 않고, 상기 캐시메모리부에 캐싱된 상기 요청 메시지에 대한 연산결과를 사용자에게 반환하고, 미래 반복적으로 사용될 것으로 예측된 쿼리가 수신되고, 상기 미래가 현재 시점으로 다가온 경우, 상기 쿼리를 상기 데이터베이스 서버에 전달하지 않고, 캐시메모리부에 캐싱된 상기 쿼리에 대한 조회결과를 사용자에게 반환하여, 전체 캐싱 시스템의 처리속도 및 응답속도를 향상시킨다.The WAS server receives a request message for a web page predicted to have a high usage in the future, and when the future approaches the present time, the request cached in the cache memory unit without performing an operation on the request message. When a query predicted to be used repeatedly in the future is returned to the user, and the future is approaching the present time, the query is not transmitted to the database server, and the query cached in the cache memory unit is not transmitted to the database server. Returns query results to the user, improving the processing speed and response speed of the entire caching system.

상기 모니터링부는, WAS 연산결과 캐싱 모듈 및 데이터베이스 조회결과 캐싱 모듈을 포함하며, 상기 WAS 연산결과 캐싱 모듈은 사용량이 많은 웹 페이지에서 요청되는 요청 메시지 및 상기 요청 메시지에 대한 응용프로그램의 연산결과를 캐시메모리부에 캐싱하고, 상기 웹 페이지와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 연산결과의 유효성을 판단하고, 상기 데이터베이스 조회결과 캐싱 모듈은 반복적으로 사용되는 쿼리 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시메모리부에 캐싱하고, 상기 쿼리와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 조회결과의 유효성을 판단하며, 상기 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템은, 상기 WAS 연산결과 캐싱 모듈 및 상기 데이터베이스 조회결과 캐싱 모듈이 각각 모니터링 한 정보들이 주기적으로 적재되는 로그 DB부를 더 포함한다.The monitoring unit includes a WAS calculation result caching module and a database search result caching module, and the WAS calculation result caching module stores a request message requested from a web page with high usage and an operation result of an application program for the request message into a cache memory. cache in the unit, monitor changes in data associated with the web page in real time to determine the validity of the cached operation result, and the database search result caching module retrieves repeatedly used queries and database search results for the queries. A caching system capable of caching in a cache memory unit, monitoring changes in data related to the query in real time to determine the validity of the cached query result, and predicting and resolving server overload through the artificial intelligence algorithm, the WAS calculation result The caching module further includes a log DB unit in which information monitored by the caching module and the database query result caching module are periodically loaded.

상기 서버 부하 예측 모델링 및 예측 서비스부는, 상기 로그 DB부에 적재된 정보에 기초하여 서버 내 부하를 예측하기 위한 모델을 생성하는 서버 부하 예측 모델링 모듈 및 상기 서버 부하 예측 모델링 모듈이 생성한 모델을 통해 서버 내 부하를 예측하여 상기 모니터링부로 제공하는 서버 부하 예측 서비스 모듈을 포함하고, 상기 서버 부하 예측 모델링 모듈은, 상기 로그 DB부에 적재된 정보를 전처리하는 전처리부, 상기 전처리부에 의해 전처리된 정보 및 복수 개의 알고리즘을 통해 복수 개의 모델을 생성하는 모델생성부, 생성된 복수 개의 모델의 정확도를 비교하는 모델비교부 및 상기 모델비교부가 비교한 복수 개의 모델 중 최적의 모델을 선정하여 상기 서버 부하 예측 서비스 모듈로 배포하는 모델배포부를 포함한다.The server load prediction modeling and prediction service unit, based on the information loaded in the log DB unit, through a server load prediction modeling module for generating a model for predicting the load in the server and the model generated by the server load prediction modeling module It includes a server load prediction service module that predicts the load in the server and provides it to the monitoring unit, wherein the server load prediction modeling module includes a pre-processing unit that pre-processes information loaded in the log DB unit, and the information pre-processed by the pre-processing unit. and a model generator for generating a plurality of models through a plurality of algorithms, a model comparison unit for comparing the accuracy of the generated plurality of models, and selecting an optimal model among the plurality of models compared by the model comparison unit to predict the server load. Includes a model distribution unit that distributes as a service module.

상기 선정된 최적의 모델은, LSTM2(multi-variate) 알고리즘을 기초로 생성된 모델인 것을 특징으로 한다.The selected optimal model is characterized in that it is a model generated based on a multi-variate (LSTM2) algorithm.

본 발명인 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템에 따르면, 로그 데이터를 기초로 인공지능 알고리즘을 통해 서버의 과부하를 예측하는 모델을 생성 및 학습하고, 학습된 모델을 통해 서버 과부하를 예측 및 해소할 수 있는 효과가 있다.According to the caching system capable of predicting and resolving server overload through an artificial intelligence algorithm of the present invention, a model for predicting server overload is generated and learned through an artificial intelligence algorithm based on log data, and server overload is prevented through the learned model. There are effects that can be predicted and resolved.

도 1은 본 발명의 일 실시예에 따른 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템의 구성을 나타낸 도면이다.
도 2는 도 1에서 본 발명의 일 실시예에 따른 모니터링부의 상세 구성을 함께 나타낸 도면이다.
도 3은 도 1에서 본 발명의 일 실시예에 따른 서버 부하 예측 모델링 및 예측 서비스부의 상세 구성을 함께 나타낸 도면이다.
도 4 및 도 5는 서버 부하 예측 모델링 모듈의 각 구성을 나타낸 도면이다.
도 6a는 전처리부가 로그 DB부에 적재된 데이터의 수집의 일 예를 보여주는 도면이다.
도 6b는 데이터 전처리 후 데이터프레임을 보여주는 도면이다.
도 7은 모델생성부의 모델 생성에 대한 일반적인 설명이 기재된 도면이다.
도 8은 모델생성부가 모델 생성 시 사용하는 복수 개의 인공지능 알고리즘이 정리된 도면이다.
도 9a 내지 도 9c는 모델생성부가 ARIMA(Autoregressive model) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 10a 내지 도 10d는 모델생성부가 Multi-linear Regression 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 11a 및 도 11b는 모델생성부가 XGBoost 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 12a 내지 도 12c는 모델생성부가 LSTM(univariate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 13a 내지 도 13c는 모델생성부가 CNN(univariate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 14a 내지 도 14c는 모델생성부가 LSTM(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 15a 내지 도 15c는 모델생성부가 CNN(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 16a 내지 도 16c는 모델생성부가 LSTM2(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 17a 내지 도 17c는 모델생성부가 GRU(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.
도 18은 본 발명에 따른 모델생성부가 생성한 각 모델을 모델비교부가 각각 비교하여 최적의 모델을 선정하는 일 실시예가 도시된 도면이다.
1 is a diagram showing the configuration of a caching system capable of predicting and resolving server overload through an artificial intelligence algorithm according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a detailed configuration of a monitoring unit according to an embodiment of the present invention in FIG. 1 together.
FIG. 3 is a diagram illustrating detailed configurations of a server load prediction modeling and prediction service unit according to an embodiment of the present invention in FIG. 1 .
4 and 5 are diagrams showing each configuration of the server load prediction modeling module.
6A is a diagram showing an example of the collection of data loaded in the log DB unit by the pre-processing unit.
6B is a diagram showing a data frame after data pre-processing.
7 is a diagram illustrating a general description of model generation of a model generator.
8 is a diagram showing a plurality of artificial intelligence algorithms used by the model generator when generating a model.
9A to 9C are diagrams illustrating an example in which a model generator generates a model through an autoregressive model (ARIMA) algorithm.
10A to 10D are diagrams showing examples in which a model generator generates a model through a multi-linear regression algorithm.
11A and 11B are diagrams showing an example in which a model generator generates a model through an XGBoost algorithm.
12A to 12C are diagrams illustrating examples in which a model generator generates a model through a univariate (LSTM) algorithm.
13A to 13C are diagrams illustrating an example in which a model generator generates a model through a univariate (CNN) algorithm.
14A to 14C are diagrams illustrating examples in which a model generator generates a model through a multi-variate (LSTM) algorithm.
15A to 15C are diagrams illustrating examples in which a model generator generates a model through a multi-variate (CNN) algorithm.
16A to 16C are views showing examples in which a model generator generates a model through a multi-variate (LSTM2) algorithm.
17A to 17C are diagrams illustrating an example in which a model generator generates a model through a multi-variate (GRU) algorithm.
18 is a view showing an embodiment in which the model comparison unit compares each model generated by the model generator according to the present invention and selects an optimal model.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.Hereinafter, some embodiments of the present invention will be described in detail through exemplary drawings. In adding reference numerals to components of each drawing, it should be noted that the same components have the same numerals as much as possible, even if they are displayed on different drawings.

그리고 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.And, in describing the embodiments of the present invention, if it is determined that a detailed description of a related known configuration or function hinders understanding of the embodiments of the present invention, the detailed description will be omitted.

또한, 본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다.Also, terms such as first, second, A, B, (a), and (b) may be used to describe components of an embodiment of the present invention. These terms are only used to distinguish the component from other components, and the nature, order, or order of the corresponding component is not limited by the term.

본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다” 및/또는 “포함하는” 은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.In this specification, the singular form also includes the plural form unless otherwise specified in the phrase. The terms "comprising" and/or "comprising" used in the specification do not exclude the presence or addition of one or more other components other than the recited components.

이하, 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명하고자 한다.Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템(1000)의 구성을 나타낸 도면이다.1 is a diagram showing the configuration of a caching system 1000 capable of predicting and resolving server overload through an artificial intelligence algorithm according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템(1000)(이하, ‘캐싱 시스템(1000)’이라는 용어와 혼용함)은 캐시 서버(100) 및 고객 서버 그룹(200)을 포함한다.Referring to FIG. 1, a caching system 1000 capable of predicting and resolving server overload through an artificial intelligence algorithm according to an embodiment of the present invention (hereinafter, mixed with the term 'caching system 1000') is a cache server (100) and customer server group (200).

캐시 서버(100)는 모니터링부(110), 캐시메모리부(120), 로그 DB부(130) 및 서버 부하 예측 모델링 및 예측 서비스부(140)를 포함한다. 고객 서버 그룹(200)은 Web 서버(210), WAS 서버(220) 및/또는 데이터베이스 서버(230)를 포함한다.The cache server 100 includes a monitoring unit 110, a cache memory unit 120, a log DB unit 130, and a server load prediction modeling and prediction service unit 140. The customer server group 200 includes a Web server 210, a WAS server 220 and/or a database server 230.

먼저 고객 서버 그룹(200)의 Web 서버(210)는 사용자의 요청에 따라 사용자에게 HTML로 구성된 웹 페이지를 제공하고, 웹 페이지를 통해 사용자로부터 요청(request) 메시지 및/또는 쿼리(query)를 수신하고 이를 WAS 서버(220)로 전달한다.First, the web server 210 of the customer server group 200 provides a web page composed of HTML to the user according to the user's request, and receives a request message and/or query from the user through the web page. and forwards it to the WAS server 220.

WAS 서버(220)는 Web 서버(210)로부터 전달되는 요청 메시지에 대한 응용프로그램 서비스를 처리한다. WAS 서버(220)는 응용프로그램을 실행하여 요청 메시지에 대한 연산을 수행하고 연산결과를 Web 서버(210)에 반환한다. 또한, WAS 서버(220)는 Web 서버(210)로부터 전달되는 쿼리를 데이터베이스 서버(230)로 전달한다. WAS server 220 processes the application service for the request message transmitted from the Web server 210. The WAS server 220 executes an application program, performs an operation on the request message, and returns the operation result to the web server 210. In addition, the WAS server 220 forwards the query transmitted from the web server 210 to the database server 230.

데이터베이스 서버(230)는 WAS 서버(220)로부터 전달받은 쿼리에 대한 응답이 될 수 있는 데이터를 조회하고, 조회결과를 WAS 서버(220)로 반환한다.The database server 230 retrieves data that may be a response to a query received from the WAS server 220 and returns the search result to the WAS server 220 .

캐시 서버(100)는 요청 메시지와 요청 메시지에 대한 응용프로그램의 연산결과를 캐시메모리부(120), 더 상세히는 캐시메모리부(120) 내 캐시메모리에 캐싱한다. 그리고, 캐시 서버(100)는 쿼리와 쿼리에 대한 데이터베이스 서버(230)의 조회결과를 캐시메모리부(120)에 캐싱한다. The cache server 100 caches the request message and the operation result of the application program for the request message in the cache memory unit 120, more specifically, in the cache memory within the cache memory unit 120. Then, the cache server 100 caches the query and the query result of the database server 230 for the query in the cache memory unit 120 .

이때, 캐시 서버(100)는 모든 요청 메시지와 모든 요청 메시지에 대한 연산결과를 캐싱하는 것이 아니라, 현재 사용량이 많거나, 후술하게 될 서버 부하 예측 모델링 및 예측 서비스부(140)에 의해 미래 시점에서 사용량이 많을 것으로 예측된 웹 페이지에서 요청되는 요청 메시지와 해당 요청 메시지에 대한 연산결과만을 캐싱한다. At this time, the cache server 100 does not cache all request messages and calculation results for all request messages, but the current usage is high, or at a future point in time by the server load prediction modeling and prediction service unit 140 to be described later. Only request messages requested from web pages expected to have high usage and operation results for the request messages are cached.

그리고, 캐시 서버(100)는 모든 쿼리와 모든 쿼리에 대한 조회결과를 캐싱하는 것이 아니라, 현재 반복적으로 사용되거나, 후술하게 될 서버 부하 예측 모델링 및 예측 서비스부(140)에 의해 미래 시점에서 사용자에 의해 반복적으로 사용될 것으로 예측된 쿼리 및 해당 쿼리에 대한 조회결과만을 캐싱한다. 서버 부하 예측 모델링 및 예측 서비스부(140)에 대한 상세한 설명은 후술한다.In addition, the cache server 100 does not cache all queries and search results for all queries, but is currently used repeatedly, or is used by the server load prediction modeling and prediction service unit 140 to be described later to provide information to users at a future point in time. Only queries that are predicted to be used repeatedly and the search results for those queries are cached. A detailed description of the server load prediction modeling and prediction service unit 140 will be described later.

이로써, 현재 사용량이 많거나 미래 사용량이 많을 것으로 연산된 웹 페이지에 대한 요청 메시지가 수신되고, 그 미래가 현재 시점으로 다가온 경우 WAS 서버(220)는 해당 요청 메시지에 대한 연산을 수행하지 않고, 캐시메모리부(120) 내부의 캐시메모리에 저장된 해당 요청 메시지에 대한 연산결과를 가져다가 Web 서버(210)를 통해 사용자에게 반환할 수 있다. As a result, when a request message for a web page calculated to have high current usage or high usage in the future is received, and the future approaches the present time, the WAS server 220 does not perform an operation on the request message and caches it. An operation result for a corresponding request message stored in the cache memory inside the memory unit 120 may be brought and returned to the user through the web server 210 .

그리고 현재 반복적으로 사용되거나 미래 반복적으로 사용될 것으로 연산된 쿼리가 수신되고, 그 미래가 현재 시점으로 다가온 경우, WAS 서버(220)는 해당 쿼리를 데이터베이스 서버(230)에 전달하지 않고, 캐시메모리부(120) 내 캐시메모리에 저장된 해당 쿼리에 대한 조회결과를 가져다가 Web 서버(210)를 통해 사용자에게 반환할 수 있다. 이를 통해, 전체 캐싱 시스템(1000)의 처리속도 및 응답속도를 향상시킬 수 있다.In addition, when a query calculated to be used repeatedly in the present or to be used repeatedly in the future is received, and the future comes to the present time, the WAS server 220 does not pass the query to the database server 230, the cache memory unit ( 120) A search result for a corresponding query stored in the cache memory may be retrieved and returned to the user through the web server 210. Through this, the processing speed and response speed of the entire caching system 1000 can be improved.

도 2는 도 1에서 본 발명의 일 실시예에 따른 모니터링부(110)의 상세 구성을 함께 나타낸 도면이다.FIG. 2 is a view showing the detailed configuration of the monitoring unit 110 according to an embodiment of the present invention in FIG. 1 together.

도 2를 참조하면, 모니터링부(110)는 WAS 연산결과 캐싱 모듈(111) 및 데이터베이스 조회결과 캐싱 모듈(113)을 포함한다.Referring to FIG. 2 , the monitoring unit 110 includes a WAS calculation result caching module 111 and a database search result caching module 113 .

WAS 연산결과 캐싱 모듈(111)은 사용량이 많은 웹 페이지에서 요청되는 요청 메시지 및 해당 요청 메시지에 대한 응용프로그램의 연산결과를 캐시메모리부(120)에 캐싱한다. 그리고, WAS 연산결과 캐싱 모듈(111)은 해당 웹 페이지와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 연산결과의 유효성을 판단한다. 즉, WAS 연산결과 캐싱 모듈(111)은 해당 웹 페이지를 구성하는 정보, 해당 웹 페이지에서 요청되는 요청 메시지의 내용 정보, 해당 요청 메시지의 형식 정보 등에 변화(변경)가 있는지 여부를 모니터링하고 변화가 없는 경우 캐시메모리부(120)에 저장된 연산결과가 유효한 것으로 판단하고, 변화가 있는 경우 캐시메모리부(120)에 저장된 연산결과가 더 이상 유효하지 않은 것으로 판단한다. 유효한 경우, 캐시메모리부(120)에 저장된 연산결과는 WAS 서버(220), Web 서버(210)를 거쳐 사용자에게 반환된다. 더 이상 유효하지 않은 경우, 캐시메모리부(120)에 저장된 연산결과는 삭제된다. WAS 연산결과 캐싱 모듈(111)은 모니터링 결과, 변경된 정보가, 자주 변경되는 정보인, 개인화 관련 정보, 세션, 쿠키, 파라미터 값 등에 해당하는 경우, WAS 서버(220) 및/또는 데이터베이스 서버(230)로부터 변경된 새로운 값을 가져와 캐시메모리부(120)에 캐싱하여 정보를 실시간으로 자동 업데이트한다. WAS 연산결과 캐싱 모듈(111)은 해당 요청 메시지와 해당 요청 메시지에 대한 연산결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 캐시메모리부(120)에 캐싱한다. 이로써, 응용프로그램의 소스를 수정하거나 방식의 변경 없이 캐싱된 데이터가 사용될 수 있다.The WAS calculation result caching module 111 caches a request message requested from a web page with high usage and an operation result of an application program for the corresponding request message in the cache memory unit 120 . And, the WAS calculation result caching module 111 monitors changes in data associated with the corresponding web page in real time to determine the validity of the cached calculation result. That is, the WAS operation result caching module 111 monitors whether there is a change (change) in the information constituting the corresponding web page, the content information of the request message requested in the corresponding web page, and the format information of the corresponding request message. If there is no change, it is determined that the operation result stored in the cache memory unit 120 is valid, and if there is a change, it is determined that the operation result stored in the cache memory unit 120 is no longer valid. If valid, the operation result stored in the cache memory unit 120 is returned to the user via the WAS server 220 and the web server 210. When it is no longer valid, the operation result stored in the cache memory unit 120 is deleted. The WAS calculation result caching module 111, when the monitoring result and the changed information corresponds to frequently changed information such as personalization-related information, session, cookie, parameter value, etc., the WAS server 220 and/or the database server 230 A new value changed from is retrieved and cached in the cache memory unit 120 to automatically update information in real time. The WAS calculation result caching module 111 converts the request message and the calculation result for the request message into a reusable serialized object form according to object storage rules, and caches the result in the cache memory unit 120 . As a result, cached data can be used without modifying the source of the application program or changing the method.

데이터베이스 조회결과 캐싱 모듈(113)은 반복적으로 사용되는 쿼리 및 해당 쿼리에 대한 데이터베이스의 조회결과를 캐시메모리부(120)에 캐싱한다. 그리고, 데이터베이스 조회결과 캐싱 모듈(113)은 해당 쿼리와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 조회결과의 유효성을 판단한다. 즉, 데이터베이스 조회결과 캐싱 모듈(113)은 해당 쿼리의 내용 정보, 해당 쿼리의 형식 정보 등에 변화가 있는지 여부를 모니터링하고 변화가 없는 경우 캐시메모리부(120)에 저장된 조회결과가 유효한 것으로 판단하고, 변화가 있는 경우 캐시메모리부(120)에 저장된 조회결과가 더 이상 유효하지 않은 것으로 판단한다. 유효한 경우, 캐시메모리부(120)에 저장된 조회결과는 WAS 서버(220), Web 서버(210)를 거쳐 사용자에게 반환된다. 더 이상 유효하지 않은 경우, 캐시메모리부(120)에 저장된 조회결과는 삭제된다. 데이터베이스 조회결과 캐싱 모듈(113)은 해당 쿼리와 해당 쿼리에 대한 조회결과를 오브젝트 저장 규칙에 따라 재사용이 가능한 직렬화된 오브젝트 형태로 변환하여 캐시메모리부(120)에 캐싱한다. 이로써, 응용프로그램의 소스를 수정하거나 방식의 변경 없이 캐싱된 데이터가 사용될 수 있다.The database search result caching module 113 caches a query that is used repeatedly and a database search result for the query in the cache memory unit 120 . Then, the database query result caching module 113 monitors changes in data related to the query in real time to determine the validity of the cached query result. That is, the database search result caching module 113 monitors whether there is a change in the content information of the query, the form information of the query, etc., and determines that the search result stored in the cache memory unit 120 is valid if there is no change, If there is a change, it is determined that the inquiry result stored in the cache memory unit 120 is no longer valid. If valid, the query result stored in the cache memory unit 120 is returned to the user via the WAS server 220 and the web server 210. When it is no longer valid, the inquiry result stored in the cache memory unit 120 is deleted. The database search result caching module 113 converts the corresponding query and the search result of the query into a reusable serialized object form according to an object storage rule, and caches the result in the cache memory unit 120 . As a result, cached data can be used without modifying the source of the application program or changing the method.

한편, 전술한 WAS 연산결과 캐싱 모듈(111) 및 데이터베이스 조회결과 캐싱 모듈(113)이 각각 모니터링 한 정보들은 로그 DB부(130)에 각각 적재된다. Meanwhile, the information monitored by the above-described WAS calculation result caching module 111 and the database inquiry result caching module 113 are loaded into the log DB unit 130, respectively.

즉, WAS 연산결과 캐싱 모듈(111)이 캐시메모리부(120)에 캐싱한 요청 메시지 및 해당 요청 메시지에 대한 응용프로그램의 연산결과, 해당 웹 페이지와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 연산결과의 유효성, 모니터링한 해당 웹 페이지를 구성하는 정보, 해당 웹 페이지에서 요청되는 요청 메시지의 내용 정보, 해당 요청 메시지의 형식 정보 등에 변화(변경)가 있는지 여부에 대한 정보를 로그 DB부(130)에 적재한다. 또한 WAS 연산결과 캐싱 모듈(111)은 모니터링 결과 변경된 정보가 자주 변경되는 정보인, 개인화 관련 정보, 세션, 쿠키, 파라미터 값 등에 해당하는 경우, WAS 서버(220) 및/또는 데이터베이스 서버(230)로부터 변경된 새로운 값을 가져와 캐시메모리부(120)에 캐싱하여 정보를 실시간으로 자동 업데이트한 정보도 함께 로그 DB부(130)에 적재한다.That is, the request message cached by the WAS operation result caching module 111 in the cache memory unit 120, the operation result of the application program for the request message, and the change in data associated with the corresponding web page are monitored in real time and the cached operation is performed. The log DB unit 130 stores information on whether there is a change (change) in the validity of the result, information constituting the monitored web page, content information of the request message requested from the corresponding web page, format information of the corresponding request message, etc. load into In addition, the WAS calculation result caching module 111, when the changed information as a result of monitoring corresponds to frequently changed information such as personalization related information, session, cookie, parameter value, etc., from the WAS server 220 and/or database server 230. The changed new value is brought and cached in the cache memory unit 120, and the information automatically updated in real time is also loaded into the log DB unit 130.

그리고 데이터베이스 조회결과 캐싱 모듈(113)이 캐시메모리부(120)에 캐싱한 쿼리 및 해당 쿼리에 대한 데이터베이스의 조회결과, 해당 쿼리와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 조회결과의 유효성, 해당 쿼리의 내용 정보, 해당 쿼리의 형식 정보 등에 변화가 있는지 여부에 대한 정보를 로그 DB부(130)에 적재한다.In addition, the query cached by the database query result caching module 113 in the cache memory unit 120, the query result of the database for the corresponding query, and the change in data related to the query are monitored in real time to determine the validity of the cached query result, the corresponding Information on whether or not there is a change in the content information of the query and the format information of the corresponding query is loaded into the log DB unit 130 .

모니터링부(110)는, 로그 DB부(130)에 각 정보들을 적재할 때, 각 정보에 해당하는 날짜 정보(date), 시간 정보(time), 해당 사용자의 접속 수(user access count), 접속 및 연산 시 cpu 사용량(cpu usage), 접속 및 연산 시 메모리 사용량(memory usage) 등에 관한 정보를 필수적으로 적재한다. 다만, 이에 한정되는 것은 아니고, 이후 추가(파생) 데이터는 소스 내에서 생성한 후 활용할 수도 있다.When the monitoring unit 110 loads each piece of information in the log DB unit 130, the date information (date) and time information (time) corresponding to each piece of information, the user access count (user access count), access In addition, information about CPU usage during operation, memory usage during access and operation, and the like are necessarily loaded. However, it is not limited thereto, and additional (derived) data may be used after being created in the source.

로그 DB부(130)에 적재된 정보들은 주기적으로 모니터링부(110)에 의해 적재되며, 후술하게 될 서버 부하 예측 모델링 모듈(141)에 의해 분석되어 서버 부하 예측 모델을 모델링할 때 이용된다.Information loaded in the log DB unit 130 is periodically loaded by the monitoring unit 110, analyzed by a server load prediction modeling module 141 to be described later, and used when modeling a server load prediction model.

도 3은 도 1에서 본 발명의 일 실시예에 따른 서버 부하 예측 모델링 및 예측 서비스부(140)의 상세 구성을 함께 나타낸 도면이다.FIG. 3 is a diagram showing the detailed configuration of the server load prediction modeling and prediction service unit 140 according to an embodiment of the present invention in FIG. 1 .

서버 부하 예측 모델링 및 예측 서비스부(140)는, 서버 부하 예측 모델링 모듈(141) 및 서버 부하 예측 서비스 모듈(143)을 포함한다.The server load prediction modeling and prediction service unit 140 includes a server load prediction modeling module 141 and a server load prediction service module 143 .

서버 부하 예측 모델링 모듈(141)은 모니터링부(110)가 로그 DB에 적재된 정보들을 기초로 미래 시점의 서버 내 부하를 예측하기 위한 모델을 생성하고, 학습한다. 서버 부하 예측 모델링 모듈(141)은 다양한 서버 부하 예측 알고리즘을 통해 복수 개의 모델을 생성 및 학습할 수 있다.The server load prediction modeling module 141 generates and learns a model for predicting load in the server at a future point of time based on information loaded in the log DB by the monitoring unit 110 . The server load prediction modeling module 141 may generate and learn a plurality of models through various server load prediction algorithms.

서버 부하 예측 서비스 모듈(143)은, 생성 및 학습된 모델을 통해 미래 시점에서의 서버 부하를 예측한다. 서버 부하 예측 서비스 모듈(143)은 서버 부하 예측 모델링 모듈(141)이 생성한 복수 개의 모델을 통해 서버 부하를 예측하며, 일 실시예로서, 서버 부하 예측 모델링 모듈(141)이 생성한 복수 개의 모델들 중 최적의 모델을 사용할 수 있다. 서버 부하 예측 서비스 모듈(143)은 미래 시점(예를 들어 1시간 후)의 서버 내 부하를 0 내지 1 사이의 값으로 예측하여 모니터링부(110)로 제공할 수 있다.The server load prediction service module 143 predicts the server load at a future point in time through the generated and learned model. The server load prediction service module 143 predicts the server load through a plurality of models generated by the server load prediction modeling module 141, and as an embodiment, the plurality of models generated by the server load prediction modeling module 141. Among them, the optimal model can be used. The server load prediction service module 143 may predict the load in the server at a future point in time (eg, 1 hour later) as a value between 0 and 1 and provide the predicted load to the monitoring unit 110 .

모니터링부(110)는 요청메시지 또는 쿼리 등이 고객 서버 그룹(200) 내 각 서버를 통해 수신되면, 서버 부하 예측 서비스 모듈(143)로 각 요청메시지 또는 쿼리 등이 미래 시점에서 사용량이 많거나 또는 반복적으로 사용될 것인지 그 예측을 요청하고, 그 예측에 대한 응답을 수신한다. 모니터링부(110)가 수신한 응답에서 그 요청메시지 또는 쿼리 등이 미래 시점에서 사용량이 많거나 또는 반복적으로 사용될 것으로 예측되는 경우 모니터링부(110)는 수신한 요청메시지, 그 요청 메시지에 대한 연산결과, 쿼리 및 그 쿼리에 대한 조회결과를 캐시메모리부(120)에, 전술한 바와 같이, 캐싱한다. When a request message or query is received through each server in the customer server group 200, the monitoring unit 110 determines whether each request message or query has high usage at a future point in time to the server load prediction service module 143 or It requests a prediction that it will be used repeatedly, and receives a response to the prediction. In the response received by the monitoring unit 110, if it is predicted that the request message or query will be used frequently or repeatedly in the future, the monitoring unit 110 calculates the received request message and the operation result for the request message. , queries and search results for the queries are cached in the cache memory unit 120, as described above.

이후, WAS 서버(220)는 미래 사용량이 많을 것으로 연산된 웹 페이지에 대한 요청 메시지가 수신되고, 그 미래가 현재 시점으로 다가온 경우 해당 요청 메시지에 대한 연산을 수행하지 않고, 캐시메모리부(120) 내 캐시메모리에 저장된 해당 요청 메시지에 대한 연산결과를 가져다가 Web 서버(210)를 통해 사용자에게 반환하거나, 미래 반복적으로 사용될 것으로 연산된 쿼리가 수신되고, 그 미래가 현재 시점으로 다가온 경우, 해당 쿼리를 데이터베이스 서버(230)에 전달하지 않고, 캐시메모리부(120) 내 캐시메모리에 저장된 해당 쿼리에 대한 조회결과를 가져다가 Web 서버(210)를 통해 사용자에게 반환한다.Thereafter, the WAS server 220 receives a request message for a web page calculated to have a high usage in the future, and when the future approaches the current point in time, the cache memory unit 120 does not perform an operation on the corresponding request message. When a query calculated to be used repeatedly in the future is received and the result of the operation of the request message stored in my cache memory is returned to the user through the web server 210, and the future approaches the present time, the query is not transmitted to the database server 230, the query result for the query stored in the cache memory in the cache memory unit 120 is brought and returned to the user through the web server 210.

도 4 및 도 5는 서버 부하 예측 모델링 모듈(141)의 각 구성을 나타낸 도면이다.4 and 5 are diagrams showing each configuration of the server load prediction modeling module 141 .

서버 부하 예측 모델링 모듈(141)은, 도 4 및 도 5를 참조하면, 전처리부(1411), 모델생성부(1413), 모델비교부(1415) 및 모델배포부(1417)를 포함한다.Referring to FIGS. 4 and 5 , the server load prediction modeling module 141 includes a preprocessor 1411 , a model generator 1413 , a model comparison unit 1415 and a model distribution unit 1417 .

도 6a는 전처리부(1411)가 로그 DB부(130)에 적재된 데이터의 수집의 일 예를 보여주는 도면이고, 도 6b는 데이터 전처리 후 데이터프레임을 보여주는 도면이다.6A is a diagram showing an example of the collection of data loaded in the log DB unit 130 by the preprocessing unit 1411, and FIG. 6B is a diagram showing a data frame after data preprocessing.

전처리부(1411)는, 도 6a를 참조하면, 고객 서버 그룹(200) 내 각 서버로부터 로그 정보를 수집한다. 전처리부(1411)가 로그 DB부(130)로부터 수집하는 데이터는 아래 1 내지 4를 포함한다.Referring to FIG. 6A , the pre-processing unit 1411 collects log information from each server in the customer server group 200 . The data collected by the pre-processing unit 1411 from the log DB unit 130 includes 1 to 4 below.

1. Request Date time (2022-11-14 10:00:00) : varchar(50)1. Request Date time (2022-11-14 10:00:00) : varchar(50)

2. User access count (지난 한 시간의 user access count) : bigint2. User access count (user access count for the last hour): bigint

3. CPU usage in decimal format (ex: cpu 55% 사용 중일경우 0.55 전송) : float3. CPU usage in decimal format (ex: send 0.55 when cpu is using 55%) : float

4. Memory usage in decimal format (ex: mem 60% 사용 중일경우 0.60 전송) : float4. Memory usage in decimal format (ex: 0.60 when mem 60% is in use) : float

전처리부(1411)는, 도 6b에 도시된 바와 같이, 로그 DB부(130)에 적재된 데이터(원본 데이터, 원천 데이터)를 전처리한다. 이후, 전처리부(1411)는 모델 학습 및 검증을 위해 분할한다.As shown in FIG. 6B , the pre-processing unit 1411 pre-processes data (original data, original data) loaded in the log DB unit 130 . Then, the pre-processing unit 1411 divides for model learning and verification.

도 7은 모델생성부(1413)의 모델 생성에 대한 일반적인 설명이 기재된 도면이고, 도 8은 모델생성부(1413)가 모델 생성 시 사용하는 복수 개의 인공지능 알고리즘이 정리된 도면이다.FIG. 7 is a diagram illustrating a general description of model generation by the model generator 1413, and FIG. 8 is a diagram showing a plurality of artificial intelligence algorithms used by the model generator 1413 when generating a model.

모델생성부(1413)는, 전처리된 데이터에 기초하여, 도 7을 참조하면, 다양한 인공지능 알고리즘에 따라 모델을 생성한다.Based on the preprocessed data, the model generating unit 1413, referring to FIG. 7, generates a model according to various artificial intelligence algorithms.

이때 모델생성부(1413)의 모델링 데이터는, 일 실시예로서 도 7에 도시된 바와 같이 일정 기간 내 시간 별 시간 정보(time)를 기준으로 날짜 정보(date), 해당 사용자의 접속 수(user access count), 접속 및 연산 시 cpu 사용량(cpu usage), 접속 및 연산 시 메모리 사용량(memory usage) 등에 관한 정보를 포함한다.At this time, the modeling data of the model generator 1413 is date information (date) based on time information (time) for each time within a certain period, as shown in FIG. 7 as an embodiment, and the number of user accesses (user access) count), cpu usage during access and operation, memory usage during access and operation, etc.

모델생성부(1413)의 모델 생성 시 결과는 일 실시예로서 도 7에 도시된 바와 같이 2022년 1월부터 3월까지 users 칼럼의 경우 일정 패턴을 보이는 것을 알 수 있으며, 이를 기초로 미래의 시점에서의 서버 내 부하를 예측할 수 있다. As an example, when the model generation unit 1413 generates a model, it can be seen that the users column shows a certain pattern from January to March 2022, as shown in FIG. It is possible to predict the load in the server at

전통적으로 시계열 데이터의 경우 cycle, seasonality, trend 를 반영하여 함수를 생성하며, 본 발명에 따른 모델생성부(1413)는 시계열 방법론으로써 ARIMA, SARIMA, ARIMAX, SARIMAX 등을 사용하며, 추가로 다중회귀분석(regression)을 사용하여 모델을 생성한 후 시계열 모델과 비교한다. 모델생성부(1413)는 최종적으로 인공신경모델 중 LSTM, GRU 및 CNN을 각각 단변수(users)와 다중변수를 사용하여 모델을 생성하고, 이후, 모델비교부(1415)는, 각 모델을 비교하고, 모델배포부(1417)에 의해 선정된 최적의 모델이 서버 부하 예측 서비스 모듈(143)로 배포되며, 서버 부하 예측 서비스 모듈(143)은 선정된 최적의 모델을 통해 모니터링부(110)로부터 요청받은 서버 내 부하 예측에 대한 응답을 전달한다.Traditionally, in the case of time series data, a function is created by reflecting cycle, seasonality, and trend, and the model generator 1413 according to the present invention uses ARIMA, SARIMA, ARIMAX, SARIMAX, etc. as a time series methodology, and additionally multiple regression analysis After creating the model using (regression), it is compared with the time series model. The model generation unit 1413 finally creates a model using LSTM, GRU, and CNN among the artificial neural models using single variables (users) and multiple variables, respectively, and then, the model comparison unit 1415 compares each model And, the optimal model selected by the model distribution unit 1417 is distributed to the server load prediction service module 143, and the server load prediction service module 143 monitors the selected optimal model from the monitoring unit 110. Delivers the response to the load prediction in the requested server.

모델생성부(1413)는, 일 실시예로서, 도 8에 정리된 바와 같이 총 9개의 알고리즘을 통해 각각 모델을 생성할 수 있다. 즉, 시계열 유형으로서 ARIMA(Autoregressive model)을 사용할 수 있고, 회귀분석 유형으로서 Multi-linear Regression, XGBoost를 사용할 수 있고, 인공신경망 유형으로서, LSTM(univariate), CNN(univariate), LSTM(multi-variate), CNN(multi-variate), LSTM2(multi-variate), GRU(multi-variate)를 사용할 수 있다.As an embodiment, the model generator 1413 may generate each model through a total of 9 algorithms as summarized in FIG. 8 . That is, ARIMA (Autoregressive model) can be used as a time series type, Multi-linear Regression and XGBoost can be used as regression analysis types, and LSTM (univariate), CNN (univariate), and LSTM (multi-variate) as artificial neural network types. ), CNN (multi-variate), LSTM2 (multi-variate), and GRU (multi-variate) can be used.

도 9a 내지 도 9c는 모델생성부(1413)가 ARIMA(Autoregressive model) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다.9A to 9C are diagrams illustrating examples in which the model generator 1413 generates a model through an ARIMA (Autoregressive model) algorithm.

먼저 모델생성부(1413)는, 도 9a 내지 도 9c를 참조하면, ARIMA(Autoregressive model)를 사용하여 서버 내 부하 예측 모델을 생성한다. 이때 예측 결과 차트는 도 9c에 도시되어 있다.First, the model generating unit 1413, referring to FIGS. 9A to 9C , uses an autoregressive model (ARIMA) to generate a load prediction model within the server. At this time, the prediction result chart is shown in FIG. 9C.

ARIMA는 AR(Autoregression) 모형과 MA(moving average, 이동평균)모형을 합친 모형으로 시계열분석 모형 중 가장 기본적인 모형이다. SARIMA는 ARIMA 모형에 seasonality를 추가한 모형으로 계절성을 띄는 모형을 분석할 때 사용되는 모형이다. ARIMA is a combination of AR (Autoregression) model and MA (moving average) model, and is the most basic model among time series analysis models. SARIMA is a model in which seasonality is added to the ARIMA model, and is used when analyzing a model with seasonality.

한편, ARIMA와 SARIMA모델은 날짜를 인덱스로 한 종속변수만을 모델 생성에 사용하는데 반해 SARIMAX는 exogenous로 외인성 변수를 사용하는 방법이다. 즉 날짜 인덱스 외에 day of month, day of week, hour, cpu usage, memory usage 등을 더 사용한다. 모델 자체의 결과로는 경우에 따라 음수가 나오는 경우도 있어 후처리 또는 API 서비스 시 룰을 적용하여 0 이상의 값을 반환하도록 할 필요 있다.On the other hand, ARIMA and SARIMA models use only the dependent variable with date as an index to create the model, whereas SARIMAX is an exogenous method that uses exogenous variables. That is, in addition to the date index, day of month, day of week, hour, cpu usage, memory usage, etc. are used. As a result of the model itself, there are cases where negative numbers come out, so it is necessary to return a value greater than 0 by applying a rule during post-processing or API service.

주요 라이브러리로는 Pandas, Sklearn(scikit learn) 및 Skforecast 등이 있으며, 결과적으로는 ARIMA계열은 인공신경망보다 정확도가 떨어지는 것으로 판단된다.Major libraries include Pandas, Sklearn (scikit learn), and Skforecast. As a result, ARIMA series is judged to be less accurate than artificial neural networks.

도 10a 내지 도 10d는 모델생성부(1413)가 Multi-linear Regression 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 10c에 도시되어 있다.10A to 10D are diagrams showing examples in which the model generator 1413 generates a model through a multi-linear regression algorithm. At this time, the prediction result chart is shown in FIG. 10C.

모델 생성부는, 도 10a 내지 도 10d를 참조하면, Multi-linear Regression을 사용하여 서버 내 부하 예측 모델을 생성한다.The model generation unit, referring to FIGS. 10A to 10D , generates a load prediction model within the server using Multi-linear Regression.

Linear Regression은 가장 많이 활용되는 예측모델 알고리즘의 하나로 통계적인 기법에서 차용되어 명확한 함수를 결과물로 표출하는 장점이 있다.Linear Regression is one of the most used predictive model algorithms and has the advantage of expressing a clear function as a result borrowed from statistical techniques.

이때 Ordinary Least Squares는 오차의 제곱의 합을 최소화하는 방법으로 함수를 찾아내는 방식을 의미한다.At this time, Ordinary Least Squares means a method of finding a function by minimizing the sum of squares of errors.

y = a_0 + a_1 * x ## Linear Equationy = a_0 + a_1 * x ## Linear Equation

비용함수(cost function)와 관련하여, OLS의 a_0와 a_1을 찾기 위한 함수는 모든 관찰값과 예측값의 차이를 제곱의 합이 최소화 되도록하는 2차함수가 되어 최저값을 찾도록 하는 함수를 의미한다.Regarding the cost function, the function for finding a_0 and a_1 of OLS means a function that finds the lowest value by becoming a quadratic function that minimizes the sum of squares of the difference between all observed values and predicted values.

이때 필요에 따라 독립변수를 추가하여 다중 회귀를 수행할 수 있다.At this time, multiple regression can be performed by adding independent variables as needed.

y = a_0 + a_1*x1 + a_2*x2 + a_3*x3 … y = a_0 + a_1*x1 + a_2*x2 + a_3*x3 …

주요 라이브러리로는 Pandas 및 Sklearn(scikit learn) 등이 있다.Major libraries include Pandas and Sklearn (scikit learn).

도 11a 및 도 11b는 모델생성부(1413)가 XGBoost 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 11b에 도시되어 있다.11A and 11B are diagrams showing an example in which the model generator 1413 generates a model through an XGBoost algorithm. At this time, the prediction result chart is shown in FIG. 11B.

모델생성부(1413)는, 도 11a 및 도 11b를 참조하면, XGBoost를 사용하여 서버 내 부하 예측 모델을 생성한다. Referring to FIGS. 11A and 11B , the model generator 1413 generates a load prediction model within the server using XGBoost.

XGBoost는 eXtreme Gradient boosting의 약자로, Boosting은 여러 개의 decision tree를 조합해서 사용하는 ensemble 기법을 의미한다. Boosting 기법을 사용한 알고리즘 중에서는 Gradient Boosting이 대표적이며, XGBoost를 병렬을 지원하는 gradient boost 모듈이 있다. XGBoost는 Regression과 분류 모두 사용 가능하다.XGBoost is an abbreviation of eXtreme Gradient boosting, and Boosting means an ensemble technique that uses a combination of multiple decision trees. Among algorithms using boosting techniques, gradient boosting is representative, and there is a gradient boost module that supports XGBoost in parallel. XGBoost can be used for both regression and classification.

도 12a 내지 도 12c는 모델생성부(1413)가 LSTM(univariate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 12c에 도시되어 있다.12A to 12C are views showing examples in which the model generator 1413 generates a model through a univariate (LSTM) algorithm. At this time, the prediction result chart is shown in FIG. 12C.

LSTM은 Long Short-term Memory의 약자로, 시퀀스 또는 시계열 데이터의 예측에 강점을 보이는 RNN 알고리즘이 데이터 셋이 길어질 수록 정확도가 떨어지는 약점을 보완한 알고리즘이다. LSTM은 장기의존성 문제와 vanishing gradient 문제를 해결한다.LSTM stands for Long Short-term Memory, and it compensates for the weakness of the RNN algorithm, which shows strength in predicting sequence or time-series data, in which accuracy decreases as the data set becomes longer. LSTM solves the long-term dependence problem and the vanishing gradient problem.

도 13a 내지 도 13c는 모델생성부(1413)가 CNN(univariate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 13c에 도시되어 있다.13A to 13C are diagrams showing examples in which the model generator 1413 generates a model through a univariate (CNN) algorithm. At this time, the prediction result chart is shown in FIG. 13C.

CNN(univariate)은 Convolutional Neural Networks의 약자로, 딥러닝에서 주로 이미지나 영상 처리에 쓰이며, 이름에서 보이듯 Convolution이라는 전처리 작업이 들어가는 Neural Network 모델이다. CNN(univariate)은 시퀀스 또는 시계열 데이터의 예측에 강점을 보이는 RNN 알고리즘이 데이터 셋이 길어질 수록 정확도가 떨어지는 약점을 보완한다. CNN(univariate)은 장기의존성 문제와 vanishing gradient 문제를 해결한다.CNN (univariate) is an abbreviation of Convolutional Neural Networks, and is mainly used for image or video processing in deep learning. CNN (univariate) compensates for the weakness of the RNN algorithm, which shows strength in predicting sequence or time series data, in which accuracy decreases as the data set becomes longer. CNN (univariate) solves the long-term dependence problem and the vanishing gradient problem.

도 14a 내지 도 14c는 모델생성부(1413)가 LSTM(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 14c에 도시되어 있다.14A to 14C are views showing examples in which the model generator 1413 generates a model through a multi-variate (LSTM) algorithm. At this time, the prediction result chart is shown in FIG. 14C.

LSTM은 Long Short-term Memory의 약자로, 시퀀스 또는 시계열 데이터의 예측에 강점을 보이는 RNN 알고리즘이 데이터 셋이 길어질수록 정확도가 떨어지는 약점을 보완한다. LSTM은 장기의존성 문제와 vanishing gradient 문제를 해결한다.LSTM stands for Long Short-term Memory, and the RNN algorithm, which is strong in predicting sequence or time series data, compensates for the weakness that accuracy decreases as the data set becomes longer. LSTM solves the long-term dependence problem and the vanishing gradient problem.

도 15a 내지 도 15c는 모델생성부(1413)가 CNN(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 15c에 도시되어 있다.15A to 15C are views showing examples in which the model generator 1413 generates a model through a multi-variate (CNN) algorithm. At this time, the prediction result chart is shown in FIG. 15C.

CNN은 전술한 바와 같이 Convolutional Neural Networks의 약자로, 딥러닝에서 주로 이미지나 영상 처리에 쓰이며 이름에서 보이듯 Convolution이라는 전처리 작업이 들어가는 Neural Network 모델이다. CNN은 시퀀스 또는 시계열 데이터의 예측에 강점을 보이는 RNN 알고리즘이 데이터 셋이 길어질수록 정확도가 떨어지는 약점을 보완한다. 또한 CNN은 장기의존성 문제와 vanishing gradient 문제를 해결한다.As mentioned above, CNN is an abbreviation of Convolutional Neural Networks. It is mainly used for image or video processing in deep learning, and as the name suggests, it is a neural network model that requires a preprocessing called convolution. CNN compensates for the weakness of RNN algorithms, which show strength in predicting sequence or time series data, in which accuracy decreases as the data set becomes longer. CNN also solves the long-term dependence problem and the vanishing gradient problem.

도 16a 내지 도 16c는 모델생성부(1413)가 LSTM2(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 16c에 도시되어 있다.16A to 16C are diagrams showing examples in which the model generator 1413 generates a model through a multi-variate (LSTM2) algorithm. At this time, the prediction result chart is shown in FIG. 16C.

LSTM은, 전술한 바와 같이, Long Short-term Memory의 약자로, 시퀀스 또는 시계열 데이터의 예측에 강점을 보이는 RNN 알고리즘이 데이터 셋이 길어질 수록 정확도가 떨어지는 약점을 보완한다. LSTM은 장기의존성 문제와 vanishing gradient 문제를 해결한다.LSTM, as described above, stands for Long Short-term Memory, and the RNN algorithm, which is strong in predicting sequence or time-series data, compensates for the weakness that accuracy decreases as the data set becomes longer. LSTM solves the long-term dependence problem and the vanishing gradient problem.

도 17a 내지 도 17c는 모델생성부(1413)가 GRU(multi-variate) 알고리즘을 통해 모델을 생성한 예시를 보여주는 도면이다. 이때 예측 결과 차트는 도 17c에 도시되어 있다.17A to 17C are diagrams showing examples in which the model generator 1413 generates a model through a multi-variate (GRU) algorithm. At this time, the prediction result chart is shown in FIG. 17C.

GRU(multi-variate)는 기존의 LSTM를 좀 더 간단하게 개선한 것으로, LSTM에 비해 수행속도 빠르나 정확도가 약간 떨어지는 경향이 있다. LSTM이 네 개의 게이트를 사용하는 반면 reset gate와 update gate 두 개만을 사용하며, 이러한 점이 속도 개선의 이유라 할 수 있다.GRU (multi-variate) is a simpler improvement of the existing LSTM. Compared to LSTM, the performance speed is faster, but the accuracy tends to be slightly lower. While LSTM uses four gates, it uses only two gates, a reset gate and an update gate, and this can be said to be the reason for the speed improvement.

도 18은 본 발명에 따른 모델생성부(1413)가 생성한 각 모델을 모델비교부(1415)가 각각 비교하고, 모델배포부(1417)가 최적의 모델을 선정하는 일 실시예가 도시된 도면이다.18 is a view showing an embodiment in which the model comparison unit 1415 compares each model generated by the model generator 1413 and the model distribution unit 1417 selects the optimal model according to the present invention. .

모델비교부(1415)는, 전술한 바와 같이, 모델생성부(1413)가 생성한 각 모델을 비교하고, 이를 기초로 모델배포부(1417)는 최적의 모델을 선정한다.As described above, the model comparison unit 1415 compares each model generated by the model generation unit 1413, and the model distribution unit 1417 selects an optimal model based on the comparison.

모델비교부(1415) 및 모델배포부(1417)가 최적의 모델을 선정한 예시는 도 18에 도시된 바와 같다.An example of selecting an optimal model by the model comparison unit 1415 and the model distribution unit 1417 is shown in FIG. 18 .

도 18을 참조하면, 모델배포부(1417)에 의한 최적의 모델 선정은 최종적으로 LSTM2(multi-variate)일 수 있으며, LSTM2(multi-variate)의 정확도가 모든 알고리즘 중 가장 높은 것으로 테스트될 수 있다. LSTM2(multi-variate)는 약 97.5%의 정확도를 보이는 것을 알 수 있다. 해당 모델의 손실값은 각각 학습시에는 loss: 0.0006이고, 검증시에는 val_loss: 0.0007으로 나타났다.Referring to FIG. 18, the optimal model selection by the model distribution unit 1417 may finally be LSTM2 (multi-variate), and the accuracy of LSTM2 (multi-variate) may be tested as the highest among all algorithms. . It can be seen that LSTM2 (multi-variate) shows about 97.5% accuracy. The loss value of the model was loss: 0.0006 during learning and val_loss: 0.0007 during verification, respectively.

한편, 전술한 미래 시점은 일반적으로 1시간 후를 기준으로 작성되었다. 그러나 만일 미래 시점이 시스템 상의 연산이 완료되기 이전에 그 미래가 도달하는 시점으로 설정되거나, 본 발명에 따른 캐싱 시스템(1000)이 턴 오프 상태에서 최초 턴 온 상태로 변경됨에 따라 최초 예측이 초, 분 단위 이후의 미래 시점을 예측해야 하거나, 및/또는 미래 시점이 가변적으로 변경됨에 따라 일시적으로 초, 분 단위의 미래를 예측해야 되는 경우, 모델배포부(1417)는 LSTM2(multi-variate)보다 GRU(multi-variate)를 기초로 생성한 모델을 최적의 모델로 선정할 수 있다. GRU(multi-variate)는, 전술한 바와 같이 LSTM보다 파라미터가 더욱 적어 연산 비용도 적고, 모델도 간단해 학습 속도가 더 빠르지만 비슷한 성능을 낼 수 있기 때문이다.On the other hand, the above-mentioned future time point is generally prepared based on 1 hour later. However, if the future time point is set to a time point at which the future arrives before the operation on the system is completed, or the caching system 1000 according to the present invention is changed from the turn-off state to the first turn-on state, the initial prediction is seconds, When it is necessary to predict the future time point after the minute unit, and/or temporarily predict the future time point in second or minute units as the future time point is variably changed, the model distribution unit 1417 is better than LSTM2 (multi-variate) A model generated based on GRU (multi-variate) can be selected as an optimal model. GRU (multi-variate), as described above, has fewer parameters than LSTM, so it has low computational cost, and its model is simple, so it has a faster learning rate, but it can produce similar performance.

한편, 본 명세서에서는 시계열 데이터 이상 탐지 수행을 위한 MLOps(Machine Learning Operations) 워크플로를 기술하고 관리할 수 있는 언어와 플랫폼을 제안한다. 시계열 데이터의 예측 및 이상 탐지를 수행하기 위해서는 분석된 모델을 빠르고 유연하게 운영 환경에 적용할 수 있는 MLOps 플랫폼이 필요하다. 이에, 최근 데이터 분석에 많이 활용되고 있는 Python 기반의 AMML(AI/ML Modeling Language)을 개발하여 손쉽게 MLOps 워크플로를 구성하고 실행할 수 있도록 제안한다. 제안하는 AI MLOps 플랫폼은 AMML을 이용하여 다양한 데이터 소스(R-DB, NoSql DB, Log File 등)에서 로그 DB부에 적재된 시계열 데이터인 날짜 정보(date), 시간 정보(time), 해당 사용자의 접속 수(user access count), 접속 및 연산 시 cpu 사용량(cpu usage), 접속 및 연산 시 메모리 사용량(memory usage) 등에 관한 정보 등 의 전처리 및 서버 내 부하 예측을 수행할 수 있다. Meanwhile, the present specification proposes a language and platform capable of describing and managing MLOps (Machine Learning Operations) workflow for detecting anomalies in time series data. In order to perform prediction and anomaly detection of time series data, an MLOps platform that can quickly and flexibly apply the analyzed model to the operating environment is required. Therefore, we propose to develop a Python-based AMML (AI/ML Modeling Language), which is widely used for data analysis, to easily configure and execute MLOps workflows. The proposed AI MLOps platform uses AMML to provide date information (date), time information (time), time series data loaded into the log DB from various data sources (R-DB, NoSql DB, Log File, etc.), It is possible to perform pre-processing of information such as user access count, CPU usage during access and operation, memory usage during access and operation, and load prediction in the server.

기계 학습은 인공지능의 한 분야로서, 컴퓨터가 학습할 수 있도록 알고리즘과 기술을 개발하는 분야이다. 즉, 학습된 모델 등을 통해 가치 있는 패턴이나 예측 등의 결과물을 얻는 것이다. 기계 학습은 학습 방법에 따라 지도 학습(supervised learning)과 비지도 학습(unsupervised learning)으로 구분된다.Machine learning is a field of artificial intelligence, which develops algorithms and techniques for computers to learn. In other words, it is to obtain results such as valuable patterns or predictions through the learned model. Machine learning is divided into supervised learning and unsupervised learning according to the learning method.

지도학습은 입력 데이터와 정답 라벨이 있는 데이터에 대해 모델을 학습하는 것이다. 대표적 알고리즘으로 SVM(support vector machine), 의사 결정 트리, 딥러닝 알고리즘 등이 있다. 반면 비지도 학습은 입력 데이터만 있는 경우에 학습하는 것이다. 대표적으로는 군집화 계열의 알고리즘이 존재하며 k-평균군집(k-means), DBSCAN(density-based spatial clustering of applications with noise)등이 있다. 기계 학습 모델의 적절한 운영을 위해서는 학습을 위한 자동화된 데이터의 확보 방안과 학습된 모델을 운영 환경에 지속해서 적용/관리하는 것이 중요하다. 최초 수집된 데이터로 모델을 만들 수는 있지만, 운영 환경 적용 후 점진적으로 데이터가 변화하는 Data drift 상황이 발생할 수 있기 때문이다. 이는 모델의 정확도를 낮아지게 만들며, 데이터 변화에 유연하게 적응할 수 없도록 한다. 따라서 변화하는 데이터를 운영 환경에서 지속적으로 수집 관리 하고 모델을 최신화해야 할 필요성이 있다. 특히, 캐싱 시스템(1000) 모니터링 시, 이상 상황의 사전 징후 변화 확인 및 추후 모델 학습을 위해 데이터를 저장 및 관리해야 한다. 일반적으로 캐싱 시스템(1000) 이상 발생 시, 담당자는 이상 상황 해결에 주안점을 두기 때문에, 데이터 확보 및 관리에 어려움이 있다. 이를 해결하기 위해서는 이상 데이터만 따로 저장 및 관리할 수 있어야 하며, 이상 발생 시 분석에 필요한 데이터를 자동으로 저장할 수 있어야 한다. 또한, 이렇게 확보된 데이터를 활용하여 학습된 모델을 운영 환경에 빠르게 적용할 수 있어야 한다.Supervised learning is training a model on input data and data with correct labels. Representative algorithms include support vector machines (SVMs), decision trees, and deep learning algorithms. On the other hand, unsupervised learning is learning when there is only input data. Representatively, clustering-based algorithms exist, such as k-means clustering and DBSCAN (density-based spatial clustering of applications with noise). For the proper operation of the machine learning model, it is important to secure automated data for learning and to continuously apply/manage the learned model to the operating environment. Although it is possible to create a model with the initially collected data, data drift may occur in which the data gradually changes after the operating environment is applied. This lowers the accuracy of the model and makes it impossible to flexibly adapt to data changes. Therefore, there is a need to continuously collect and manage changing data in the operating environment and update the model. In particular, when monitoring the caching system 1000, it is necessary to store and manage data in order to check changes in advance signs of abnormal situations and to learn models later. In general, when an error occurs in the caching system 1000, the person in charge focuses on solving the abnormal situation, so it is difficult to secure and manage data. In order to solve this problem, only abnormal data should be stored and managed separately, and data necessary for analysis should be automatically saved when an abnormality occurs. In addition, it should be possible to quickly apply the learned model to the operating environment by using the data obtained in this way.

Makinen et al.(2021)의 설문 조사에 따르면 기계 학습(machine learning, ML) 도메인에서 종사하는 전문가 중 40%의 응답자가 ML 모델과 운영을 위한 인프라를 모두 사용한다고 응답하였다. 또한, 분석에 사용되는 데이터는 주로 관계형 데이터와 시계열 데이터가 가장 많은 것으로 조사되었다. 이는 관계형 및 시계열 운영 환경 데이터의 저장 관리 및 지속적인 모델 학습/적용이 필요함을 시사한다.According to a survey by Makinen et al. (2021), among experts working in the machine learning (ML) domain, 40% of respondents said they use both ML models and infrastructure for operation. In addition, the data used for analysis were mostly relational data and time series data. This suggests the need for storage management and continuous model learning/application of relational and time series operating environment data.

시계열 데이터는 데이터가 시간적인 움직임을 포함하고 있을 때, 즉 어떤 기간에 걸쳐서 취해진 데이터라고 할 수 있다. 이러한 시계열 데이터를 예측하는 것은 전례 없는 변동과 불완전한 정보로 인해 어려움이 있다. 시계열 분석 기법으로는 통계적 기법과 딥러닝을 활용한 기법들이 있다. 전술한 바와 같이 통계적 기법으로는 회귀 분석, ARIMA(autoregressive integrated moving average) 기법 등이 있으며 딥러닝 기법으로는 LSTM(long short-term memory) 등 다양한 기법이 사용되고 있다.Time-series data can be said to be data taken over a certain period of time when the data includes temporal movement. Forecasting these time series data is challenging due to unprecedented fluctuations and incomplete information. Time series analysis techniques include statistical techniques and techniques using deep learning. As described above, regression analysis, an autoregressive integrated moving average (ARIMA) technique, etc. are used as statistical techniques, and various techniques such as long short-term memory (LSTM) are used as deep learning techniques.

본 명세서에서는 시계열 데이터 분석을 위한 MLOps 플랫폼을 제안한다. 세부적으로는 자동화된 운영 데이터 저장과 신속한 모델을 전개를 위한 Python 기반의 워크플로기술 언어 AMML(AI/ML modeling language)과 실행 엔진, 모델 관리 방안에 대해 제안한다. 이하에서는 순서를 붙여 제안하는 MLOps(machine learning operations) 플랫폼에 대한 세부 사항, LSTM 모델을 사용한 사례 및 MLOps 플랫폼에 대한 결론 등을 제시한다.In this specification, we propose an MLOps platform for time-series data analysis. Specifically, it proposes the Python-based workflow technology language AMML (AI/ML modeling language) for automated operation data storage and rapid model deployment, an execution engine, and model management methods. In the following, details of the MLOps (machine learning operations) platform proposed in order, cases using the LSTM model, and conclusions about the MLOps platform are presented.

1. Related works1. Related works

1.1 MLOps1.1 MLOps

MLOps는 운영 환경에서 기계 학습 모델을 배포하기 위한 기술 및 도구들의 모음으로 DevOps와 기계 학습의 조합이라 할 수 있다. DevOps는 소프트웨어 개발과 운영의 차이를 줄이는 것을 주요 목적으로 하고 있으며 두 가지 주원칙으로 CI(continuous integration)/CD (continuous deploy)가 있다. CI는 개발조직이 빈번하게 통합하여 개발하는 방식이다. 이를 통해 지속적으로 테스트를 수행하고 오류를 조금씩 개선해 나갈 수 있으며 결과적으로 소프트웨어의 개발 기간을 단축할 수 있다. CD는 운영 환경 적용 및 테스트를 위한 새로운 버전이 지속적으로 생성되는 방식이다. 이러한 방식은 새로운 기능과 지속적인 통합(CI)으로 고객에게 더욱 빠른 서비스 도달을 제공한다.MLOps is a combination of DevOps and machine learning, a collection of technologies and tools for deploying machine learning models in production environments. DevOps aims to reduce the gap between software development and operation, and CI (continuous integration)/CD (continuous deployment) are two main principles. CI is a method in which development organizations frequently integrate and develop. Through this, it is possible to continuously perform tests and improve errors little by little, and as a result, the software development period can be shortened. CD is a method in which new versions are continuously created for application and testing of the operating environment. This approach provides faster service delivery to customers with new features and continuous integration (CI).

MLOps는 이러한 DevOps의 CI/CD 기능에 지속적인 모델 재학습이라는 CT(continuous training) 개념을 추가한 것이다. CT는 새로운 데이터를 사용하여 주기적으로 모델을 재학습하는 것으로 새로운 모델의 품질 평가를 포함하는 개념이다.MLOps adds the continuous training (CT) concept of continuous model retraining to these CI/CD functions of DevOps. CT is a concept that involves periodically retraining a model using new data and evaluating the quality of a new model.

MLOps의 자동화 수준에 따라 성숙도 수준을 나타낼 수 있다. MLOps 성숙도 수준에 대한 표준은 현재 없지만, 참조할만한 주요 성숙도 모델로서, 구글과 마이크로소프트에서 정의한 MLOps 성숙도 수준이 있다. 구글의 성숙도 모델은 <그림 1>과 같이 총 3단계로 수준 0: 수동 프로세스 (Manual process), 수준 1: ML 파이프라인 자동화(MLpipeline automation), 수준 2: CI/CD 파이프라인 자동화(CI/CD pipeline automation) 단계로 구분된다. 마이크로소프트의 성숙도 단계는 <그림 2>와 같이 총 5단계로 구성된다. 각 수준은 수준 0: MLOps 없음(No MLOps), 수준 1: DevOps는 있지만 MLOps 없음(DevOps but no MLOps), 수준 2: 자동화된 학습(Automated Training), 수준 3: 자동화된 모델 배포(Automated Model Deployment), 수준 4: 전체 MLOps 자동화된 작업(Full MLOps Automated Operations)으로 구성된다.The level of automation in MLOps can indicate a level of maturity. There is currently no standard for MLOps maturity levels, but as a major maturity model for reference, there are MLOps maturity levels defined by Google and Microsoft. As shown in <Figure 1>, Google's maturity model has a total of three levels: level 0: manual process, level 1: ML pipeline automation, level 2: CI/CD pipeline automation (CI/CD pipeline automation) step. Microsoft's maturity level consists of a total of five levels as shown in <Figure 2>. Level 0: No MLOps, Level 1: DevOps but no MLOps, Level 2: Automated Training, Level 3: Automated Model Deployment ), Level 4: consists of Full MLOps Automated Operations.

<그림 1> Google's MLOps Maturity Level<Figure 1> Google's MLOps Maturity Level

<그림 2> Microsoft's MLOps Maturity Level<Figure 2> Microsoft's MLOps Maturity Level

MLOps는 다양한 오픈소스 및 기업에서 솔루션이 개발되고 있다. 오픈소스 솔루션으로는 MLflow와 Kubeflow 등이 활발히 개발되고 있다. MLflow는 python으로 개발되었다. 주요 구성요소로는 Trackings, Projects, Models, Model Registry로 구성되어 있다. Tracking은 기계 학습 실험의 매개변수, 코드 및 결과를 기록하는 API와 UI이다. Projects는 재사용 가능한 코드를 패키징하기 위한 표준 형식이다. Models는 기계 학습 모델을 여러 가지 방식으로 패키징하기 위한 규칙과 도구를 제공한다.MLOps solutions are being developed by various open sources and companies. MLflow and Kubeflow are actively being developed as open source solutions. MLflow is developed in python. The main components are composed of Trackings, Projects, Models, and Model Registry. Tracking is an API and UI that records the parameters, code, and results of machine learning experiments. Projects are a standard format for packaging reusable code. Models provides rules and tools for packaging machine learning models in different ways.

Model Registry는 MLflow 모델의 전체 수명 주기를 공동으로 관리하기 위한 중앙 집중식 모델 저장소, API 및 UI 를 제공한다. Kubeflow는 Kubernetes에서 기계 학습 워크플로를 이식 가능하며 확장할 수 있게 배포한다. 주요 구성요소로는 Notebooks, TensorFlow model training, Model serving, Katib 가 있다. Notebooks는 주피터 노트북을 생성하고 관리할 수 있다, TensorFlow model training은 딥러닝 모델을 학습할 수 있다. Model serving은 KFServing과 Seldon Core를 사용하여 모델을 서빙한다. Pipelines는 컨테이너를 기반으로 확장 가능한 end-to-end 기계 학습 워크플로를 구축한다. Katib는 하이퍼 파라미터를 튜닝할 수 있게 하고, 신경망 아키텍처 탐색 기능을 제공한다. 상용솔루션으로는 마이크로소프트의 Azure Machine Learning, AWS의 SageMaker 및 구글의 Vertex AI 등이 있다. 이들 서비스는 클라우드 상에서 모델 개발 및 운영을 할 수 있게 한다. 주피터 노트북을 이용하여 데이터 분석 환경을 지원하며, UI를 통한 워크플로 설정과 모델 관리 기능을 제공하고 있다. 하지만, UI로 만들어진 워크플로를 이해관계자와 공유하고 재활용하기에 어려운 점이 있다.Model Registry provides a centralized model repository, API, and UI to collectively manage the entire lifecycle of MLflow models. Kubeflow provides a portable and scalable deployment of machine learning workflows on Kubernetes. Key components include Notebooks, TensorFlow model training, Model serving, and Katib. Notebooks can create and manage Jupyter notebooks, and TensorFlow model training can train deep learning models. Model serving uses KFServing and Seldon Core to serve models. Pipelines build scalable, end-to-end machine learning workflows based on containers. Katib enables hyperparameter tuning and provides neural network architecture exploration capabilities. Commercial solutions include Microsoft's Azure Machine Learning, AWS's SageMaker, and Google's Vertex AI. These services enable model development and operation in the cloud. It supports data analysis environment using Jupyter notebook, and provides workflow setting and model management function through UI. However, there are difficulties in sharing and reusing the workflow created with the UI with stakeholders.

1.2 ML-Schema1.2 ML-Schema

ML-Schema는 W3C(world wide web consortium) Machine learning schema community group에 의해 제안된 것으로, 기계 학습 개발자 간의 상호운용성을 제공하는 것이 목적이다. 이를 위해 기계 학습 알고리즘, 데이터 셋 및 테스트에 대한 정보를 표현하고 교환하는 데 사용할 수 있는 클래스, 속성 및 제한 집합을 제공하는 공유 스키마를 제시하고 있다.ML-Schema is proposed by the W3C (world wide web consortium) Machine Learning Schema community group, and its purpose is to provide interoperability between machine learning developers. To do this, we present a shared schema that provides a set of classes, properties, and constraints that can be used to represent and exchange information about machine learning algorithms, data sets, and tests.

Mun et al. (2021)에서는 ML-Schema와 PROV-ML기반으로 딥러닝 모델을 정의하고 학습할 수 있는 언어인 DL2IA(deep learning description language for image analysis)을 제안하였다. DL2IA는 XML로 만들어진 언어이며 번호판 인식을 위한 딥러닝 모델을 표현 및 사용하여 학습과 검증을 수행할 수 있음을 보였다. 하지만 XML은 인간이 쉽게 이해하고 사용하는 어려운 점이 있으며 표현이 길어지는 단점이 있다. 또한, XML에 워크플로와 모델 정보가 모두 포함되어 있어 이해가 어렵다. 이에 본 명세서에서는 간략화된 AMML을 제안한다. AMML은 간략한 워크플로와 모델 표현 방식을 제공하여, 이해당사자 간의 공유를 편리하게 한다.Mun et al. (2021) proposed DL2IA (deep learning description language for image analysis), a language that can define and learn deep learning models based on ML-Schema and PROV-ML. DL2IA is a language made of XML, and it was shown that learning and verification can be performed by expressing and using a deep learning model for license plate recognition. However, XML has a disadvantage that it is difficult for humans to easily understand and use, and the expression is long. Also, XML contains both workflow and model information, making it difficult to understand. Accordingly, in this specification, a simplified AMML is proposed. AMML provides a simplified workflow and model representation method, facilitating sharing among stakeholders.

1.3 LSTM1.3 LSTMs

LSTM은 딥러닝 분야에서 시계열 데이터 분석에서 주로 사용된다. LSTM은 RNN(recurrent neural network)을 개선한 모델이다. RNN은 기존 신경망의 세포가 상태를 저장하지 않는 것과는 다르게 세포가 상태를 저장하는 것이 특징이다. 또한, 이전 시간의 상태를 입력으로 사용한다. LSTM is mainly used in time series data analysis in the field of deep learning. LSTM is an improved model of RNN (recurrent neural network). RNNs are characterized by cells storing states, unlike cells of existing neural networks that do not store states. Also, it uses the state of the previous time as input.

모델은 BPTT(backpropagation through time) 알고리즘을 통해 수행한다. BPTT 알고리즘은 기존의 backpropagation 알고리즘을 RNN에서 사용할 수 있도록 수정한 학습 알고리즘이다. 하지만, RNN은 기존 신경망 알고리즘의 문제점이었던 시간이 지날수록 영향도가 폭발하거나 줄어드는 문제가 발생한다. LSTM은 이 문제를 해결하기 위해 Forget gate, Input gate, Output gate를 사용하여 모델의 성능을 향상시킨다. Forget gate는 이전 시간의 입력에 대한 처리를 수행하고, Input gate는 현재 입력을 처리하며, Output gate는 모델의 출력에 대한 처리를 수행한다.The model is performed through the BPTT (backpropagation through time) algorithm. The BPTT algorithm is a learning algorithm modified so that the existing backpropagation algorithm can be used in RNN. However, RNN has a problem of exploding or decreasing its influence over time, which was a problem of existing neural network algorithms. LSTM improves the performance of the model by using forget gate, input gate, and output gate to solve this problem. Forget gate processes the input of the previous time, input gate processes the current input, and output gate processes the output of the model.

1.4 YAML(YAML ain’t markup language)1.4 YAML ain't markup language

XML은 컴퓨터를 통해 파싱이 쉽고 구조화되어 있는 장점이 있지만, 사람보다는 컴퓨터가 이해하기 쉬운 형태로 되어 있고, 작성 시 각 시작 태그와 종료 태그를 작성하여야 해 사용이 어려운 측면이 있다. YAML은 사람이 이해하기 쉬운 형태의 언어를 지향하고 있다. 키-값 형태 및 목록 형태의 다양한 데이터를 YAML로 손쉽게 표현할 수 있다. <그림 3>은 구매 목록을 YAML(왼쪽)과 XML(오른쪽)로 데이터를 표현한 것으로, XML에 비해 YAML이 간결하고 이해하기 쉽게 표현되는 것을 확인할 수 있다.Although XML has the advantage of being easy to parse and structured through computers, it is in a format that is easier for computers to understand than humans, and it is difficult to use because each start tag and end tag must be written when writing. YAML aims to be a language that is easy for humans to understand. A variety of data in key-value format and list format can be easily expressed in YAML. <Figure 3> shows the data of the purchase list in YAML (left) and XML (right). Compared to XML, YAML is concise and easy to understand.

<그림 3> Products purchased list using YAML and XML<Figure 3> Products purchased list using YAML and XML

4. AMML for workflow4. AMML for workflow

AMML은 MLOps의 워크플로를 유연하게 구성하기 위해 워크플로 구성언어와 딥러닝 모델을 정의하는 언어로 나뉜다. 워크플로 구성언어는 리눅스 커맨드 라인과 유사하게 구성할 수 있도록 하였으며, 모델 정의 언어는 YAML을 사용하였다.AMML is divided into a workflow construction language and a language defining deep learning models to flexibly configure the workflow of MLOps. The workflow configuration language was configured similarly to the Linux command line, and YAML was used as the model definition language.

AMML 워크플로 구성언어는 컴포넌트 간의 연결 관계를 파이프('|')를 이용하여 표현하였다. 즉, 파이프 이전 컴포넌트의 출력이 이후 컴포넌트의 입력이 되는 방식이다.In the AMML workflow composition language, the connection relationship between components is expressed using a pipe ('|'). That is, the output of the component before the pipe becomes the input of the component after the pipe.

<그림 4>는 워크플로 구성언어의 예이다. 3개의 normalsource로부터 데이터를 입력받아 평균과 표준편차를 출력하는 워크플로 구성의 예이다. normalsource는 설정된 평균과 표준편차로 정규분포를 가지는 데이터를 생성하는 컴포넌트이다. 워크플로를 다양한 형태로 구성할 수 있도록 여러 플로를 합칠 수 있는 ‘join’ 컴포넌트와 하나의 플로를 여러 플로로 나눌 수 있는 ‘split’ 컴포넌트를 지원하도록 설계하였다.<Figure 4> is an example of a workflow configuration language. This is an example of a workflow composition that receives data from three normal sources and outputs the average and standard deviation. normalsource is a component that generates data having a normal distribution with a set mean and standard deviation. It is designed to support the ‘join’ component that can combine multiple flows and the ‘split’ component that can divide one flow into several flows so that workflows can be configured in various forms.

<그림 4> Example of AMML and Workflow Diagram<Figure 4> Example of AMML and Workflow Diagram

컴포넌트는 컴포넌트 명과 콜백 스크립트로 구성되어 있다. 컴포넌트 명은 데이터를 처리할 컴포넌트에 대한 명칭이다. 콜백 스크립트는 컴포넌트가 데이터를 처리할 때 호출되는 스크립트이다. 예를 들어, 'filter cond = col1 > 1'으로 정의되어 있으면, filter 컴포넌트는 실행시 데이터를 하나씩 수신받아 col1의 값이 1 보다 큰 경우에만 다음 파이프라인으로 데이터를 전송한다. 이때, filter가 컴포넌트 명이며 ‘cond = col1 > 1’은 콜백 스크립트이다. 이러한 워크플로 구성언어는 워크플로 구성을 위한 바이트 코드와 콜백 스크립트 바이트 코드로 컴파일된다. 워크플로 컴포넌트에는 콜백 스크립트 바이트 코드가 설정되어 실행 시 수행한다. A component consists of a component name and a callback script. The component name is the name of a component to process data. A callback script is a script that is called when a component processes data. For example, if it is defined as 'filter cond = col1 > 1', the filter component receives data one by one during execution and transmits data to the next pipeline only when the value of col1 is greater than 1. At this time, filter is the component name and ‘cond = col1 > 1’ is the callback script. This workflow configuration language is compiled into bytecode for workflow configuration and callback script bytecode. The callback script byte code is set in the workflow component and executed when executed.

<그림 5>는 워크플로 컴파일 수행 예이다. ①은 워크플로의 filter 컴포넌트의 생성 명령어이며, ②는 워크플로의 filter 컴포넌트의 조건인 ‘cond = col1 > 1’스크립트의 컴파일된 바이트 코드이다. 콜백 스크립트는 사칙 연산 및 비교, boolean 연산 등 기본적인 연산을 지원하며, built-in으로 제공하는 메소드 호출을 지원한다.<Figure 5> is an example of workflow compilation. ① is the command to create the filter component of the workflow, and ② is the compiled bytecode of the ‘cond = col1 > 1’ script, which is the condition of the filter component of the workflow. The callback script supports basic operations such as four arithmetic operations, comparisons, and boolean operations, and supports method calls provided as built-in.

<그림 5> Workflow and Callback Script bytecode<Figure 5> Workflow and Callback Script bytecode

<그림 6>은 컴포넌트의 상속 구조와 각 컴포넌트를 표현한 것이다. 컴포넌트는 AbstractComponent를 최상위 추상클래스로 하여 AbstractIngress, AbstractProgress, AbstractEgress로 분류하였다. AbstractIngress는 데이터 소스로부터 데이터를 가져와서 다음 컴포넌트로 전달하는 역할을 한다. 새로운 형태의 데이터 소스를 만들기 위해서는 AbstractIngress를 상속받아 구현할 수 있다.<Figure 6> shows the component inheritance structure and each component. Components are classified into AbstractIngress, AbstractProgress, and AbstractEgress with AbstractComponent as the highest abstract class. AbstractIngress is responsible for getting data from the data source and passing it to the next component. In order to create a new type of data source, it can be implemented by inheriting AbstractIngress.

AbstractProgress는 이전 컴포넌트로부터 데이터를 받아 처리를 수행하고 처리된 데이터를 다음 컴포넌트로 전달하는 역할을 한다. 예를 들어, filter, minmax scaler, zscore scaler, LSTM 등 데이터 필터링 및 변환 작업들과 예측 및 학습을 수행하는 컴포넌트이다. AbstractEgresss는 이전 컴포넌트에서 입력받은 데이터를 처리하고 종료하는 컴포넌트이다. print, alert 등의 컴포넌트가 여기에 속한다. 즉, 다음 컴포넌트로 전달할 데이터가 없는 경우 사용되며 보통 워크플로의 마지막 컴포넌트로 사용된다. 각 컴포넌트는 multiprocess 형태로 독립적으로 구동된다. 데이터의 수발신은 프로세스 사이의 queue를 통해 이루어진다.AbstractProgress receives data from the previous component, processes it, and transfers the processed data to the next component. For example, it is a component that performs data filtering and transformation tasks such as filter, minmax scaler, zscore scaler, and LSTM, as well as prediction and learning. AbstractEgresss is a component that processes and terminates data received from the previous component. Components such as print and alert belong to this category. That is, it is used when there is no data to be passed to the next component, and is usually used as the last component in a workflow. Each component runs independently in the form of multiprocess. Sending and receiving of data is done through queues between processes.

<그림 6> Component Class Diagram<Figure 6> Component Class Diagram

각 컴포넌트는 데이터 소스로부터 사전(dictionary) 형태의 데이터를 수신하여 한 건씩 처리하도록 하였다. 사전 형태의 데이터는 컬럼명과 데이터가 key-value 형식으로 되어 있는 데이터 형태로 python에서 기본적으로 지원하는 데이터 타입이다. 데이터 소스는 사전 형태로 표현할 수 있는 것이면 RDB 뿐만 아니라 NoSql 및 로그 파일 등 다양한 데이터 소스를 추가로 구현하여 사용할 수 있다.Each component received data in the form of a dictionary from the data source and processed them one by one. Dictionary-type data is a data type in which column names and data are in key-value format, and is a data type that is basically supported by Python. As long as the data source can be expressed in the form of a dictionary, various data sources such as RDB as well as NoSql and log files can be additionally implemented and used.

워크플로 구성언어는 모델의 학습 및 적용을 위한 워크플로를 구성하며, 데이터 필터링, 컬럼 추출 등 다양한 전처리 작업(minmax, z-score scaler등) 및 이상 발생 시 알람 발생, 스냅샷 생성 등을 제공하여 프로세스를 다양하게 구성할 수 있도록 한다.The workflow configuration language configures the workflow for learning and applying the model, and provides various preprocessing tasks (minmax, z-score scaler, etc.) such as data filtering and column extraction, as well as generating alarms and creating snapshots when abnormalities occur Allow the process to be configured in a variety of ways.

이 중 스냅샷 생성 컴포넌트는 내부의 버퍼에 입력된 데이터를 저장하고 있다. 다른 컴포넌트에서 스냅샷 저장 이벤트가 발생하면 데이터를 저장하는 방식이다. 주로 운영 환경에서 이상 현상 발생시 버퍼의 데이터를 데이터베이스부에 즉시 저장하여 추후 분석이나 모델 재학습에 활용할 수 있도록한다. <그림 7>은 Alert 발생시 데이터를 저장하는 방식을 표시한 것이다. ①은 감시 컴포넌트(surveillance component)로부터 Alert이 발생한 것이다. ②는 alert 정보를 저장하는 과정이다. ③에서는 Snapshot 컴포넌트에 alert 발생 event를 전송한다. ④는 Snapshot 컴포넌트의 버퍼 내의 데이터를 저장하는 과정이다.Among them, the snapshot generation component stores input data in an internal buffer. This is a method of saving data when a snapshot save event occurs in another component. Mainly, when an anomaly occurs in the operating environment, the data in the buffer is immediately saved in the database so that it can be used for later analysis or model relearning. <Figure 7> shows how to save data when an alert occurs. ① is an alert generated from a surveillance component. ② is the process of saving alert information. In ③, an alert occurrence event is transmitted to the Snapshot component. ④ is the process of saving the data in the buffer of the Snapshot component.

<그림 7> Process of snapshot event<Figure 7> Process of snapshot event

5. AMML for model5.AMML for models

딥러닝 모델은 YAML을 사용하여 정의한다. 모델의 정의 구조는 모델과 학습으로 구분된다. dataset 및 전처리 과정 등은 워크플로를 통해 구성되기 때문에 따로 정의하지 않는다. <그림 8>은 일반적인 DNN(deep neural network)을 YAML로 표시한 것이다. 총 6개의 입력 필드에서 데이터를 받아 1개의 출력을 발생하는 구조이다.Deep learning models are defined using YAML. The definition structure of the model is divided into model and learning. The dataset and preprocessing process are not defined separately because they are configured through the workflow. <Figure 8> is a general DNN (deep neural network) expressed in YAML. It is a structure that receives data from a total of six input fields and generates one output.

<그림 8> Example of AMML for model<Figure 8> Example of AMML for model

모델은 딥러닝 모델의 layer를 설정하여 모델의 구조를 정의한다. 각 layer는 활성화 함수 및 unit 개수 등 파라미터를 설정하고 조절할 수 있다. 본 명세서에서는 시계열 데이터를 분석하기 위한 Input, LSTM 및 Dense 컴포넌트를 사용하여 모델을 구성하였다. 학습은 모델 훈련시 필요한 loss 함수 및 optimizer 등 파라미터를 설정하여 구성할 수 있다. 모델 학습 컴포넌트는 모델과 학습 정보를 이용하여 Keras 라이브러리를 사용하여 모델을 구성하고 학습시킨다. 사용된 Keras는 2.9.0 버전을 사용하였다.The model defines the structure of the model by setting the layers of the deep learning model. Each layer can set and adjust parameters such as the activation function and the number of units. In this specification, a model was constructed using Input, LSTM, and Dense components for analyzing time series data. Learning can be configured by setting parameters such as the loss function and optimizer required for model training. The model learning component constructs and trains a model using the Keras library using the model and training information. Keras used was version 2.9.0.

정의된 딥러닝 모델의 YAML은 모델명과 함께 데이터베이스부에 저장된다. LSTM 학습 컴포넌트에서는 설정된 모델명을 참조하여 모델을 데이터베이스부에 YAML을 적재한다. 로드된 YAML을 사용하여 모델의 구조를 생성한 후 데이터 소스로부터 입력된 데이터를 수신받아 학습을 수행한다.The YAML of the defined deep learning model is stored in the database along with the model name. In the LSTM learning component, YAML is loaded into the database by referring to the set model name. After creating the model structure using the loaded YAML, learning is performed by receiving input data from the data source.

6. Dataset6.Dataset

시계열 모델 테스트 및 검증을 위해 ETDataset (electricity transformer dataset)을 활용하였다.ETDataset (electricity transformer dataset) was used to test and verify the time series model.

ETDataset은 변압기 오일의 온도를 예측하여 변압기 예방보존에 활용하기 위한 데이터 셋으로 2년간 실제 플랫폼에서 데이터를 수집한 것이다. 본 실험에서는 ETT(electricity transformer temperature)-Small dataset 중 시간 단위로 측정된 ETT-h1 dataset을 사용하여 학습하였다. 데이터 셋의 구성은 날짜와 오일 온도 포함하여 총 8개 컬럼으로 구성된다. <그림 9>는 ETT-h1의 컬럼 구조와 샘플 데이터를 표시한 것이다.ETDataset is a data set for predicting the temperature of transformer oil and using it for preventive maintenance of transformers. In this experiment, learning was performed using the ETT-h1 dataset measured in units of time among the ETT (electricity transformer temperature)-Small dataset. The composition of the data set consists of a total of 8 columns including date and oil temperature. <Figure 9> shows the column structure and sample data of ETT-h1.

<그림 9> Structure and sample of ETT-h1<Figure 9> Structure and sample of ETT-h1

7. AMML model for ETDataset analysis7. AMML model for ETDataset analysis

AMML을 이용한 ETDataset 분석을 위한 워크플로는 학습 워크플로와 예측 워크플로로 구성하였다. <그림 10>은 학습 워크플로의 구조를 표현하고 있다. 학습 워크플로는 학습용 데이터 소스에서 ETT-h1의 데이터를 로드하여, 전처리 작업인 min-max 스케일 작업을 수행한다.The workflow for ETDataset analysis using AMML consists of a learning workflow and a prediction workflow. <Figure 10> expresses the structure of the learning workflow. The learning workflow loads the data of ETT-h1 from the training data source and performs min-max scale work, which is a preprocessing task.

min-max scaler는 컬럼의 min, max 값을 사용하여 데이터를 0과 1사이의 값으로 변환한다. 전처리 작업이 완료된 데이터를 LSTM 모델 학습 컴포넌트에 입력하여 모델을 학습 및 생성한다. 모델은 시계열 데이터를 분석에서 자주 사용되는 LSTM을 사용하여 구성하였다.The min-max scaler converts the data into values between 0 and 1 using the min and max values of the column. The preprocessed data is input to the LSTM model learning component to learn and create a model. The model was constructed using LSTM, which is frequently used in analyzing time series data.

<그림 10> Workflow for model training<Figure 10> Workflow for model training

<그림 11>은 모델의 구조와 학습 관련 YAML 설정을 보여준다. LSTM의 activation 함수는 ‘tanh’로 설정하였다. <Figure 11> shows the structure of the model and YAML settings related to learning. The activation function of LSTM is set to ‘tanh’.

LSTM 모델 학습 시, loss 함수로는 ‘MAE(mean absolute error)’를 사용하였으며, optimizer는 ‘adam’ 을 사용하였다. 학습은 총 20 epoch로 수행하였다.When training the LSTM model, ‘MAE (mean absolute error)’ was used as the loss function, and ‘adam’ was used as the optimizer. Learning was performed for a total of 20 epochs.

LSTM 모델 학습 컴포넌트는 epoch별 오차(loss)를 출력으로 하며, 다음 컴포넌트로 전달한다.The LSTM model learning component outputs the error (loss) for each epoch and passes it to the next component.

<그림 11> Model for ETT-h1 analysis<Figure 11> Model for ETT-h1 analysis

학습된 모델 파일은 하둡 파일 시스템(HDFS, hadoop file system)에 저장하고, 모델 메타 정보(모델명, 모델의 하둡 저장위치)는 데이터베이스부(PostgreSQL)에 저장하여 추후 변압기 온도 예측 시 사용할 수 있도록 한다. <그림 12>는 학습된 모델의 저장 과정을 보여준다. ① LSTM training 컴포넌트에서 모델 학습이 종료되면 모델과 메타데이터를 등록하기 위해 Model Manager에게 요청한다. ② Model Manager는 메타데이터를 PostgreSQL 데이터베이스부에 저장한다. 이는 학습된 모델을 검색하여 사용할 수 있도록 해준다. ③ 메타데이터 저장이 완료되면 모델을 HDFS 저장하여 완료한다.The learned model file is stored in the Hadoop file system (HDFS), and the model meta information (model name, Hadoop storage location of the model) is stored in the database (PostgreSQL) so that it can be used when predicting the temperature of the transformer in the future. <Figure 12> shows the process of saving the learned model. ① When model training is completed in the LSTM training component, a request is made to the Model Manager to register the model and metadata. ② Model Manager stores metadata in the PostgreSQL database. This allows you to retrieve and use the trained model. ③ When the metadata is saved, save the model to HDFS to complete.

<그림 12> Process of model storing<Figure 12> Process of model storing

예측 워크플로는 <그림 13>과 같이 구성하였다. 학습 워크플로와 유사하게 데이터 소스로부터 ETT-h1 데이터를 로드하여 min-max 스케일 작업을 수행한다. 이후 LSTM 컴포넌트를 이용하여 예측을 수행한다. LSTM 컴포넌트는 모델이 저장된 Model Manager에게 모델을 요청하여 로딩한다. 예측된 값에 대해 minmax_inverse 컴포넌트를 통해 원래 스케일로 변경 후 예측값을 출력한다.The prediction workflow is configured as shown in <Figure 13>. Similar to the training workflow, we load the ETT-h1 data from the data source to perform a min-max scale operation. Then, prediction is performed using the LSTM component. The LSTM component loads the model by requesting it from the Model Manager where the model is stored. After changing the predicted value to the original scale through the minmax_inverse component, the predicted value is output.

<그림 13> Workflow for ETT-h1 predict<Figure 13> Workflow for ETT-h1 predict

<그림 14>는 모델의 로딩 과정을 보여준다. ① Model Manager에 모델을 요청한다. ② Model Manager는 메타데이터(HDFS의 위치 정보)를 가져온다. ③ HDFS에서 모델을 가져온다. ④ LSTM 컴포넌트로 모델을 보낸다. 최종적으로 LSTM 컴포넌트는 로딩된 모델을 사용하여 입력 데이터에 대해 예측을 수행하고 결과를 출력한다.<Figure 14> shows the loading process of the model. ① Request a model from the Model Manager. ② Model Manager brings metadata (location information of HDFS). ③ Import the model from HDFS. ④ Send the model to the LSTM component. Finally, the LSTM component uses the loaded model to make predictions on the input data and outputs the results.

<그림 14> Process of model loading<Figure 14> Process of model loading

8. LSTM model training and results8. LSTM model training and results

AMML로 만들어진 학습 워크플로를 수행하였다. <그림 15>는 모델 학습을 위한 워크플로를 등록하고 수행하는 화면이다. 워크플로는 <그림 10>의 워크플로와 동일한 “source id="ett" | minmax_scaler | train_lstm model="ett:0.1", epoch=20 | print”을 사용하였다.A learning workflow made with AMML was performed. <Figure 15> is a screen for registering and executing the workflow for model learning. The workflow is the same as that of <Figure 10> “source id="ett" | minmax_scaler | train_lstm model="ett:0.1", epoch=20 | print” was used.

<그림 15> Workflow for training LSTM model<Figure 15> Workflow for training LSTM model

<그림 16>은 <그림 15>의 워크플로로 학습 수행 시 loss의 변화를 보여주는 그래프이다. 학습 최종 loss는 0.0130이었다. <그림 17>은 모델이 예측한 값과 실제 값과 비교하는 그래프로 상당히 유사하게 예측된 것을 확인할 수 있다. 예측 오차는 0.0075로 측정되었다.<Figure 16> is a graph showing the change in loss when training is performed with the workflow in <Figure 15>. The final learning loss was 0.0130. <Figure 17> is a graph comparing the value predicted by the model with the actual value, and it can be seen that the predicted value is quite similar. The prediction error was measured as 0.0075.

<그림 16> loss of model training<Figure 16> loss of model training

<그림 17> ett-h1 predict and label data<Figure 17> ett-h1 predict and label data

AMML의 설계 원칙은 최대한 간결하게 워크플로 파이프라인을 구성하고 설정을 최소화하여 사용성을 높이는 데 중점을 두었다. Google의 Vertex AI 플랫폼은 Python SDK를 제공하여, Pipeline을 구축할 수 있도록 지원하고 있다. 하지만, Python과 같은 일반적인 언어는 워크플로의 표현이 AMML에 비해 상대적으로 복잡하다. 또한, MicroSoft는 Azure ML에서 워크플로 구성을 위한 GUI 를 제공한다. 제안하는 AMML은 단순 복사하여 공유함으로써 다른 이해관계자와 협업이 편리하다. 전처리 및 분석 컴포넌트를 다양하게 변경하여 유연하게 적용해 볼 수 있다. 또한, AMML로 이루어진 워크플로를 운영 환경에 손쉽게 배포할 수 있다.AMML's design principles focused on constructing workflow pipelines as concisely as possible and minimizing setup to increase usability. Google's Vertex AI platform provides a Python SDK to help build pipelines. However, in general languages such as Python, the workflow expression is relatively complex compared to AMML. Additionally, MicroSoft provides a GUI for configuring workflows in Azure ML. The proposed AMML is easy to collaborate with other stakeholders by simply copying and sharing. Preprocessing and analysis components can be changed and applied flexibly. In addition, workflows made in AMML can be easily deployed in production environments.

9. Conclusions9. Conclusions

많은 경우 기계 학습 전문가들은 모델 개발과 더불어 모델을 운영 환경에 적용한다. 이를 위해 학습용 데이터의 수집 및 가공 작업을 수행하며, 지속적으로 모델을 학습 및 개선한다. 학습된 모델은 주기적으로 운영 환경에 적용되어야 한다. MLOps는 이러한 과정들을 자동화하여 업무 효율성을 향상하고 개발자와 전문가들의 상호운용성을 강화할 수 있다. 본 명세서에서는 MLOps를 구현하는 방안으로 AMML을 제시하였으며, 적용 가능성을 판단하기 위해 LSTM 모델을 학습하고 예측을 수행하였다. 이를 통해 AMML을 사용한 학습 및 예측 워크플로를 운영 환경에 유연하게 적용할 수 있음을 확인하였다. In many cases, machine learning experts put models into production alongside model development. To this end, it collects and processes training data, and continuously learns and improves models. The learned model must be periodically applied to the operating environment. MLOps can automate these processes to improve work efficiency and enhance interoperability between developers and experts. In this specification, AMML is presented as a way to implement MLOps, and LSTM models are learned and predicted to determine applicability. Through this, it was confirmed that the learning and prediction workflow using AMML can be flexibly applied to the operating environment.

본 발명에 따른 데이터베이스 서버(230) 및 로그 DB부(130)는 데이터베이스 관리 시스템(이하, DBMS)을 포함할 수 있다. DBMS는 다수의 사용자들이 데이터베이스 서버(230) 및 로그 DB부(130) 내의 데이터에 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS는 IMS, CODASYL DB, DB2, ORACLE, INFORMIX, SYBASE, INGRES, MS-SQL, Objectivity, O2, Versanat, Ontos, Gemstone, Unisql, Object Store, Starburst, Postgres, Tibero, MySQL 또는 MS-access등을 포함할 수 있다. DBMS는 특정 명령어의 입력에 따라 해당하는 특정 데이터에 접근하는 것이 가능하다. The database server 230 and the log DB unit 130 according to the present invention may include a database management system (DBMS). The DBMS is a set of software tools that allow multiple users to access data in the database server 230 and log DB unit 130. DBMS includes IMS, CODASYL DB, DB2, ORACLE, INFORMIX, SYBASE, INGRES, MS-SQL, Objectivity, O2, Versanat, Ontos, Gemstone, Unisql, Object Store, Starburst, Postgres, Tibero, MySQL or MS-access can do. DBMS can access specific data according to the input of a specific command.

본 명세서에서 캐시 서버 및 고객 서버 그룹(200) 내 각 구성들은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들일 수 있다. 또는, 프로세서에 의해 구동되고 제어되는 소프트웨어 모듈들로서 동작할 수 있다. 나아가, 프로세서는 하드웨어 장치일 수 있다.In this specification, each component in the cache server and customer server group 200 may be processors that execute sequential processes stored in memory. Or, it can operate as software modules driven and controlled by a processor. Further, a processor may be a hardware device.

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1개의 유닛이 2개 이상의 하드웨어를 이용하여 실현되어도 되고, 2개 이상의 유닛이 1개의 하드웨어에 의해 실현되어도 된다.In this specification, a "unit" includes a unit realized by hardware, a unit realized by software, and a unit realized using both. Further, one unit may be realized using two or more hardware, and two or more units may be realized by one hardware.

본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예의 기재와 표현에 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명이 보호범위가 제한될 수도 없음을 다시 한 번 첨언한다.The protection scope of the present invention is not limited to the description and expression of the embodiments explicitly described above. In addition, it is added once again that the scope of protection of the present invention cannot be limited due to obvious changes or substitutions in the technical field to which the present invention belongs.

100 : 캐시 서버 110 : 모니터링부
111 : WAS 연산결과 캐싱 모듈
113 : 데이터베이스 조회결과 캐싱 모듈
120 : 캐시메모리부 130 : 로그 DB부
140 : 서버 부하 예측 모델링 및 예측 서비스부
141 : 서버 부하 예측 모델링 모듈
1411 : 전처리부 1413 : 모델생성부
1415 : 모델비교부 1417 : 모델배포부
143 : 서버 부하 예측 서비스 모듈
200 : 고객 서버 그룹 210 : Web 서버
220 : WAS 서버 230 : DB 서버
1000 : 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템
100: cache server 110: monitoring unit
111: WAS calculation result caching module
113: database query result caching module
120: cache memory unit 130: log DB unit
140: server load prediction modeling and prediction service department
141: server load prediction modeling module
1411: pre-processing unit 1413: model generation unit
1415: model comparison unit 1417: model distribution unit
143: server load prediction service module
200: customer server group 210: web server
220: WAS server 230: DB server
1000: A caching system that can predict and resolve server overload through artificial intelligence algorithms

Claims (5)

캐시 서버 및 고객 서버 그룹을 포함하는 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템에 있어서,
상기 고객 서버 그룹은,
사용자의 요청에 따라 사용자에게 HTML로 구성된 웹 페이지를 제공하고, 웹 페이지를 통해 사용자로부터 요청(request) 메시지 및 쿼리(query)를 수신하는 Web 서버;
상기 Web 서버로부터 상기 요청 메시지 및 상기 쿼리를 수신하고, 상기 요청 메시지에 대한 응용프로그램을 실행하여 상기 요청 메시지에 대한 연산을 수행하고 연산결과를 상기 Web 서버에 반환하는 WAS(Web Application Server) 서버; 및
상기 WAS 서버로부터 상기 쿼리를 수신하며 상기 쿼리에 대한 응답이 될 수 있는 데이터를 조회하고, 조회결과를 상기 WAS 서버로 반환하는 데이터베이스 서버를 포함하고,
상기 캐시 서버는,
상기 요청 메시지, 상기 요청 메시지에 대한 응용프로그램의 연산결과, 상기 쿼리 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시 메모리부에 캐싱하는 모니터링부; 및
상기 모니터링부가 상기 캐시 메모리부에 캐싱한 상기 요청 메시지, 상기 요청 메시지에 대한 응용프로그램의 연산결과, 상기 쿼리 및 상기 쿼리에 대한 데이터베이스의 조회결과에 기초하여 미래 시점의 서버 내 부하를 예측하는 서버 부하 예측 모델을 생성하는 서버 부하 예측 모델링 및 예측 서비스부를 포함하며,
상기 모니터링부는,
상기 서버 부하 예측 모델링 및 예측 서비스부가 생성한 서버 부하 예측 모델을 통해 미래 시점에서 사용량이 많을 것으로 예측된 웹 페이지에서 요청되는 요청 메시지와 상기 예측된 웹 페이지에서 요청되는 요청 메시지에 대한 연산결과만을 상기 캐시 메모리부에 캐싱하고, 상기 서버 부하 예측 모델링 및 예측 서비스부가 생성한 서버 부하 예측 모델을 통해 미래 시점에서 사용자에 의해 반복적으로 사용될 것으로 예측된 쿼리 및 상기 예측된 쿼리에 대한 조회결과만을 상기 캐시 메모리부에 캐싱하고,
상기 모니터링부는,
WAS 연산결과 캐싱 모듈 및 데이터베이스 조회결과 캐싱 모듈을 포함하며,
상기 WAS 연산결과 캐싱 모듈은,
웹 페이지에서 요청되는 요청 메시지 및 상기 요청 메시지에 대한 응용프로그램의 연산결과를 캐시메모리부에 캐싱하고, 상기 웹 페이지와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 연산결과의 유효성을 판단하고,
상기 데이터베이스 조회결과 캐싱 모듈은,
반복적으로 사용되는 쿼리 및 상기 쿼리에 대한 데이터베이스의 조회결과를 캐시메모리부에 캐싱하고, 상기 쿼리와 연관된 데이터의 변화를 실시간으로 모니터링하여 캐싱된 조회결과의 유효성을 판단하며,
상기 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템은,
상기 WAS 연산결과 캐싱 모듈 및 상기 데이터베이스 조회결과 캐싱 모듈이 각각 모니터링 한 정보들이 주기적으로 적재되는 로그 DB부를 더 포함하고,
상기 서버 부하 예측 모델링 및 예측 서비스부는,
상기 로그 DB부에 적재된 정보에 기초하여 서버 내 부하를 예측하기 위한 모델을 생성하는 서버 부하 예측 모델링 모듈; 및
상기 서버 부하 예측 모델링 모듈이 생성한 모델을 통해 서버 내 부하를 예측하여 상기 모니터링부로 제공하는 서버 부하 예측 서비스 모듈을 포함하고,
상기 서버 부하 예측 모델링 모듈은,
상기 로그 DB부에 적재된 정보를 전처리하는 전처리부;
상기 전처리부에 의해 전처리된 정보 및 복수 개의 알고리즘을 통해 복수 개의 모델을 생성하는 모델생성부;
생성된 복수 개의 모델의 정확도를 비교하는 모델비교부; 및
상기 모델비교부가 비교한 복수 개의 모델 중 어느 하나의 모델을 선정하여 상기 서버 부하 예측 서비스 모듈로 배포하는 모델배포부를 포함하고,
상기 모델배포부는,
미래 시점이 1시간 이후인 경우에는, LSTM2(multi-variate) 알고리즘을 기초로 생성된 모델을 선정하여 상기 서버 부하 예측 서비스 모듈로 배포하고,
상기 모델배포부는,
미래 시점이 상기 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템 상의 연산이 완료되기 이전에 도달하는 시점으로 설정되거나, 상기 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템이 턴 오프 상태에서 최초 턴 온 상태로 변경됨에 따라 최초 예측이 초 단위 또는 분 단위의 미래를 예측해야 하거나, 상기 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템이 일시적으로 초 단위 또는 분 단위의 미래를 예측해야 하는 경우에는, GRU(multi-variate) 알고리즘을 기초로 생성된 모델을 선정하여 상기 서버 부하 예측 서비스 모듈로 배포하는 것을 특징으로 하는, 인공지능 알고리즘을 통해 서버 과부하 예측 및 해소가 가능한 캐싱 시스템.
In a caching system capable of predicting and resolving server overload through artificial intelligence algorithms including cache servers and customer server groups,
The customer server group,
A web server that provides a web page composed of HTML to a user according to a user's request and receives a request message and a query from the user through the web page;
a web application server (WAS) server that receives the request message and the query from the web server, executes an application program for the request message, performs an operation on the request message, and returns an operation result to the web server; and
A database server that receives the query from the WAS server, searches data that can be a response to the query, and returns a search result to the WAS server;
The cache server,
a monitoring unit for caching the request message, an operation result of the application program for the request message, the query, and a search result of a database for the query in a cache memory unit; and
Server load for estimating the load in the server at a future point in time based on the request message cached by the monitoring unit in the cache memory unit, the operation result of the application program for the request message, the query, and the search result of the database for the query. Includes a server load prediction modeling and prediction service unit for generating a prediction model,
The monitoring unit,
Through the server load prediction modeling and the server load prediction model generated by the prediction service unit, only the request message requested from the web page predicted to have high usage in the future and the operation result for the request message requested from the predicted web page are described above. A query that is cached in the cache memory unit and predicted to be repeatedly used by a user at a future point in time through a server load prediction model generated by the server load prediction modeling and prediction service unit and only the search result for the predicted query is the cache memory. cache in wealth,
The monitoring unit,
It includes a WAS calculation result caching module and a database search result caching module,
The WAS operation result caching module,
A request message requested from a web page and an operation result of an application program for the request message are cached in a cache memory unit, and changes in data related to the web page are monitored in real time to determine the validity of the cached operation result;
The database query result caching module,
Repetitively used queries and database search results for the queries are cached in a cache memory unit, and changes in data related to the queries are monitored in real time to determine the validity of the cached search results;
The caching system capable of predicting and resolving server overload through the artificial intelligence algorithm,
Further comprising a log DB unit in which information monitored by the WAS calculation result caching module and the database inquiry result caching module are periodically loaded,
The server load prediction modeling and prediction service unit,
a server load prediction modeling module for generating a model for estimating load in the server based on the information loaded into the log DB unit; and
A server load prediction service module that predicts the load in the server through a model generated by the server load prediction modeling module and provides it to the monitoring unit;
The server load prediction modeling module,
a pre-processing unit for pre-processing information loaded into the log DB unit;
a model generator for generating a plurality of models through the information preprocessed by the preprocessor and a plurality of algorithms;
a model comparison unit that compares the accuracy of a plurality of generated models; and
A model distribution unit for selecting one of the plurality of models compared by the model comparison unit and distributing it to the server load prediction service module;
The model distribution unit,
If the future time point is after 1 hour, a model generated based on a multi-variate (LSTM2) algorithm is selected and distributed to the server load prediction service module,
The model distribution unit,
The future point in time is set to a point in time that arrives before the operation on the caching system capable of predicting and resolving server overload through the artificial intelligence algorithm is completed, or the caching system capable of predicting and resolving server overload through the artificial intelligence algorithm is turned off. As the state is changed to the first turn-on state, the initial prediction must predict the future in seconds or minutes, or the caching system capable of predicting and resolving server overload through the artificial intelligence algorithm temporarily predicts the future in seconds or minutes Caching capable of predicting and resolving server overload through an artificial intelligence algorithm, characterized by selecting a model generated based on a multi-variate (GRU) algorithm and distributing it to the server load prediction service module when system.
삭제delete 삭제delete 삭제delete 삭제delete
KR1020230026570A 2023-02-28 2023-02-28 Caching system that can predict and resolve server overload through artificial intelligence algorithms KR102576226B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230026570A KR102576226B1 (en) 2023-02-28 2023-02-28 Caching system that can predict and resolve server overload through artificial intelligence algorithms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230026570A KR102576226B1 (en) 2023-02-28 2023-02-28 Caching system that can predict and resolve server overload through artificial intelligence algorithms

Publications (1)

Publication Number Publication Date
KR102576226B1 true KR102576226B1 (en) 2023-09-06

Family

ID=87973871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230026570A KR102576226B1 (en) 2023-02-28 2023-02-28 Caching system that can predict and resolve server overload through artificial intelligence algorithms

Country Status (1)

Country Link
KR (1) KR102576226B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117914687A (en) * 2024-03-20 2024-04-19 深圳市派勤电子技术有限公司 Management method and system of industrial computer server

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080075304A (en) 2007-02-12 2008-08-18 한국정보인증주식회사 System and method for processing security for web services using embedded secure server
KR20160126655A (en) 2015-04-24 2016-11-02 엔트릭스 주식회사 Method for monitoring web server based on cloud streaming service and apparatus for the same
KR102027823B1 (en) * 2019-04-24 2019-10-02 주식회사 리앙커뮤니케이션즈 Intelligent caching system with improved system response performance based on plug in method
KR102366871B1 (en) * 2021-09-11 2022-02-23 정규일 Intelligent Data Caching Recommendation Server of Cloud-based Mobile BaaS and method thereof
KR20220045389A (en) * 2020-10-05 2022-04-12 경희대학교 산학협력단 Apparatus and method for processing cache data
KR20220083822A (en) * 2019-11-06 2022-06-20 구글 엘엘씨 Identification and publication of repeatable queries
KR102476620B1 (en) * 2021-09-30 2022-12-09 장희창 Cache automatic control system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080075304A (en) 2007-02-12 2008-08-18 한국정보인증주식회사 System and method for processing security for web services using embedded secure server
KR20160126655A (en) 2015-04-24 2016-11-02 엔트릭스 주식회사 Method for monitoring web server based on cloud streaming service and apparatus for the same
KR102027823B1 (en) * 2019-04-24 2019-10-02 주식회사 리앙커뮤니케이션즈 Intelligent caching system with improved system response performance based on plug in method
KR20220083822A (en) * 2019-11-06 2022-06-20 구글 엘엘씨 Identification and publication of repeatable queries
KR20220045389A (en) * 2020-10-05 2022-04-12 경희대학교 산학협력단 Apparatus and method for processing cache data
KR102366871B1 (en) * 2021-09-11 2022-02-23 정규일 Intelligent Data Caching Recommendation Server of Cloud-based Mobile BaaS and method thereof
KR102476620B1 (en) * 2021-09-30 2022-12-09 장희창 Cache automatic control system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
https://velog.io/@lazy_learner/LSTM-시계열-예측-모듈-만들기-1 (2022.08.21.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117914687A (en) * 2024-03-20 2024-04-19 深圳市派勤电子技术有限公司 Management method and system of industrial computer server
CN117914687B (en) * 2024-03-20 2024-05-14 深圳市派勤电子技术有限公司 Management method and system of industrial computer server

Similar Documents

Publication Publication Date Title
JP7344327B2 (en) System and method for metadata-driven external interface generation of application programming interfaces
US10977293B2 (en) Technology incident management platform
US20200012593A1 (en) Pluggable fault detection tests for data pipelines
CN105190564B (en) Method and apparatus for predetective diagnosis
Cugola et al. Introducing uncertainty in complex event processing: model, implementation, and validation
Hartmann et al. The next evolution of MDE: a seamless integration of machine learning into domain modeling
EP2963563A1 (en) Computing apparatus and method for managing a graph database
KR102576226B1 (en) Caching system that can predict and resolve server overload through artificial intelligence algorithms
Rashid et al. Completeness and consistency analysis for evolving knowledge bases
Vitui et al. MLASP: Machine learning assisted capacity planning: An industrial experience report
Cakir et al. Enabling real time big data solutions for manufacturing at scale
US8396847B2 (en) System and method to retrieve and analyze data for decision making
Justine et al. Self-learning Data Foundation for Scientific AI
Crankshaw The design and implementation of low-latency prediction serving systems
GB2567615A (en) Autonomous agent system
Kareshk Predicting Textual Merge Conflicts
US20230229735A1 (en) Training and implementing machine-learning models utilizing model container workflows
Yau Investigate the challenges and opportunities of MLOps
Cutrona Semantic Table Annotation for Large-Scale Data Enrichment
Louhi An empirical study on feature data management practices and challenges
el-Kafrawy et al. Walk Through Event Stream Processing Architecture, Use Cases and Frameworks Survey
Skryseth Analyzing the evolution of Technical Debt together with DevOps metrics: a quantitative case study using Natural Language Processing
Abdo High-performance complex event processing to detect anomalies in streaming RDF data
Wachsmuth et al. Pipeline Efficiency
Ali From Big Data to Smart Data for City Street Lighting Analytics

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant