WO2023146231A1 - 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치 - Google Patents

실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치 Download PDF

Info

Publication number
WO2023146231A1
WO2023146231A1 PCT/KR2023/001037 KR2023001037W WO2023146231A1 WO 2023146231 A1 WO2023146231 A1 WO 2023146231A1 KR 2023001037 W KR2023001037 W KR 2023001037W WO 2023146231 A1 WO2023146231 A1 WO 2023146231A1
Authority
WO
WIPO (PCT)
Prior art keywords
performance
program
computing system
performance evaluation
poll
Prior art date
Application number
PCT/KR2023/001037
Other languages
English (en)
French (fr)
Other versions
WO2023146231A8 (ko
Inventor
박성원
정철영
정진홍
Original Assignee
주식회사 한국소프트웨어아이엔씨
주식회사 비에이치에이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 한국소프트웨어아이엔씨, 주식회사 비에이치에이 filed Critical 주식회사 한국소프트웨어아이엔씨
Publication of WO2023146231A1 publication Critical patent/WO2023146231A1/ko
Publication of WO2023146231A8 publication Critical patent/WO2023146231A8/ko

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • the present specification relates to a large-capacity system, and more particularly, to a method for performing a comprehensive performance evaluation on a large-capacity system in a real environment and an apparatus for supporting the same.
  • the relative performance of servers and storages used by individuals or companies can be expressed as an index, and the names and numbers of volumes exceeding a specific access time can be identified and programs using those volumes can be monitored. For example, by recognizing the number of volumes whose average access time exceeds 50msec and programs using those volumes, it recognizes the degree of IO load and helps to find ways to solve performance issues.
  • the evaluation itself is bound to be partial or temporary.
  • Performance evaluation of the system in the actual system use environment can obtain results to some extent with the performance evaluation methods by the above methods, but it does not properly reflect the changing elements in the real environment.
  • the performance of the computing system may be measured using hardware or a measuring device capable of measuring the performance of the computing system, or the relative performance of the computing system may be evaluated based on a result of actually executing a target program.
  • System performance prediction based on system specifications can evaluate expected performance depending on specifications, but there is a difference between theoretical performance and actual performance.
  • the present specification is intended to solve the above-described problems and needs, and when a system is executed with a quantitative workload using a system call using a poll function, a system call is performed with a periodic snapshot to perform I/O multiplexing )
  • the purpose is to convert the capability into a predetermined value so that the performance state of the system can be confirmed.
  • a method for evaluating performance of a computing system includes collecting a performance metric of the computing system; a polling step of requesting a status of the computing system by calling a poll function according to a predetermined period; obtaining a polling result by counting the number of events recorded corresponding to the number of calls of the poll function when a plurality of periodic snapshot periods elapse; and recording the polling result together with the performance metric in a log file.
  • the performance evaluation method of the computing system may include controlling a first program for evaluating the performance of the computing system to be executed for a first predetermined time; and calling a second program that performs a system trace when the execution of the first program starts. As the second program is executed, the poll function may be called.
  • the performance evaluation method of the computing system may include: allowing the first program to run for 5 seconds, and ending the second program when the 5 seconds elapse; transferring, by the first program, a wake-up call to the second program when the 5 seconds have elapsed; and transmitting, by the second program, the polling result to the first program in response to the wakeup call.
  • the predetermined period is 50 msec
  • the polling operation may be performed at intervals of 50 msec during a snapshot of one section.
  • the obtaining of the polling result may include up-counting the number of times the event is recorded when data read and write operations are normally performed in response to the call of the poll function; and obtaining the up-counted result value.
  • a non-transitory computer-readable medium includes computer-executable instructions, wherein the computer-executable instructions include instructions for collecting performance metrics of a computing system, according to a predetermined period.
  • performance results unbiased to performance metrics can be identified in real time and performance degradation can be easily identified.
  • FIG. 1 is an exemplary block diagram of a computing system according to one embodiment of the present disclosure.
  • FIG. 2 is an exemplary block diagram of an apparatus for evaluating performance of a computing system according to an embodiment of the present specification.
  • FIG. 3 is a flowchart of a performance evaluation method of a computing system according to an embodiment of the present specification.
  • FIG. 4 is a flowchart illustrating a method for evaluating the performance of a computing system to which a hardbeat method is applied according to an embodiment of the present specification.
  • FIG. 5 is a diagram for explaining a turnaround time and a CPU usage rate of a performance evaluation program of a computing system according to an embodiment of the present specification.
  • first and second used herein may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention.
  • System performance refers to the ability to perform a specific workload by utilizing resources such as CPU, memory, disk, and network that make up the system.
  • a figure representing the performance of a system is expressed as a figure of merit, and the figure of merit is expressed as a relative number.
  • System performance evaluation can be divided into three categories: response time, throughput, and cost.
  • Response time is a typical method of measuring response time for interactive commands or response time for batch work.
  • Throughput is measured as the amount of processing or operation performed by the system per unit time, and cost is the cost of purchasing the system. It is evaluated by the efficiency of Responsibility and Throughput for the cost of the system.
  • the performance evaluation of a system in a real environment is not fixed and always changes according to performance factors. Therefore, performance evaluation in the real environment can be divided into the following steps and expressed as a series of processes with a certain period.
  • the collection step represents a step of collecting metrics data representing performance through KSI (Kemel Statistics Interface) of the system, including detailed information for each process. Timestamps are marked on all performance data, and depending on the configuration of the system, performance data from multiple systems can be centrally collected through a network. In general, commands provided by the system, accounting data of the system, and tools provided by vendors may be used.
  • KSI Kermel Statistics Interface
  • commands provided by the system, accounting data of the system, and tools provided by vendors may be used.
  • the collection of accurate data is a requirement for accurate performance evaluation. What can be a problem in data collection can be the scope and size of the data to be collected. Filtering is necessary for the contents that deviate from the performance evaluation data or the size of the data that is collected too extensively.
  • the collected data is displayed in a typical GUI form and real-time snapshot data that can be managed is monitored.
  • Real-time data can be used to troubleshoot performance bottlenecks.
  • an alarm or event function must be available within a specific range. Historical information helps to analyze long-term trends and identify potential problems.
  • the analysis step is a step of analyzing the performance of the system based on the data in the collection/monitoring step, and analyzing real-time snapshot data based on a specific threshold to improve performance and calculate system capacity. This is a step that can be used as basic data for The analysis step may also generate an alarm or event.
  • the analysis method is dependent on the vendor's solution. In addition, it can be raised as a problem that professional knowledge of the system or description of the analysis tool used is required for the analysis. Analysis of performance based on historical data is not very helpful in identifying potential or growing problems in the system. Therefore, for accurate analysis, it is necessary to find the cause of the performance degradation based on the factor variables for performance evaluation.
  • the purpose of performance evaluation is the performance improvement step.
  • the improvement stage refers to the stage in which the improvement points that cause the performance degradation problem in the current state are derived through performance data collection/monitoring/analysis, and the system configuration is changed based on this. In fact, since it is a step that can directly affect system performance, great attention is required when changing the system configuration.
  • the prediction step is a step of predicting a performance level based on one or more data modeling techniques as follows.
  • the BMT (Benchmark Test) method can evaluate unit performance for each component of the system, such as CPU, cache, memory, I/O, display, and network, and there are the following types of programs.
  • Performance characteristics benchmark program CPU SPECint92, SPECfp92, Limpack Memory membench IO Bonnie, dbgen DB TPC-C, TPC-D Multitasking SDM, ATM-III NFS LADIS, Nhfsstone Graphic GPC
  • the method of relatively performance evaluation by running applications is a method of evaluating system performance by actually running the program that will be used the most in the system or the program that uses the most system resources.
  • suitable performance evaluation The method of evaluating system performance using performance evaluation tools can compare and evaluate system performance through numerical evaluation and analysis for each factor) that can indicate system performance.
  • System performance can be evaluated using performance evaluation tools such as WebLOAD, LoadNinja, SmartMeter.io, LoadView, and Apache JMeter.
  • pgage may be response data provided including a data read result in response to a data read request through a system call.
  • the data read result may be provided in an account data format.
  • methods for collecting, tracking, and storing performance and system information for computing devices may include one or more computing devices. Collects and stores system and performance information about devices.
  • the computing device's performance information includes any suitable performance information, such as, for example, battery usage, processor resource usage, etc. for the computing device.
  • the system information of the computing device may include any suitable system information (eg, event information, etc.).
  • the event information may include, for example, a change in signal level (eg, a change in signal strength in connection with a wireless network), information about newly installed software, peripheral devices connected to or separated from the computing device (eg For example, it may include log information of USB, firewall, printer, scanner, etc.), information about which network the computing device is connected to and/or disconnected from, arbitrary websites visited through the computing device, and the like.
  • the system may collect and store this information at predetermined intervals (eg, daily, weekly, hourly, or any suitable interval). Additionally, the system may be configured to collect data substantially automatically as events occur.
  • predetermined intervals eg, daily, weekly, hourly, or any suitable interval.
  • FIG. 1 is an exemplary block diagram of a computing system according to one embodiment of the present disclosure.
  • a computing system includes a system (and/or system information server) 1, a database 2, one or more networks 3, a client computing device 4, eg eg, smart phones, tablet computers, wearable computing devices, laptop computers, etc.).
  • a system and/or system information server
  • a database 2, one or more networks 3, a client computing device 4, eg eg, smart phones, tablet computers, wearable computing devices, laptop computers, etc.).
  • client computing device 4 eg eg, smart phones, tablet computers, wearable computing devices, laptop computers, etc.
  • the communication link between system 1 and database 2 may be implemented, for example, via a local area network (LAN) or via the Internet.
  • the one or more networks 3 include any of various types of wired or wireless computer networks, such as Internet private intranets, mesh networks, public switched telephone networks (PSTN), or any type of network (e.g., a Bluetooth or other local area network). can do.
  • FIG. 2 is an exemplary block diagram of an apparatus for evaluating performance of a computing system according to an embodiment of the present specification.
  • FIG. 2 may be meant as a schematic representation of a computer architecture that may be used within system 1 (or server computer) of FIG. 1 .
  • System 1 may be suitable for use as a computer within the context of a system configured to collect, track, and store performance and system information for computing devices.
  • system 1 may be connected to other computers on a LAN, intranet, extranet, and/or the Internet.
  • System 1 can operate in the role of a server or client computer in a client-server network environment or as a peer computer in a peer-to-peer network environment.
  • System 1 is a desktop computer, tablet computer, set top box (STB), web appliance, server, network router, switch or bridge or any other computer capable of executing a set of instructions specifying actions to be taken by the computer.
  • STB set top box
  • the system 1 may include any combination of computers other than a single computer, individually or jointly executing a set of instructions for performing one or more methods described herein.
  • the system 1 may include a processor 110 , a memory 120 , an input device 130 , an output device 140 , and a network interface 150 .
  • the processor 110 may refer to one or more general-purpose processing devices such as a microprocessor, CPU, and the like. Processor 110 may be configured to execute processing logic to perform various operations and steps described herein.
  • a 'processor' may refer to a data processing device embedded in hardware having a physically structured circuit to perform functions expressed by codes or instructions included in a program, for example.
  • a microprocessor a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated (ASIC) circuit), field programmable gate array (FPGA), etc., but the scope of the present invention is not limited thereto.
  • the memory 120 is for temporarily storing data immediately used by the processor 110, and may function as a main memory (also referred to as a primary memory) as a system memory or a computer memory.
  • main memory also referred to as a primary memory
  • the memory is for temporarily or permanently storing data processed by the computing device, and may perform functions of a secondary storage device and an auxiliary storage device.
  • main memory is implemented as read only memory (ROM) and random access memory (RAM)
  • auxiliary memory is implemented as a magnetic disk such as a hard disk drive
  • the memory 120 may further include various storage devices other than a hard disk drive as an auxiliary memory. It may further include an optical disk drive that reads information from or writes information to an optical disk such as, for example, a CD-ROM or other optical media.
  • a hard disk drive, a magnetic disk drive, and an optical disk drive are connected to the I/O bus by a hard disk drive interface, a magnetic disk drive-interface, and an optical drive interface, respectively.
  • the input device 130 may be connected to the processor 120 through an input/output interface connected to an I/O bus.
  • the input device 130 may include a keyboard, a pointing device, a microphone, a joystick, a gay pad, a scanner, and the like.
  • the input/output interface may include any one of a wide variety of interfaces such as a serial port interface, a PS/2 interface, a parallel port interface, a USB interface, and an IEEE 1394 interface, or may logically represent a combination of other interfaces.
  • the output device 140 may include a display device, a sound output device such as a speaker or a microphone. They are connected to the I/O bus through a video/audio interface.
  • the video/audio interface may include High Definition Multi-media Interface (HDMI), Graphic Device Interface (GDI), and the like.
  • the output device 140 is for generating an output related to sight, hearing, or touch, and may include at least one of a display unit, a sound output unit, a haptic module, and an optical output unit.
  • a touch screen may be realized by forming a mutual layer structure with the touch sensor or integrally formed with the display unit. Such a touch screen may function as a user input unit providing an input interface between the device and the user, and may provide an output interface between the device and the user.
  • the network interface 150 may receive data from an external source or transmit data to an external source.
  • Network interface 160 may represent a logical combination of one or more software and/or hardware modules, such as a network interface card and a corresponding Network Driver Interface Specification (NDIS) stack.
  • NDIS Network Driver Interface Specification
  • the computing device may be connected to a modem (standard modem, cable modem, or DSL) through an input/output interface, and may receive data from or transmit data to an external source through the connected modem.
  • a modem standard modem, cable modem, or DSL
  • the computing device When power is supplied, the computing device loads and executes an OS program stored in the auxiliary memory from the main memory, and an OS environment in which various application programs can be driven is established by the execution of the OS program.
  • an OS environment functions provided by each application program are executed by loading and executing one or more application programs stored in the auxiliary memory into the main memory according to a user request or setting.
  • the communication unit may be composed of wired and/or wireless communication modules.
  • the communication unit may include wireless communication modules such as Wi-Fi (Wireless Fidelity), Bluetooth, Zigbee, near field communication (NFC), and Wireless Broadband Internet (Wibro). and a wired communication module such as a wired LAN such as Ethernet.
  • the communication unit may perform wired/wireless communication with a user device through a network.
  • FIG. 3 is a flowchart of a performance evaluation method of a computing system according to an embodiment of the present specification.
  • the flowchart shown in FIG. 3 may be implemented by system 1 and/or processor 110 shown in FIGS. 1 and/or 2 .
  • This specification proposes a heartbeat concept by applying a poll system call to evaluate system performance.
  • Heartbeat performs a poll system call with periodic snapshots when the system is running with a quantitative workload, converting the I/O multiplexing capability into a constant number, thereby improving the performance of the system. to indicate status.
  • a user's process can effectively monitor and control multiple streams (STREAM) based on two system calls, poll() and ioctl() using the LSETSIG flag.
  • the above two system calls cause the user process to receive one or more events that occur at the head of the stream, such as receiving data or messages on the read queue or stopping flow control on the write queue. case can be recognized.
  • Poll() cannot be used on any character device other than a STREAM.
  • the user's process issues this system call and specifies the STREAM and file to be monitored, the event to be checked, and the time to wait for the event.
  • Poll() blocks the process after a timeout or event occurs.
  • poll() returns the type of event and the file descriptor where the event occurred.
  • a user process can monitor one or more STREAMs while processing other data. To do this, set LSETSIG while specifying STREAM and event, and issue ioctl(). If the selected event occurs on the selected STREAM, the STREAM sends SIGPOLL to all associated requesting processes.
  • Poll() provides a function to identify the STREAM of data sent or received by the user.
  • the types of events that can be polled are POLLIN, POLLRDNORM, POLLRDBAND, POLLPRI, POLLOUT, POLLWRNORM, and POLLWRBAND. The table below shows the description of these events.
  • Event type detail POLLIN Messages with high priority can be read without blocking.
  • POLLRDNORM Normal messages with no priority are at the front of the STREAM-head of the read queue.
  • POLLRDBAND When a high-priority message is at the front of the STREAM-head queue POLLPRI When a high-priority message is at the front of the STREAM-head queue POLLOUT When the queue's normal priority band is writeable POLLWRNORM Same as POLLOUT
  • Poll() checks the file descriptor of the requested event and indicates whether the event occurred on the file descriptor as a return value. If no event occurs on the polled file descriptor, poll() blocks until the requested event or timeout occurs. Poll() receives the following arguments as parameters.
  • the user specifies the event to be polled by setting the event field of the poll fd structure to POLLIN. This request tells poll() that there is some data in each STREAM.
  • Processor 110 collects performance metrics. Performance metrics can be obtained from vmstat and the kernel (S300).
  • Vmstat virtual memory statistics
  • Vmstat is a computer system monitoring tool that collects and displays summary information about operating system memory, processors, interrupts, paging, and block I/O. It can output virtual memory information in statistical form.
  • performance metrics occur periodically and may refer to data regularly collected for system resource monitoring.
  • Performance metrics collected according to an embodiment may include performance metric values of CPU, memory, I/O, and network.
  • the processor 110 calls a poll function at a predetermined cycle (S310).
  • the predetermined period may be 50 msec.
  • the processor 110 may include a plurality of snapshot periods after executing a program for system performance until the program is terminated.
  • the processor 110 may control a plurality of poll function calls to be made according to the calling period of the poll function during a snapshot period of one period.
  • the processor 110 may determine whether a plurality of periodic snapshot periods have elapsed (S320).
  • the plurality of periodic snapshot periods may be defined as periods included within a time period from when the system performance evaluation program is executed until it is terminated. Accordingly, a plurality of periodic snapshot periods may be defined from when the program starts until it ends.
  • the processor 110 may obtain a polling result obtained by counting the number of event records corresponding to the number of calls of the poll function (S330).
  • the present specification is for confirming the performance state of the system by converting the I/O multiplexing capability of the system to a certain value, and the polling result may have a predetermined value, and the polling result is the ratio of the number of calls of the poll function to the event A value obtained by counting the number of records can be returned. For example, if the poll function is called 100 times and the polling result value is 80, it may mean that data was checked 80 times in response to 100 requests. However, it is necessary to evaluate the data check value 80 times by comprehensively considering the performance metric of the system.
  • the processor 110 may record the polling result together with the performance metric in a log file (S340).
  • FIG. 4 is a flowchart illustrating a method for evaluating the performance of a computing system to which a hardbeat method is applied according to an embodiment of the present specification.
  • a program implementing the performance evaluation method of a computing device according to an embodiment of the present specification is referred to as a heartbeat program.
  • the Heartbeat program largely consists of the first program, which is the main program, and the second program (Systrs program), which is the sub program, and the interaction between these two programs is explained as follows.
  • the first program may be defined as a program for evaluating computing system performance
  • the second program may be defined as a program that performs a system trace when the first program starts.
  • the processor 110 may control the first program for evaluating the performance of the computing system to be executed for a first predetermined time. Also, the processor 110 may call a second program that performs a system trace when execution of the first program starts. Here, the poll function may be called as the second program is executed.
  • the processor 110 may control the first program to be executed for 5 seconds, and the second program to be terminated when the 5 seconds have elapsed.
  • the processor 110 may control the first program to transmit a wakeup call to the second program when the 5 seconds have elapsed.
  • the processor 110 may control the second program to transmit the polling result to the first program in response to the wakeup call.
  • pgage may be a count data value obtained by counting up the number of events recorded when the second program requests a poll function and read and/or write data is normally performed in response to a request of the first program.
  • the poll() system call is executed at a period of 50 msec. If you can read and write on STREAM, increment the counter by one.
  • FIG. 5 is a diagram for explaining a turnaround time and a CPU usage rate of a performance evaluation program of a computing system according to an embodiment of the present specification.
  • the processor 110 polling interval time (within a periodic snapshot time) during the time from starting the computing system performance evaluation program to ending it. : 50msec) to call the polling function to convert the ability to perform STREAM I/O into an integer.
  • the repetition count of the i-th poll system call is expressed as the following formula.
  • the CPU time required for program execution is expressed as the sum of the CPU time used to execute the user's program, the time used for system calls, the time spent waiting for I/O, and the idle time.
  • CPU Time Spent CPU User + CPU System + I/O Latency + Idle
  • the poll function is included in the system call execution time among the CPU time spent (CPU system).
  • the processor 110 can predict that system resources are being overused when the system call execution time occupies a certain level or more of the total CPU time.
  • performance test results according to a method for evaluating the performance of a computing system according to an embodiment of the present specification will be described.
  • the performance test is explained by dividing it into a benchmarking environment and a performance test result.
  • IOBENCH 100MB read/write test
  • TPC-D create read-only query and 200MB DB
  • system CPU time representing the system call load shows a value up to 10-20%
  • the system call load that uses system resources can be a factor that can affect system performance degradation.
  • the results of the performance evaluation were in the order of MIX2, PROG, and RAID.
  • a device for implementing the method or function proposed in this specification communicates with a controller (or processor), a storage unit (temporary or non-temporary storage device) (or memory), a bus (not shown) for data transmission, or the outside. It may include a communication unit and an output unit for
  • the storage unit may include magnetic storage media or flash storage media, but the scope of the present invention is not limited thereto.
  • the communication unit may be composed of wired and/or wireless communication modules.
  • the communication unit may include wireless communication modules such as Wi-Fi (Wireless Fidelity), Bluetooth, Zigbee, near field communication (NFC), and Wireless Broadband Internet (Wibro). and a wired communication module such as a wired LAN such as Ethernet.
  • the communication unit may perform wired/wireless communication with a user device through a network.
  • the controller may include all types of devices capable of processing data, such as a processor.
  • a 'processor' may refer to a data processing device embedded in hardware having a physically structured circuit to perform functions expressed by codes or instructions included in a program, for example.
  • a data processing device built into hardware a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated (ASIC) circuit), field programmable gate array (FPGA), etc., but the scope of the present invention is not limited thereto.
  • the output unit is for generating an output related to sight, hearing, or touch, and may include at least one of a display unit, a sound output unit, a haptic module, and an optical output unit.
  • a touch screen may be realized by forming a mutual layer structure with the touch sensor or integrally formed with the display unit. Such a touch screen may function as a user input unit providing an input interface between the device and the user, and may provide an output interface between the device and the user.
  • An embodiment according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof.
  • one embodiment of the present invention provides one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, etc.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • DSPDs digital signal processing devices
  • PLDs programmable logic devices
  • FPGAs field programmable gate arrays
  • processors controllers, microcontrollers, microprocessors, etc.
  • an embodiment of the present invention may be implemented in the form of a module, procedure, or function that performs the functions or operations described above.
  • the software code can be stored in memory and run by a processor.
  • the memory may be located inside or outside the processor and exchange data with the processor by various means known in the art.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

컴퓨터 시스템의 성능 평가 방법이 개시된다. 본 명세서의 일 실시예에 따른 컴퓨터 시스템의 성능 평가 방법은, 상기 컴퓨팅 시스템의 성능 메트릭(metric)을 수집하고, 미리 정해진 주기에 따라 폴(poll) 함수를 호출하여 상기 컴퓨팅 시스템의 상태를 요청하고, 복수의 주기적인 스냅샷(snapshot) 구간이 경과되면, 상기 폴 함수의 호출횟수에 대응한 이벤트 기록횟수를 카운트한 폴링 결과를 획득하고, 상기 폴링 결과를 상기 성능 메트릭과 함께 로그파일에 기록한다.

Description

실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치
본 명세서는 대용량 시스템에 관한 것으로, 보다 구체적으로 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하기 위한 장치에 관한 것이다.
개인이나 기업이 사용하는 서버와 스토리지의 상대적인 성능에 대해서 지수로 나타낼 수 있으며 실제 특정 엑세스 시간을 초과하는 볼륨들의 이름과 개수를 파악하고 그 볼륨을 사용하는 프로그램을 모니터링할 수 있다. 예를 들면 평균 엑세스 시간이 50msec 를 초과하는 볼륨의 개수와 그 볼륨을 사용하는 프로그램을 인지하여 IO 부하의 정도를 인지하고 성능이슈를 해결할 방법을 찾도록 도와준다.
시스템의 성능평가 방법은 그 평가 자체가 부분적이거나 일시적인 경우일 수밖에 없다. 실제 시스템 사용환경에서의 시스템의 성능평가는 위의 방법들에 의한 성능평가 방법으로도 어느 정도 결과를 구할 수 있지만 실 환경에서의 변화하는 요소를 적절히 반영하지 않고 있다.
실제 컴퓨팅 시스템 사용환경에서는 컴퓨팅 시스템의 성능을 측정할 수 있는 하드웨어나 측정기를 사용하여 측정하거나, 실제로 대상 프로그램을 실행한 결과에 기초하여 컴퓨팅 시스템의 상대적 성능을 평가할 수 있다. 시스템의 사양에 기초한 시스템 성능 예측은 사양에 의존하여 성능에 대한 예상되는 성능평가는 가능하나 이론적 성능과 실질적 성능에 있어서 차이가 있다.
특히, 실제 환경에서는 시스템의 사용자나 프로그램이 수시로 변경되기 마련이며, 어떤 시점을 기준으로 언제든지 시스템의 성능이 문제가 될 수 있고, 시스템의 튜닝(tuning)이 끊임없이 이루어져야 하는 니즈가 발생한다.
본 명세서는 전술한 문제점 및 필요성을 해결하기 위한 것으로서, 폴 함수를 이용한 시스템 콜을 이용하여 시스템이 정량적 작업 부하를 가지고 실행될 때, 주기적인 스냅샷으로 시스템 콜을 수행하여 다중 입출력(I/O Multiplexing) 능력을 소정의 수치로 환산하여 시스템의 성능 상태를 확인할 수 있도록 하는 것을 목적으로 한다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 발명의 상세한 설명으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 성능 평가 방법은, 상기 컴퓨팅 시스템의 성능 메트릭(metric)을 수집하는 단계; 미리 정해진 주기에 따라 폴(poll) 함수를 호출하여 상기 컴퓨팅 시스템의 상태를 요청하는 폴링 단계; 복수의 주기적인 스냅샷(snapshot) 구간이 경과되면, 상기 폴 함수의 호출횟수에 대응한 이벤트 기록횟수를 카운트한 폴링 결과를 획득하는 단계; 및 상기 폴링 결과를 상기 성능 메트릭과 함께 로그파일에 기록하는 단계;를 포함한다.
상기 컴퓨팅 시스템의 성능 평가 방법은, 상기 컴퓨팅 시스템의 성능을 평가하기 위한 제1 프로그램을 미리 정해진 제1 시간 동안 실행되도록 제어하는 단계; 및 상기 제1 프로그램의 실행이 시작되면 시스템 트레이스(system trace)를 수행하는 제2 프로그램을 호출하는 단계;를 더 포함할 수 있다. 상기 제2 프로그램이 실행됨에 따라 상기 폴 함수가 호출될 수 있다.
상기 컴퓨팅 시스템의 성능 평가 방법은, 상기 제1 프로그램은 5초 동안 실행되도록 하고, 상기 5초가 경과되면 상기 제2 프로그램이 종료되도록 하는 단계; 상기 제1 프로그램은, 상기 5초가 경과되면, 웨이크업 콜을 상기 제2 프로그램에 전달하는 단계; 및 상기 제2 프로그램은, 상기 웨이크업 콜에 응답하여 상기 폴링 결과를 상기 제1 프로그램에 전달하는 단계;를 더 포함할 수 있다.
일 실시예에 따라, 상기 미리 정해진 주기는 50msec이고, 한 구간의 스냅샷 동안 상기 50msec의 간격으로 폴링 동작을 수행할 수 있다.
일 실시예에 따라, 상기 폴링 결과를 획득하는 단계는, 상기 폴 함수의 호출에 대응하여 데이터의 읽기 및 쓰기 동작이 정상적으로 수행된 경우, 상기 이벤트 기록횟수를 업 카운트하는 단계; 및 상기 업 카운트된 결과값을 획득한는 단계;를 더 포함할 수 있다.
본 명세서의 다른 실실시예에 따른 비 일시적 컴퓨터 판독 가능한 매체는, 컴퓨터 실행 가능한 명령들을 포함하고, 상기 컴퓨터 실행 가능한 명령들은, 컴퓨팅 시스템의 성능 메트릭(metric)을 수집하는 명령, 미리 정해진 주기에 따라 폴(poll) 함수를 호출하여 상기 컴퓨팅 시스템의 상태를 요청하는 명령, 복수의 주기적인 스냅샷(snapshot) 구간이 경과되면, 상기 폴 함수의 호출횟수에 대응한 이벤트 기록횟수를 카운트한 폴링 결과를 획득하는 명령, 상기 폴링 결과를 상기 성능 메트릭과 함께 로그파일에 기록하도록 하는 명령을 포함한다.
본 명세서의 일 실시예에 따르면, 성능 메트릭에 편향되지 않은 성능 결과를 실시간으로 파악하고 성능 저하를 쉽게 파악할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 도면과 함께 설명한다.
도 1은 본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 예시적인 블록도이다.
도 2는 본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 성능 평가 장치의 예시적인 블록도이다.
도 3은 본 명세서의 일 실시예에 다른 컴퓨팅 시스템의 성능 평가 방법의 흐름도이다.
도 4는 본 명세서의 일 실시예에 따라 하드비트(hearbeat) 방식이 적용되는 컴퓨팅 시스템의 성능 평가 방법을 설명하기 위한 흐름도이다.
도 5는 본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 성능 평가 프로그램의 턴어라운드 타임과 CPU 사용율을 설명하기 위한 도면이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥 상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
시스템의 성능이란 시스템을 구성하고 있는 CPU, 메모리, 디스크,네트워크 등의 자원을 활용하여 특정 부하(Workload)를 수행할 수 있는 능력을 의미한다. 시스템의 성능을 나타내는 수치를 성능지수로 표현하는데 성능지수는 상대적인 수치로 나타나게 된다.
시스템의 성능평가는 응답시간,Throughput, 비용의 세가지로 구분하여 할 수 있다. 응답시간은 인터렉티브 명령어에 대한 응답시간 또는 배치 작업에 대한 응답시간을 측정하는 것이 그 전형적인 방법이며 Throughput은 단위 시간당 시스템에 의해 수행되는 연산이나 처리량으로 측정되며 비용은 시스템을 구입시에 소요되는 비용으로 시스템의 비용에 대한 Responsibility와 Throughput의 효율로 평가된다. 실 환경에서의 시스템의 성능평가는 고정적인 것이 아니고 성능요인 변수(factor)에 따라 항상 변하게 마련이다. 따라서 실 환경에서의 성능평가는 다음과 같은 단계로 나누어 일정주기를 갖는 일련의 프로세스로 나타낼 수 있다.
수집 (Collect)
수집단계는, 시스템의 KSI(Kemel Statistics Interface)를 통해서 성능을 나타내는 Metrics 자료를 프로세스별로 세부정보를 포함하여 수집하는 단계를 나타낸다. 모든 성능 자료에 타임스템프를 같이 표기하고 시스템의 구성에 따라 네트워크를 통해서 여러 시스템의 성능 자료를 중앙에서 수집할 수도 있다. 일반적으로 시스템에서 제공되고 있는 명령어나 시스템의 어카운팅 데이터, 그리고 벤더가 제공하는 도구가 사용될 수도 있다. 성능 평가에 대한 첫 단계인 만큼 정확한 자료의 수집이 성능평가를 정확히 할 수 있는 요건이 된다. 자료의 수집에서 문제가 될 수 있는 것을 수집되는 자료의 범위와 크기가 될 수 있는데 성능평가 자료에서 벗어나는 내용이나, 너무 방대하게 수집되는 자료의 크기에 대해서는 여과(filtering)작업이 필요하다.
모니터링 (Monitoring)
모니터링 단계는, 전형적인 GUI 형태로 수집한 자료를 디스플레이하고 내역관리를 할 수 있는 실시간 형태의 스냅샷(Snapshot) 데이터를 모니터링 한다. 실시간 자료는 성능 병목 현상에 대한 문제해결(troubleshoot)로 사용될 수 있다. 또한 모니터링 단계에서는, 특정 범위내에서 알람이나 이벤트 기능도 가능하여야 한다. 내역정보는 장기간의 경향분석과 잠재적인 문제를 규명하는 데 도움이 된다.
분석 (Analyze)
분석 단계는, 수집/모니터링 단계에서의 자료에 기초하여 시스템에 대해 성능 분석을 하는 단계로서, 특정 임계치(threshold)에 기준을 두고 실시간 스냅샷(snapshot) 데이터를 분석하여 성능개선, 시스템용량 산정에 대한 기초자료로 활용될 수 있도록 하는 단계이다. 분석단계 또한, 알람이나 이벤트를 발생시킬 수 있다.
현재로서 분석기법은 제공하는 벤더의 솔루션에 의존하게 되어 있다. 또한 분석을 위해서는 시스템의 전문적인 지식이나 사용하는 분석도구에 대한 기술이 요구되는 것이 문제로 제기될 수가 있다. 내역 데이터에 근거를 둔 성능에 대한 분석은 시스템의 잠재적인 문제(potential problem)라든지 커지는 문제(growing problem)를 규명하는데 크게 도움이 되지 못한다. 따라서 정확한 분석을 위해서는 성능평가를 위한 요인 변수를 기초로 성능 저하를 유발시키는 원인을 찾아내야 한다.
개선 (tuning)
성능평가의 목적이 될 수 있는 것이 성능 개선단계이다. 개선단계는 성능데이터를 수집/모니터링/분석을 통해서 현재상태의 성능저하 문제를 유발시키는 개선점들을 도출해 내고 이를 토대로 시스템의 구성을 변경하게 되는 단계를 의미 한다. 실제로 시스템의 성능에 직접적인 영향을 줄 수 있는 단계이기 때문에 시스템의 구성 변경 시에 많은 주의를 요구한다. 시스템의 개선 작업이 이루어 지면 바로 수집/모니터링/분석 단계로 다시 반복하고 더 이상 개선의 여지가 없고 성능저하 현상이 계속되는 경우에는 현 시스템의 사양과 시스템의 부하를 고려하여 시스템을 증설/교체하는 시스템 용량 산정(capacity planning)을 한다.
예측 (forecast)
예측단계는, 다음과 같은 하나 이상의 데이터 모델링 기법에 기초하여 성능 수준에 대해서 예측하는 단계이다.
-heuristic 기법
- 선형 프로그래밍
- 네트워크 큐잉 모델
- 시뮬레이션
- 워크로드 벤치마크
또한, 시스템의 성능평가 방법은
1)BMT(Benchmark Test)에 의한 방법,
2)한정된 어플리케이션 프로그램을 실행하여 상대적으로 평가하는 방법,
3)성능평가 도구를 사용하는 방법,
4)실 측정에 의한 방법, 그리고
5)주어진 시스템의 사양(Specification)에 의거 성능에 대한 예측을 하는 방법들을 들 수 있다.
(1) BMT(Benchmark Test)에 의한 방법은 시스템의 구성 요소인 CPU, 캐쉬, 메모리, I/O, 디스플레이, 그리고 네트워크 별로 단위성능 평가를 할 수 있으며 다음과 같은 프로그램의 종류가 있다.
성능특성 벤치마크 프로그램
CPU SPECint92, SPECfp92, Limpack
Memory membench
IO Bonnie, dbgen
DB TPC-C, TPC-D
Multitasking SDM, ATM-III
NFS LADIS, Nhfsstone
Graphic GPC
(2) 어플리케이션을 실행하여 상대적으로 성능평가를 하는 방법은 시스템에서 가장 많이 사용할 프로그램 또는 가장 시스템의 자원(resource)을 많이 사용하는 프로그램을 실제로 실행하여 시스템의 성능을 평가하는 방법으로 비교적 실 환경에 적합한 성능 평가를 할 수 있다. 성능평가 도구를 사용하여 시스템의 성능을 평가하는 방법은 시스템의 성능을 나타낼 수 있는 요인factor)별로 수치적 평가와 분석으로 시스템의 성능을 비교 평가할 수 있다.
(3) 성능평가 도구를 사용하는 방법
WebLOAD, LoadNinja, SmartMeter.io, LoadView, Apache JMeter 등의 성능평가를 사용하여 시스템의 성능을 평가할 수 있다.
(4) 실 측정에 의한 방법은 성능을 측정할 수 있는 하드웨어나 측정기를 사용하여 측정하거나 실제로 대상 프로그램을 실행하여 결과를 토대로 상대적 성능을 평가할 수 있다. 시스템의 사양에 기초한 시스템의 성능예측 방법은 사양에 의존하여 성능에 대한 예상되는 성능평가를 할 수 있으나 이론적 성능과 실질적 성능의 차가 있을 수 있다. 이와 같은 시스템의 성능평가 방법은 그 평가 자체가 부분적이거나 일시적인 경우일 수밖에 없다. 실환경에서의 시스템의 성능평가는 위의 방법들에 의한 성능평가 방법으로도 어느 정도 결과를 구할 수 있지만 실 환경에서의 변화하는 요소를 적절히 반영하지 않고 있다. 실 환경에서는 시스템의 사용자나 프로그램이 수시로 변경되기 마련이며 어느 시점을 기준으로 언제든지 시스템의 성능이 문제가 될 수 있고 시스템의 튜닝(tuning)이 끊임없이 이루어져야 한다. 종래의 다른 성능 측정 방법들의 가장 큰 문제점은 어떤 특정(special purpose) 성능 metric을 사용하여 성능을 측정하기 때문에 성능 metric에 편향된 결과가 나올 수 있다는 것이고 pgage를 사용하면 general-purpose의 성능 결과를 실시간으로 파악하고 성능 저하를 쉽게 찾을 수 있다. 여기서, pgage는 시스템 콜을 통한 데이터 읽기 요청에 응답하여, 데이터 읽기 결과를 포함하여 제공되는 응답데이터일 수 있다. 상기 데이터 읽기 결과는 어카운트 데이터 형식으로 제공될 수 있다.
(5) 주어진 시스템의 사양(Specification)에 의거 성능에 대한 예측을 하는 방법
CPU의 clock 속도 GHz라든가 MIPS(Million Instruction Per Second)단위 또는 IO 성능을 나타내는 읽기(read)와 쓰기(write)의 시스템 사양에서 나타내는 peak 성능을 의미하고 sustain performance를 나타내지 않는다.
본 명세서의 실시예들에서, 컴퓨팅 장치들(예를 들어, 데스크탑 컴퓨터, 태블릿 컴퓨터, 스마트폰과 같은 모바일 컴퓨팅 장치 등)에 대한 성능 및 시스템 정보를 수집, 추적 및 저장하기 위한 방법은 하나 이상의 컴퓨팅 장치들에 대한 시스템 및 성능 정보를 수집 및 저장한다.
일 실시예들에서, 컴퓨팅 장치의 성능 정보는 예를 들어, 컴퓨팅 장치에 대한 배터리 사용, 프로세서 자원 사용, 등과 같은 임의의 적합한 성능 정보를 포함한다. 컴퓨팅 장치의 시스템 정보는 임의의 적합한 시스템 정보(예를 들어, 이벤트 정보 등)를 포함할 수 있다. 여기서 이벤트 정보는 예를 들어, 신호 레벨의 변화(예를 들어, 무선 네트워크와의 연결에서의 신호 세기 변화), 새로 설치된 소프트웨어에 대한 정보, 컴퓨팅 장치에 접속되거나 또는 그로부터 분리된 주변 장치들(예를 들어, USB, 방화벽, 프린터, 스캐너 등)의 로그정보, 컴퓨팅 장치가 어떤 네트워크에 대해 접속 및/또는 분리되는지에 관한 정보, 컴퓨팅 장치를 통해 방문되는 임의의 웹 사이트 등을 포함할 수 있다.
일 실시예들에서, 시스템은 미리 정해진 간격(예를 들어, 매일, 매주, 매시간, 또는 임의의 적합한 간격)으로 이러한 정보를 수집하고 저장할 수 있다. 또한, 시스템은 이벤트가 발생함에 따라 실질적으로 자동으로 데이터를 수집하도록 구성될 수도 있다.
도 1은 본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 예시적인 블록도이다.
도 1을 참조하면, 본 명세서의 일 실시예에 따른 컴퓨팅 시스템은 시스템(및/또는 시스템 정보서버)(1), 데이터 베이스(2), 하나 이상의 네트워크(3), 클라이언트 컴퓨팅 디바이스(4, 예를 들어, 스마트폰, 태블릿 컴퓨터, 웨어러블 컴퓨팅 장치, 랩탑 컴퓨터 등)를 포함할 수 있다.
시스템(1)과 데이터베이스(2) 간의 통신 링크는 예를 들어, 근거리 통신망(LAN)을 통해 또는 인터넷을 통해 구현될 수 있다. 하나 이상의 네트워크(3)는 인터넷 개인 인트라넷, 메시 네트워크, 공중 교환 전화망(PSTN) 또는 임의의 유형의 네트워크(예를 들어, 블루투스 등 근거리 무선 통신 네트워크)와 같은 임의의 다양한 유형의 유무선 컴퓨터 네트워크를 포함할 수 있다.
도 2는 본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 성능 평가 장치의 예시적인 블록도이다.
도 2는 도 1의 시스템(1, 또는 서버 컴퓨터) 내에서 사용될 수 있는 컴퓨터 아키텍처를 개략적으로 표현한 것을 의미할 수도 있다. 시스템(1)은 컴퓨팅 장치들에 대한 성능 및 시스템 정보를 수집, 추적 및 저장하기 위해 구성되는 시스템의 컨텍스트 내의 컴퓨터로 사용하기에 적합할 수 있다.
일 실시예에 따르면, 시스템(1)은 LAN, 인트라넷, 익스트라 넷, 및/또는 인터넷에 있는 다른 컴퓨터들에 연결될 수 있다. 시스템(1)은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 컴퓨터의 역할로서 또는 피어 투 피어 네트워크 환경에서 피어 컴퓨터(peer computer)로서 동작할 수 있다. 시스템(1)은 데스크탑 컴퓨터, 태블릿 컴퓨터, 셋탑 박스(STB), 웹 어플라이언스, 서버, 네트워크 라우터, 스위치 또는 브릿지 또는 상기 컴퓨터에 의해 취해질 동작들을 명시하는 명령들의 세트를 실행할 수 있는 임의의 다른 컴퓨터를 포함할 수 있다. 또한, 상기 시스템(1)은 단일 컴퓨터 외에 본 명세서에서 설명되는 하나 이상의 방법들을 수행하기 위한 명령어 세트를 개별적으로 또는 공동으로 실행하는 컴퓨터들의 임의의 조합들을 포함할 수도 있다.
시스템(1)은 프로세서(110), 메모리(120), 입력 장치(130), 출력 장치(140), 네트워크 인터페이스(150)를 포함할 수 있다.
프로세서(110)는 마이크로 프로세서, CPU 등과 같은 하나 이상의 범용 프로세싱 장치들을 의미할 수 있다. 프로세서(110)는 본 명세서에서 설명되는 다양한 동작들과 단계들을 수행하기 위한 프로세싱 로직을 실행하도록 구성될 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티 프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
메모리(120)는 프로세서(110)에 의해 즉시 사용되는 데이터를 일시적으로 저장하기 위한 것으로서, 시스템 메모리 또는 컴퓨터 메모리로 메인 메모리(1차 기억장치로 불리기도 함)의 기능을 수행할 수 있다. 또한, 메모리는 컴퓨팅 장치에서 처리되는 데이터를 일시적 또는 영구적으로 저장하기 위한 것으로서, 2차 기억장치, 보조기억 장치의 기능을 수행할 수 있다. 통상 메인 메모리는 ROM(Read Only Memory) 및 RAM(Random Access Memory) 으로 구현되고, 보조 메모리는 하드 디스크 드라이브와 같은 자기 디스크로 구현되어 보조 메모리에 컴퓨팅 장치에 설치되는 OS 프로그램, 애플리케이션 프로그램, 기타 프로그램 모듈 등을 저장하고, 메인 메모리는 프로세서의 제어에 따라서 보조 메모리에 저장된 데이터를 프로세서(120)에 의해 처리되는 동안 일시적으로 저장한다.
메모리(120)는 보조 메모리로서 하드 디스크 드라이브 외에 다양한 저장장치를 더 포함할 수 있다. 예를 들어, CD-ROM 또는 기타 광 매체 등의 광 디스크로부터 정보를 판독하거나 그 광 디스크에 정보를 기록하는 광 디스크 드라이브를 더 포함할 수 있다. 하드 디스크 드라이브, 자기 디스크 드라이브, 및 광 디스크 드라이브는 각각 하드 디스크 드라이브 인터페이스, 자기 디스크 드라이브-인터페이스 및 광 드라이브 인터페이스에 의해 I/O 버스에 접속된다.
입력장치(130)는 I/O 버스에 연결된 입출력 인터페이스를 통해 프로세서(120)에 접속될 수 있다. 상기 입력장치(130)는, 키보드, 포인팅 장치, 마이크로폰, 조이스틱, 게이패드, 스캐너 등을 포함할 수 있다. 입출력 인터페이스는 직렬 포트 인터페이스, PS/2 인터페이스, 병렬 포트 인터페이스, USB 인터페이스, IEEE 1394 인터페이스와 같은 매우 다양한 인터페이스 중 어느 하나를 포함하거나, 다른 인터페이스의 조합까지도 논리적으로 나타낼 수 있다.
출력장치(140)는 디스플레이장치, 스피커 또는 마이크로폰과 같은 음향 출력 장치를 포함할 수 있다. 이들은, 비디오/오디오 인터페이스를 통해 I/O 버스에 접속된다. 비디오/오디오 인터페이스는 HDMI(High Definition Multi-media Interface), GDI(Graphic Device Interface) 등을 포함할 수 있다. 출력장치(140)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부, 음향 출력부, 햅팁 모듈, 광 출력부 중 적어도 하나를 포함할 수 있다. 디스플레이부는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 디바이스와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부로써 기능함과 동시에, 디바이스와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
네트워크 인터페이스(150)는 외부 소스로부터 데이터를 수신하거나, 외부 소스로 데이터를 전송할 수 있다. 네트워크 인터페이스(160)는 네트워크 인터페이스 카드 및 대응하는 네트워크 드라이버 인터페이스 사양(Network Interface Specification: NDIS) 스택과 같은 하나 이상의 소프트웨어 및/또는 하드웨어 모듈의 논리적 조합을 나타낼 수 있다.
컴퓨팅 장치는 입출력 인터페이스를 통해 모뎀(표준 모뎀, 케이블 모뎀 또는 DSL)에 연결될 수 있으며, 연결된 모뎀을 통해 외부 소스로부터 데이터를 수신하거나 외부 소스로 데이터를 전송할 수 있다.
상기 컴퓨팅 장치는 전원이 공급되면 보조 메모리에 저장된 OS 프로그램을 메인 메모리로부터 불러들여 실행하고, 상기 OS 프로그램의 실행에 의해 다양한 어플리케이션 프로그램이 구동될 수 있는 OS 환경이 구축된다. 상기 OS 환경에서 사용자 요청 또는 설정에 따라 보조 메모리에 저장된 하나 이상의 어플리케이션 프로그램을 메인 메모리로 불러들여 실행함으로써, 각 어플리케이션 프로그램에서 제공하는 기능을 실행한다.
통신부(미도시)는 유선 및/또는 무선 통신 모듈로 구성될 수 있다. 예를 들어, 통신부는, 와이파이(Wireless Fidelity, Wi-Fi), 블루투스(Bluetooth), 지그비(Zigbee), 엔에프씨(near field communication: NFC), 와이브로(Wireless Broadband Internet: Wibro) 등의 무선 통신모듈과 이더넷(Ethernet) 등의 유선 랜(LAN)과 같은 유선 통신 모듈 등을 포함할 수 있다. 통신부는 네트워크를 통해 사용자 장치와 유/무선 통신을 수행할 수 있다.
도 3은 본 명세서의 일 실시예에 다른 컴퓨팅 시스템의 성능 평가 방법의 흐름도이다. 도 3에 도시된 흐름도는 도 1 및/또는 도 2에 도시된 시스템(1) 및/또는 프로세서(110)에 의해 구현될 수 있다. 본 명세서는 시스템의 성능 평가를 위해 폴(poll) 시스템 콜을 응용하여 하트비트(heartbeat) 개념을 제안한다. 하트비트(heartbeat)는 시스템이 정량적 작업 부하로 실행될 때 주기적인 스냅샷(snapshot)으로 폴(poll) 시스템 콜을 수행하여 다중 입출력(I/O Multiplexing) 능력을 일정한 수치로 환산함으로써, 시스템의 성능 상태를 나타낼 수 있도록 한다.
이에 따라, 폴 시스템 콜에 대하여 먼저 살펴본다.
I/O polling
사용자의 프로세스는 두 개의 시스템 콜인 poll()과 LSETSIG flag를 이용한 ioctl()에 기초해서 다수의 스트림(STREAM)을 효과적으로 모니터하고 제어할 수 있다. 상기 두 가지의 시스템 콜은 사용자 프로세스로 하여금 한 개 또는 그 이상의 스트림(STREAM) 헤드에서 발생하는 이벤트, 예를 들면 read 큐상에서 데이터나 메시지를 수신하거나, write 큐상에서 플로우 컨트롤(flow control)을 중지하는 경우를 인지할 수 있다.
Poll()은 스트림(STREAM)이 아닌 어떠한 문자 디바이스에서도 사용할 수 없다. Poll()을 사용해서 STREAM을 모니터하기 위해서는 사용자의 프로세스가 이 시스템 콜을 issue 하고 모니터 하게 될 STREAM과 파일, 체크할 이벤트, 그리고 이벤트를 위해 대기할 시간을 지정한다. Poll()은 시간이 초과되거나 이벤트가 발생한 후에 프로세스를 블록시킨다. 이벤트가 발생하면, poll()은 이벤트의 유형과 이벤트가 발생한 파일 디스크립터를 리턴한다. 이벤트가 발생할 때까지 기다리는 대신에 사용자 프로세스는 다른 데이터를 처리하는 동안 하나 이상의 STREAM을 모니터링 할 수 있다. 이렇게 하기 위해서는 STREAM과 이벤트를 지정하면서 LSETSIG를 셋팅하고 ioctl()을 issue 한다. 만일 선택된 STREAM 상에 선택된 이벤트가 발생하면 STREAM 은 연관된 모든 요청 프로세스들에게 SIGPOLL을 보낸다. Poll()은 사용자가 송신하거나 수신한 데이터의 STREAM을 식별하는 기능을 제공한다. 폴(poll) 될수 있는 이벤트의 유형은 POLLIN, POLLRDNORM, POLLRDBAND, POLLPRI, POLLOUT, POLLWRNORM, POLLWRBAND으로 아래의 표는 이들 이벤트에 대한 설명을 나타낸다.
Event 유형 내용
POLLIN 높은 우선 순위를 갖는 메시지는 blocking 없이 read 할 수 있다
POLLRDNORM 우선 순위를 갖지 않는 정상 메시지는 read 큐의 STREAM-head의 front에 있다
POLLRDBAND 높은 우선순위의 메시지가 STREAM-head 큐의 front에 있을 때
POLLPRI 높은 우선 순위의 메시지가 STREAM-head 큐의 front에 있을 때
POLLOUT 큐의 정상 우선 순위 band가 write 가능할 때
POLLWRNORM POLLOUT과 동일
<표 2> poll 시스템 콜의 이벤트 유형
Poll()은 요청된 이벤트의 파일 디스크립터를 체크해서 파일 디스크립터 상에 이벤트가 발생했는지를 리턴 값으로 나타낸다. 만일 poll 된 파일 디스크립터 상에 이벤트가 발생하지 않는다면 poll()은 요청 이벤트나 타임아웃이 발생할 때까지 블록된다. Poll()은 다음과 같은 아규먼트를 파라미터로 받는다.
- 파일 디스크립터의 어레이와 poll 될 이벤트
- poll 하게 될 파일 디스크립터 의 수
- poll 이 이벤트가 pending 될 때 조차도 기다리게 될 millisecond의 수
사용자가 poll fd 구조의 이벤트 필드를 POLLIN으로 셋팅 함으로서 poll 될 이벤트를 지정한다. 이 요청은 poll()에게 각 STREAM에 어떠한 데이터가 있음을 사용자에게 알린다.
int poll (struct pollfd fds[], nfds_t nfds, int timeout)
fds[]: 파일 디스크립터 어레이
nfds : pollfd 의 수
timeout: timeout milisecond
만일,Poll()이 성공하면 프로그램은 poll fds 어레이 내의 각 엔트리를 체크한다. 
revent가 0으로 셋팅되면 파일 디스크립터에 어떠한 이벤트도 발생하지 않음을 나타낸다. 그리고 revent 가 POLLIN 으로 세팅되면 STREAM 상에 데이터가 유효함을 나타낸다.
그래서, 유효한 데이터는 폴(poll)된 마이너 디바이스로부터 읽음(read) 해서 다른 마이너 디바이스에 쓰기(write)할 수 있다.
revent 가 0이나 POLLIN 이외의 값으로 셋팅 되면 에러가 발생하게 되는데 다음과 같은 세가지 유형의 에러가 있다.
Error 유형 내용
POLLERR 지정된 파일 디스크립터와 연관된 STREAM상에 에러가 발생
POLLHUP 지정된 파일 디스크립터와 연관된 STREAM상에 hangup 조건이 발생이 event와 POLLOUT은 mutually exclusive 조건, 그러나 이때 hangup이 발생해도 STREAM은 write 할 수 있다
POLLNVAL 지정된 파일 디스크립터가 open STREAM과 관련되지 않았을 때
<표 3> poll 시스템 콜의 에러 유형
도 3를 참조하여, 폴(poll) 함수를 이용하여 시스템 성능 평가에 대한 전체적인 흐름을 먼저 살펴본다. 프로세서(110)는 성능 메트릭(metric)을 수집한다. 성능 메트릭(metric)은 vmstat와 커널로부터 획득될 수 있다(S300).
Vmstat (virtual memory statistics)는 오퍼레이팅 시스템 메모리, 프로세서, 인터럽트, 페이징 및 블록 I/O 에 대한 요약정보를 수집하고 표시하는, 컴퓨터 시스템 모니터링 툴로서, 가상 메모리의 정보를 통계 형식으로 출력할 수 있다.
성능 메트릭(metric)은 로그와 달리 주기적으로 발생하며, 시스템 리소스 모니터링에 정기적으로 수집되는 데이터를 의미할 수 있다. 일 실시예에 따라 수집되는 성능 메트릭은 CPU, 메모리, I/O, 네트워크의 성능 메트릭값을 포함할 수 있다.
프로세서(110)는 미리 정해진 주기로 폴(poll) 함수를 호출한다(S310). 여기서 미리 정해진 주기는 50msec일 수 있다. 프로세서(110)는 시스템 성능을 위한 프로그램을 실행한 이후 상기 프로그램이 종료될 때 까지 복수의 스냅샷(snapshot) 구간을 포함할 수 있다. 프로세서(110)는 한 구간의 스냅 샷 구간 동안 상기 폴 함수의 호출주기에 따라 복수의 폴 함수 호출이 이루어지도록 제어할 수 있다.
프로세서(110)는 복수의 주기적 스냅샷 구간이 경과되었는지 여부를 판단할 수 있다(S320). 상기 복수의 주기적 스냅샷 구간은 상기 시스템 성능 평가 프로그램이 실행된 이후 종료될 때 까지의 시간 내에 포함된 구간들로 정의될 수 있다. 따라서, 상기 프로그램이 시작된 이후 종료될 때 까지 복수의 주기적 스냅샷 구간이 정의될 수 있다.
프로세서(110)는 폴함수의 호출회수에 대응한 이벤트 기록 횟수를 카운트한 폴링 결과를 획득할 수 있다(S330). 본 명세서는 시스템의 I/O Multiplexing 능력을 일정한 수치로 전환하여 시스템의 성능 상태를 확인하기 위한 것으로서, 상기 폴링 결과가 소정의 값을 가질 수 있으며, 상기 폴링 결과는 폴 함수의 호출 횟수 대비 이벤트의 기록횟수를 카운트한 값으로 리턴될 수 있다. 예를 들어, 폴 함수의 호출횟수가 100번인 경우, 폴링 결과값이 80일 경우, 100번의 요청에 응답하여 80번의 데이터 확인이 이루어진 것을 의미할 수 있다. 다만, 시스템의 성능 메트릭을 종합적으로 고려하여 상기 80번의 데이터 확인값을 평가할 필요가 있다.
프로세서(110)는 폴링 결과를 성능 메트릭과 함께 로그파일에 기록할 수 있다(S340).
이하, 전술한 컴퓨팅 시스템 성능 평가 방법이 적어도 하나의 프로그램을 통해 구현되는 과정을 보다 구체적으로 설명한다.
도 4는 본 명세서의 일 실시예에 따라 하드비트(hearbeat) 방식이 적용되는 컴퓨팅 시스템의 성능 평가 방법을 설명하기 위한 흐름도이다.
설명의 편의를 위해, 본 명세서의 일 실시예에 따른 컴퓨팅 장치의 성능 평가 방법을 구현하는 프로그램을 Heartbeat 프로그램으로 호칭한다.
Heartbeat 프로그램은 크게 메인 프로그램인 제1 프로그램과 서브프로그램인 제2 프로그램(Systrs 프로그램)으로 이루어졌으며 이 두 프로그램 간의 상호작동을 설명하면 다음과 같다. 여기서 제1 프로그램은 컴퓨팅 시스템 성능을 평가하기 위한 프로그램이며, 제2 프로그램은 제1 프로그램이 시작되면 시스템 트레이스(system trace)를 수행하는 프로그램으로 정의될 수 있다.
프로세서(110)는 상기 컴퓨팅 시스템의 성능을 평가하기 위한 제1 프로그램을 미리 정해진 제1 시간 동안 실행되도록 제어할 수 있다. 또한, 프로세서(110)는 상기 제1 프로그램의 실행이 시작되면 시스템 트레이스(system trace)를 수행하는 제2 프로그램을 호출할 수 있다. 여기서 상기 제2 프로그램이 실행됨에 따라 상기 폴 함수가 호출될 수 있다.
프로세서(110)는 상기 제1 프로그램은 5초 동안 실행되도록 하고, 상기 5초가 경과되면 상기 제2 프로그램이 종료되도록 제어할 수 있다. 프로세서(110)는 상기 제1 프로그램은, 상기 5초가 경과되면, 웨이크업 콜을 상기 제2 프로그램에 전달하도록 제어할 수 있다. 프로세서(110)는 상기 제2 프로그램이, 상기 웨이크업 콜에 응답하여 상기 폴링 결과를 상기 제1 프로그램에 전달하도록 제어할 수 있다.
제1 프로그램
1. 현재 시간을 마크한다.
2. vmstat와 커널로부터 성능 metric(CPU, 메모리, I/O)을 수집한다.
3. systrs를 call하고 제1 프로그램의 실행시간이 5초가 되면 제2 프로그램(systrs 프로그램)을 종료하도록 signal을 보낸다.
4. 제2 프로그램(systrs)에서 리턴된 pgage를 받아서 현재의 시스템 CPU 부하를 나타내는 load 수치를 구하고 이들을 step 2. 에서 수집한 성능 metric 과 함께 로그 파일에 마크한다. 여기서 pgage는 제1 프로그램의 요청에 응답하여, 제2 프로그램이 폴 함수 요청 결과, 데이터의 읽기 및/또는 쓰기 동작이 정상적으로 수행된 경우, 이벤트 기록횟수를 업카운드한 카운트 데이터값일 수 있다.
제2 프로그램(Systrs 프로그램)
1. event를 POLLIN으로 셋팅 한다.
2. 50 msec의 주기로 poll() 시스템 콜을 수행한다. STREAM상에서 read와 write를 할 수 있으면 카운터를 하나 증가시킨다.
3. 제1 프로그램으로부터 웨이크업(wakeup) 시스템 콜을 수신하면pgage 값을 제1 프로그램에게 리턴한다.
도 5는 본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 성능 평가 프로그램의 턴어라운드 타임과 CPU 사용율을 설명하기 위한 도면이다.
도 5를 참조하면, 프로세서(110)는 컴퓨팅 시스템 성능 평가 프로그램을 시작해서 종료할 때까지의 시간 동안에 주기적인 스냅샷(snapshot) 시간 내의 polling 간격시간(
Figure PCTKR2023001037-appb-img-000001
: 50msec)으로 polling 함수를 호출(call) 하여 STREAM I/O 를 할 수 있는 능력을 정수로 환산한다.
i 번째의 snapshot 시간이 tsi 이고 그 때의 polling 함수콜에 대한 지연시간 twi 이면 i 번째의 poll 시스템 콜의 반복횟수는 다음과 같은 수식으로 표현된다.
(tsi + twi) /
Figure PCTKR2023001037-appb-img-000002
그리고 프로그램 실행에 소요된 CPU 시간은 사용자의 프로그램을 수행하는데 사용된 CPU시간,시스템 콜에 사용된 시간,I/O를 위해 기다린 시간, 그리고 idle 시간의 합으로 나타낸다.
CPU소요시간 =CPU사용자+ CPU시스템+ I/O대기시간 + Idle
Poll 함수는 소요된 CPU 시간 중 시스템 콜을 수행하는 시간에 포함된다 (CPU시스템). 프로세서(110)는 시스템 콜 수행시간이 전체 CPU소요시간 중 일정 수준 이상의 부분을 차지할 때 시스템 자원이 과 사용되고 있는 것으로 예측할 수 있다.
이하, 본 명세서의 일 실시예에 따른 컴퓨팅 시스템의 성능 평가 방법에 따른 성능 테스트 결과에 대하여 설명한다. 성능 테스트는 벤치마킹 환경과 성능 테스트 결과로 구분하여 설명한다.
[1] 성능 테스트를 위한 벤치마킹 환경
PROG: Mirrored UFS
RAID: Raid File System
MIX: Normal UFS
IOBENCH: 100MB read/write test
LINPACK: 1000X1000 single precision operation
QSORT: 2천만개의 element를 random하게 생성한 후 sorting
TPC-D: read-only query와 200MB의 DB 생성
COMP: IOBENCH+LINGPACK+QSORT+TPC-D 모두 실행
[2]성능 테스트 결과
PROG 환경에서는 LINPACK 과 TCP-D 프로그램이 함께 수행되며 시스템 CPU의 부하를 증가시켜 I/O-intensive 와 CPU-Intensive 에 대한 부하가 동시에 시스템에 주어져서 pgage는 변화가 크게 I/O 에 대한 부하를 인지하였지만 주어진 CPU 부하에 CPU 의 사용율은 80%이상 점유할 수 있도록 되어있어 PROG 환경에서 I/O 부하는 시스템의 CPU를 사용하는데 심각한 수준이 되지 않는 것으로 나타난다.
그러나 시스템 콜의 부하를 나타내는 시스템 CPU 시간은 1020%수준까지의 수치를 나타내므로 시스템의 자원을 사용하는 시스템 콜의 부하는 시스템의 성능 저하에 영향을 줄 수 있는 요소(factor)가 될 수 있다.
RAID 환경에서도 PROG 환경에서와 마찬가지로 pgage의 Min/Max의 차가 큰 것으로 나타났는데 이는 TCP-D의 Write 시스템 콜이 IOBENCH 프로그램과 함께 실행되면서 시스템에 I /O 부하가 가중시킨 결과로 볼 수 있다.
시스템 자원을 사용하는 시스템 CPU 시간은 프로그램의 실행과 종료시점까지 10-20%를 점유하는 것으로 나타났으며 이는 PROG 환경에서 보다 높은 수치로 나타났다. 이는, I/O 부하에 대한 의존도가 PROG 환경에 비해서 높은 결과를 보여주는 것이다. MIX 환경에서의 pgage 결과는 PROG 나 RAID에 비하여 Min/Max 값의 차가 적고 기복이 심한 것으로 나타났지만 사용자 CPU 점유율은 80%이상을 유지하는 결과를 나타내고 있는데 이는 MIX 환경에서는 I/O 부하가 있다고 하더라도 사용자 CPU를 점유하는데 큰 부담이 되지 않고 있다는 것을 보여주고 있다.
상대적으로 시스템 CPU를 사용하는 시간의 점유율도 PROG 나 RAID 환경에 비해 적은 것으로 나타났다. 이는 MIX 환경에서 시스템자원을 사용하는 시스템의 실행이 비교적 원활하게 이루어진 것을 의미한다.
결론적으로 성능 평가의 결과는 MIX2, PROG, RAID의 순으로 나타났으며 pgage의 Min/Max 값의 차이가 클수록 프로그램이나 시스템 환경은 I/O에 민감하며, TPC-D의 결과에서 보여주듯이 단일 프로그램 실행에서 I/O 부하가 TARGET 시스템에 영향을 주지 않았지만 workload를 5 배 증가시킨 10 부하의 증가를 pgage가 인지하여 결과를 보여준다.
본 명세서에서 제안하는 방법 또는 기능을 구현하기 위한 장치는 제어부 (또는 프로세서), 저장부(일시적 또는 비 일시적 저장장치)(또는 메모리), 데이터 전송을 위한 버스(미도시) 또는 외부와 통신을 수행하기 위한 통신부 및 출력부를 포함할 수 있다.
저장부는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
통신부는 유선 및/또는 무선 통신 모듈로 구성될 수 있다. 예를 들어, 통신부는, 와이파이(Wireless Fidelity, Wi-Fi), 블루투스(Bluetooth), 지그비(Zigbee), 엔에프씨(near field communication: NFC), 와이브로(Wireless Broadband Internet: Wibro) 등의 무선 통신모듈과 이더넷(Ethernet) 등의 유선 랜(LAN)과 같은 유선 통신 모듈 등을 포함할 수 있다. 통신부는 네트워크를 통해 사용자 장치와 유/무선 통신을 수행할 수 있다.
제어부는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티 프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
출력부는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부, 음향 출력부, 햅팁 모듈, 광 출력부 중 적어도 하나를 포함할 수 있다. 디스플레이부는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 디바이스와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부로써 기능함과 동시에, 디바이스와 사용자 사이의 출력 인터페이스를 제공할 수 있다.
이상에서 설명된 실시 예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시 예를 구성하는 것도 가능하다. 본 발명의 실시 예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시 예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시 예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명에 따른 실시 예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시 예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시 예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
본 발명은 본 발명의 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 통상의 기술자에게 자명하다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (6)

  1. 컴퓨팅 시스템의 성능 평가 방법에 있어서,
    상기 컴퓨팅 시스템의 성능 메트릭(metric)을 수집하는 단계;
    미리 정해진 주기에 따라 폴(poll) 함수를 호출하여 상기 컴퓨팅 시스템의 상태를 요청하는 폴링 단계;
    복수의 주기적인 스냅샷(snapshot) 구간이 경과되면, 상기 폴 함수의 호출횟수에 대응한 이벤트 기록횟수를 카운트한 폴링 결과를 획득하는 단계; 및
    상기 폴링 결과를 상기 성능 메트릭과 함께 로그파일에 기록하는 단계;
    를 포함하는 컴퓨팅 시스템의 성능 평가 방법.
  2. 제 1 항에 있어서,
    상기 컴퓨팅 시스템의 성능을 평가하기 위한 제1 프로그램을 미리 정해진 제1 시간 동안 실행되도록 제어하는 단계;
    상기 제1 프로그램의 실행이 시작되면 시스템 트레이스(system trace)를 수행하는 제2 프로그램을 호출하는 단계;를 더 포함하고,
    상기 제2 프로그램이 실행됨에 따라 상기 폴 함수가 호출되는 것을 특징으로 하는 컴퓨팅 시스템의 성능 평가 방법.
  3. 제 2 항에 있어서,
    상기 제1 프로그램은 5초 동안 실행되도록 하고, 상기 5초가 경과되면 상기 제2 프로그램이 종료되도록 하는 단계;
    상기 제1 프로그램은, 상기 5초가 경과되면, 웨이크업 콜을 상기 제2 프로그램에 전달하는 단계;
    상기 제2 프로그램은, 상기 웨이크업 콜에 응답하여 상기 폴링 결과를 상기 제1 프로그램에 전달하는 단계;
    를 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 성능 평가 방법.
  4. 제 2 항에 있어서,
    상기 미리 정해진 주기는 50msec이고, 한 구간의 스냅샷 동안 상기 50msec의 간격으로 폴링 동작을 수행하는 것을 특징으로 하는 컴퓨터 시스템의 성능 평가 방법.
  5. 제 1 항에 있어서,
    상기 폴링 결과를 획득하는 단계는,
    상기 폴 함수의 호출에 대응하여 데이터의 읽기 및 쓰기 동작이 정상적으로 수행된 경우, 상기 이벤트 기록횟수를 업 카운트하는 단계; 및
    상기 업 카운트된 결과값을 획득한는 단계;
    를 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템의 성능 평가 방법.
  6. 컴퓨터 실행 가능한 명령들을 저장한 비 일시적 컴퓨터 판독 가능한 매체에 있어서,
    상기 컴퓨터 실행 가능한 명령들은,
    컴퓨팅 시스템의 성능 메트릭(metric)을 수집하고,
    미리 정해진 주기에 따라 폴(poll) 함수를 호출하여 상기 컴퓨팅 시스템의 상태를 요청하고,
    복수의 주기적인 스냅샷(snapshot) 구간이 경과되면, 상기 폴 함수의 호출횟수에 대응한 이벤트 기록횟수를 카운트한 폴링 결과를 획득하고,
    상기 폴링 결과를 상기 성능 메트릭과 함께 로그파일에 기록하도록 하는 비 일시적 컴퓨터 판독 가능한 매체.
PCT/KR2023/001037 2022-01-26 2023-01-20 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치 WO2023146231A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220011168 2022-01-26
KR10-2022-0011168 2022-01-26
KR10-2022-0038737 2022-03-29
KR1020220038737A KR102456150B1 (ko) 2022-01-26 2022-03-29 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치

Publications (2)

Publication Number Publication Date
WO2023146231A1 true WO2023146231A1 (ko) 2023-08-03
WO2023146231A8 WO2023146231A8 (ko) 2023-08-31

Family

ID=83803822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/001037 WO2023146231A1 (ko) 2022-01-26 2023-01-20 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치

Country Status (2)

Country Link
KR (1) KR102456150B1 (ko)
WO (1) WO2023146231A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102456150B1 (ko) * 2022-01-26 2022-10-18 (주)한국소프트웨어아이엔씨 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698705B1 (en) * 2004-10-19 2010-04-13 Oracle America, Inc. Method and system for managing CPU time consumption
JP2014109975A (ja) * 2012-12-04 2014-06-12 Nippon Telegr & Teleph Corp <Ntt> 性能分析装置、性能分析方法及び性能分析プログラム
JP2014206786A (ja) * 2013-04-10 2014-10-30 富士通株式会社 性能データ収集プログラム、装置、及び方法
US10528512B1 (en) * 2018-03-14 2020-01-07 Parallels International Gmbh Improving efficiency of asynchronous input/output operations based on observed performance
KR20210019758A (ko) * 2019-08-13 2021-02-23 주식회사 셀파소프트 Db 성능데이터 초정밀 산출 방법 및 db 성능데이터 초정밀 산출을 위한 db 모니터링 장치
KR102456150B1 (ko) * 2022-01-26 2022-10-18 (주)한국소프트웨어아이엔씨 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698705B1 (en) * 2004-10-19 2010-04-13 Oracle America, Inc. Method and system for managing CPU time consumption
JP2014109975A (ja) * 2012-12-04 2014-06-12 Nippon Telegr & Teleph Corp <Ntt> 性能分析装置、性能分析方法及び性能分析プログラム
JP2014206786A (ja) * 2013-04-10 2014-10-30 富士通株式会社 性能データ収集プログラム、装置、及び方法
US10528512B1 (en) * 2018-03-14 2020-01-07 Parallels International Gmbh Improving efficiency of asynchronous input/output operations based on observed performance
KR20210019758A (ko) * 2019-08-13 2021-02-23 주식회사 셀파소프트 Db 성능데이터 초정밀 산출 방법 및 db 성능데이터 초정밀 산출을 위한 db 모니터링 장치
KR102456150B1 (ko) * 2022-01-26 2022-10-18 (주)한국소프트웨어아이엔씨 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치

Also Published As

Publication number Publication date
WO2023146231A8 (ko) 2023-08-31
KR102456150B1 (ko) 2022-10-18

Similar Documents

Publication Publication Date Title
WO2019117593A1 (ko) 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법
JP3367970B2 (ja) 分散型システムのモニタ方法
WO2020233077A1 (zh) 系统服务的监控方法、装置、设备及存储介质
WO2023146231A1 (ko) 실제 환경에서 대용량 시스템에 대한 포괄적 성능평가를 수행하는 방법 및 이를 지원하는 장치
WO2018103315A1 (zh) 监控数据的处理方法、装置、服务器及存储设备
US8301472B2 (en) System and method for categorizing activities in computer-accessible environments
US9027025B2 (en) Real-time database exception monitoring tool using instance eviction data
WO2014025145A1 (en) Method and apparatus for processing message between processors
WO2014044136A1 (zh) 基于分布式数据的并发处理方法、系统和计算机存储介质
US20090044198A1 (en) Method and Apparatus for Call Stack Sampling in a Data Processing System
JP2009145962A (ja) ストレージシステムの性能を監視する管理計算機、その管理計算機を含む計算機システム、及び、その制御方法
JPH0844680A (ja) 並列計算機システムにおけるモニタデータ収集方法
WO2020253116A1 (zh) 数据跑批方法、装置、存储介质及集群中的成员主机
US20090019318A1 (en) Approach for monitoring activity in production systems
WO2021012481A1 (zh) 系统性能监控方法、装置、设备及存储介质
JP3327306B2 (ja) シスプレックスおよびデータを報告する方法
US9176783B2 (en) Idle transitions sampling with execution context
Haecki et al. How to diagnose nanosecond network latencies in rich end-host stacks
WO2020186780A1 (zh) 用户操作录制还原方法、装置、设备及可读存储介质
WO2018221998A1 (ko) 실시간 병목 자동 분석 방법 및 이러한 방법을 수행하는 장치
US20050125784A1 (en) Hardware environment for low-overhead profiling
WO2023273529A1 (zh) 业务日志监控方法、装置、存储介质及电子设备
Danzig et al. High resolution timing with low resolution clocks and microsecond resolution timer for Sun workstations
WO2022145613A1 (ko) 다중 코어 할당 장치 및 방법
WO2021020746A1 (ko) 가상 머신 관리 장치 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23747273

Country of ref document: EP

Kind code of ref document: A1