WO2019103223A1 - 데이터 입출력 포화 검출 장치 및 방법 - Google Patents

데이터 입출력 포화 검출 장치 및 방법 Download PDF

Info

Publication number
WO2019103223A1
WO2019103223A1 PCT/KR2017/013846 KR2017013846W WO2019103223A1 WO 2019103223 A1 WO2019103223 A1 WO 2019103223A1 KR 2017013846 W KR2017013846 W KR 2017013846W WO 2019103223 A1 WO2019103223 A1 WO 2019103223A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
data
data input
input
neural network
Prior art date
Application number
PCT/KR2017/013846
Other languages
English (en)
French (fr)
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 WO2019103223A1 publication Critical patent/WO2019103223A1/ko

Links

Images

Classifications

    • 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/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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 invention relates to an apparatus and method for detecting data input / output saturation. And more particularly to a device for detecting data input / output saturation of a flash memory based storage device.
  • the present invention is the result of a research project (research and development of a memory distributed DBMS based on a high-performance flash memory storage for the IOT environment) carried out with the support of the Information and Communication Technology Promotion Center, funded by the Ministry of Science and Technology, (Task assignment number: 1711055526).
  • a parallel processing system such as a big data platform using a plurality of CPU cores allocates a program to be executed to a plurality of cores and simultaneously processes them in parallel.
  • the capacity of a dataset in data I / O processing frequently occurs as a bottleneck with a memory in a parallel processing system.
  • a technique for mitigating a difference in performance between a processor and a storage device Is being actively studied.
  • a flash memory based solid state drive has attracted attention due to its excellent data read / write performance compared to a conventional HDD.
  • a plurality of SSDs may be arranged in a single server.
  • a load balancer that allocates multiple data input / output (I / O) requests to disk searches for disks with saturated I / O and distributes data I / O to unsaturated disks .
  • Data I / O saturation means a case where the utilization rate of the storage device reaches the back-up, and it is possible to judge whether the data input / output saturation is saturated or not through the utilization rate measurement in the conventional HDD storage device.
  • the present invention has been conceived to solve the problems described above, and discloses a data input / output saturation detection apparatus.
  • an apparatus for detecting data input / output saturation using an artificial neural network is disclosed.
  • the data input / output saturation detecting apparatus of the present invention applies a workload according to data input / output characteristics to a data storage device for determining whether data input / A feature information calculation unit for calculating at least one input / output feature information indicating a data input / output state; A detector for detecting whether the input / output state of the data storage device is saturated using a neural network that receives the calculated feature information as input and outputs whether the data input / output is saturated; .
  • the feature information calculation unit may include a combination data generation unit that generates combination data by combining the calculated at least one input / output feature information according to the data input / output characteristics; And the input / output characteristic information may include the generated combination data.
  • the data input / output characteristics may include at least one of a block size of the data input / output unit, a number of the data input / output units, an access pattern of the data input / output, and a mixture ratio of the data input / output.
  • the data input / output saturation detecting apparatus of the present invention includes a preprocessor for removing at least a part of the combined data according to a time when the data input / output request is synchronized with the data storage device and performing preprocessing; And the detecting unit may detect whether the data input / output state of the storage device is saturated using the preprocessed combination data.
  • the detecting unit may include a neural network learning unit that learns the neural network based on the learning data, from learning data prepared in advance reflecting the data input / output characteristics separately from the combination data, and verification data for verifying the neural network; And it is possible to detect whether the input / output state of the data storage device is saturated using the learned neural network.
  • the detecting unit may include a verifying unit that verifies a result of whether the input / output state of the data storage device detected using the learned neural network is saturated, with the verification data; And it is possible to detect whether the input / output state of the data storage device is saturated using the verified result.
  • the neural network learning unit may include a saturated function generating unit for generating a saturated function that defines whether the data input / output state is saturated considering a data input / output level and a degree of change of a used bandwidth according to the data input / output level; And the neural network can be learned using the generated saturation function.
  • the neural network learning unit may include a labeling unit for determining whether the data input / output state indicated by the previously prepared learning data is saturated using the generated saturation function and labeling the result; And the neural network can be learned using the labeled learning data.
  • the neural network learning unit may include a plurality of layers including at least one node included in the neural network, a parameter update unit for updating parameters related to a connection strength between nodes in the layer, And the neural network can be learned by previously determining the updated parameters.
  • the input / output characteristic information may include a number of readings according to a data input / output request, a number of writes according to the data input / output request, a read number merged at an operating system level according to the data input / output request, A write use bandwidth according to the data input / output request, an average length of a queue in which the data input / output request is stored, an average size of the input and output data, and an average time taken for the data input and output Or the like.
  • the neural network learning unit may be configured to learn different neural networks according to the access pattern of the data input / output, the number of the plurality of layers, and the number of hidden layers included in the layer.
  • the neural network may output saturation of the data input / output using an activation function that receives as input a weighted sum of parameters related to a node included in the neural network and connection strength between the nodes.
  • the verifying unit may be configured to verify a result of whether the input / output state of the data storage device detected using the learned neural network is saturated, using at least one of a grid search, a manual search, and a cross validation .
  • a data input / output saturation detection method comprising: applying a workload according to a data input / output characteristic to a data storage device to determine whether data input / Calculating one input / output characteristic information; And detecting whether the input / output state of the data storage device is saturated using a neural network that inputs the calculated feature information and outputs whether the data input / output is saturated.
  • the step of calculating the feature information includes: generating combination data by combining the calculated at least one input / output feature information according to the data input / output characteristics; And the generated combination data can be calculated as the input / output characteristic information.
  • the detecting step may include learning the neural network based on the learning data among the learning data previously prepared reflecting the data input / output characteristics separately from the combination data and the verification data for verifying the neural network; And verifying, with the verification data, a result of whether the input / output state of the data storage device detected using the learned neural network is saturated or not; And it is possible to detect whether the input / output state of the data storage device is saturated using the verified result.
  • the learning step may include generating a saturation function that defines whether the data input / output state is saturated considering a data input / output level and a degree of change of a used bandwidth according to the data input / output level. Determining whether the data input / output state indicated by the previously prepared learning data is saturated using the generated saturation function, and labeling the data; And a plurality of layers including at least one node included in the neural network, the parameters relating to a connection strength between nodes in the layer; And the neural network can be learned by previously determining the updated parameters.
  • the verifying step verifies the result of whether the input / output state of the data storage device detected using the learned neural network is saturated by at least one verification method among grid search, manual search and cross validation
  • the learning step may be configured to learn different neural networks according to the access pattern of the data input / output, the number of the plurality of layers, and the number of hidden layers included in the layer.
  • the present invention discloses a computer program stored in a computer-readable recording medium for causing a computer to execute the above-mentioned data input / output saturation detection method.
  • FIG. 1 is a block diagram of a data input / output saturation detecting apparatus according to an embodiment of the present invention.
  • FIG. 2 is an enlarged block diagram of the feature information calculation unit in the embodiment of FIG.
  • FIG. 3 is an enlarged block diagram of the detection unit in the embodiment of FIG.
  • FIG. 4 is an enlarged block diagram of a neural network learning unit in the embodiment of FIG.
  • FIG. 5 is a block diagram of a data storage device to which the present invention may be applied, in accordance with one embodiment.
  • FIG. 6 is an exemplary diagram illustrating the difference between the utilization rate of the data storage device and the bandwidth used due to internal parallelism.
  • FIG. 7 is an exemplary diagram showing an output of a saturation function and an average used bandwidth for determining whether the data input / output state is saturated or not.
  • FIG. 8 is an exemplary diagram showing a result of verifying the performance of a neural network model according to a data input / output access pattern.
  • FIG. 9 is a flowchart of a data input / output saturation detection method according to an embodiment of the present invention.
  • FIG. 10 is an enlarged flow chart of the step of detecting in the embodiment of Fig.
  • FIG. 11 is an enlarged flow chart of steps of learning in the embodiment of FIG.
  • FIG. 12 is a flowchart of a data input / output saturation detection method according to another embodiment of the present invention.
  • FIG. 1 is a block diagram of a data input / output saturation detecting apparatus 10 according to an embodiment of the present invention.
  • the data input / output saturation detecting apparatus 10 includes a feature information calculating section 100, a preprocessing section 200, and a detecting section 300.
  • the data input / output saturation detecting apparatus 10 applies a workload according to data input / output characteristics to a data storage device, calculates at least one input / output characteristic information indicative of a data input / output state from the data storage device, It is possible to determine whether the data input / output state is saturated or not by using the pre-learned neural network that receives the feature information as input.
  • the data I / O state is saturation means that the Utilization has reached 100% and can not handle more I / O requests.
  • the load balancer can improve the efficiency of the system by searching the disk with saturated I / O and allocating the data I / O to the unsaturated disk in a distributed manner. It is very important to detect whether the data I / O state is saturated or not.
  • the data storage device of the present invention includes a hard disk drive (HDD) and a solid state drive (SSD). Unlike the HDD in which only one input / output (I / O) (I / O) requests can be processed in parallel, so that the data input / output saturation detection method based on the conventional utilization rate measurement can not be applied.
  • manufacturers of SSDs offer performance limits of SSDs based on theoretical data input / output characteristics, but this does not accurately reflect data input / output state of the actual SSD.
  • the data input / output saturation detecting apparatus 10 can determine whether the input / output state is saturated by analyzing a data input / output state of a flash memory based SSD of NVMe (Non-Volatile Memory Express) standard using an artificial neural network.
  • Artificial Neural Network is implemented by a statistical learning algorithm inspired by biological neural networks in machine learning and cognitive science.
  • a neural network includes an input layer including at least one node, a hidden layer, and an output layer , And the connection strength between nodes can be expressed by a parameter including a weight and a bias related to connection strength between nodes included in the layer.
  • the feature information calculation unit 100 includes a combination data generation unit 120.
  • the feature information calculation unit 100 may apply at least one input / output feature information indicating a data input / output state of the storage device to a data storage device to determine whether the data input / .
  • the type of storage device in the present invention but it may be provided as an Intel DC 3700 NVMe SSD as a flash memory based SSD.
  • I / O means data input and output
  • I / O type means an operation type according to each data input / output request
  • the I / O size of the data input / output unit, and the I / O access pattern include a randomly and sequentially manner in which the data input / output request is accessed to the storage device.
  • the number of threads includes a unit time zone
  • a read / write ratio refers to a mixture ratio of read and write included in data input / output.
  • Table 2 lists the options of the FIO Benchmark.
  • the feature information calculation unit 100 of the present invention uses a pre-prepared utility to which the options of Table 2 are applied, and calculates a workload reflecting the data input / output characteristics to be applied to the SSD And applies it to a storage device such as an SSD to calculate at least one input / output characteristic information indicating a data input / output state.
  • Block Size is the unit block size of the data I / O unit and ranges from 4k to 512k.
  • I / O Load is the number of data I / O units from 2 to 11, .
  • the access pattern and read / write ratio of data I / O means the ratio of reading and writing in data I / O, and the ratio of reading and writing is variable in the range of 1: 9 to 9: 1. .
  • the workload is set by setting it as a random data input / output access pattern.
  • the feature information calculation unit 100 may calculate the input / output feature information reflecting the input / output states of all observable storage devices by adjusting the mixing ratio of the read and write data input / output requests among the options of the FIO benchmark.
  • the data input / output characteristics include all the characteristics that can define the data input / output state transmitted / received to the storage device such as the size of the data input / output unit, the number of the data input / output units, the access pattern of the data input / output, And may preferably be provided with the characteristics of Table 1 or Table 2 above.
  • Table 3 lists the input / output (I / O) statistics of the kernel, where ticks is the unit time (Milliseconds) used by the processor to process commands of a computer program or operating system.
  • ticks is the unit time (Milliseconds) used by the processor to process commands of a computer program or operating system.
  • the I / O ticks are the total time (Milliseconds) taken for activating the storage device according to the input / output request
  • Read / Write ticks are the time (Milliseconds) / Os indicates the number of read / write operations in accordance with the completed I / O request, the number of read / write sectors in the read / write sectors, and the number of read / write operations merged in sector units.
  • Utilization is calculated as the ratio of I / O ticks and processor CPU ticks as a usage rate, and is the read / write bandwidth used bandwidth.
  • the read / write sector and the elapsed I / O The number of data I / O requests per unit time is calculated as the ratio of CPU ticks to the number of reads / writes according to data I / O requests.
  • the read / Read or Write merged I / Os is the number of data I / O requests merged at os level, and Average Request Size is the average size of data input / output requests. Will be described with reference to FIG.
  • the combination data generation unit 120 generates combination data by combining the calculated at least one input / output characteristic information according to the data input / output characteristics.
  • the input / output characteristic information calculated by the characteristic information calculation unit 100 includes the combination data.
  • the neural network can be learned by different neural network models according to the access pattern of data input / output, and the combination data generator 120 combines the input / output characteristic information with the access pattern of the data input / ,
  • the neural network learning unit can learn different neural network models using the combined data generated differently based on the access pattern of the data input / output.
  • the combination data generation unit 120 selects the number of read I / Os that correspond to the data input / output request among the input / output characteristic information calculated in Table 5 the number of merged writes at the operating system level (the number of read I / Os merged) according to the data input / output request, the average length of the queue storing the data input / the queue size, the average size of the input and output requests, and the average time for the I / O requests (I / O requests).
  • the number of read I / Os that correspond to the data input / output request among the input / output characteristic information calculated in Table 5 the number of merged writes at the operating system level (the number of read I / Os merged) according to the data input / output request, the average length of the queue storing the data input / the queue size, the average size of the input and output requests, and the average time for the I / O requests (I / O requests).
  • the input / output characteristic information includes a number of readings according to a data input / output request, a write number according to the data input / output request, and an operating system OS), the number of merged writes at the operating system (OS) level according to the data input / output request, the read use bandwidth according to the data input / output request, the write use bandwidth according to the data input / output request, An average length of the stored queues, an average size of the input / output data, and an average time taken to input / output the data.
  • OS operating system
  • the preprocessor 200 removes at least a part of the combined data according to the time when the data input / output request is synchronized with the data storage device, and preprocesses the combined data. For example, the preprocessing unit 200 may calculate the time taken for the data input / output request to be applied to the data storage device by the workload generated according to the data input / output characteristics, and for the data storage device to be synchronized with the workload At least part of the generated combination data can be removed.
  • one piece of combined data generated by the combination data generator 120 may include input / output characteristic information corresponding to a total time of 10 seconds, and the preprocessor 200 may calculate the time The sector corresponding to 0 to 1 second and the sector corresponding to 9 to 10 seconds at which the input / output characteristic information recorded in the combination data starts can be removed from the combination data and preprocessed. Will be described with reference to FIG.
  • the detection unit 300 includes a neural network learning unit 320 and a verification unit 340. For example, the detecting unit 300 detects whether the input / output state of the data storage device is saturated using the neural network that receives the calculated feature information and outputs whether the data input / output is saturated or not do. The detecting unit 300 can detect whether the data input / output state of the data storage device is saturated by inputting the feature information calculated in the storage device for determining whether data input / output saturation is performed in the neural network that has been previously learned. Will be described with reference to FIG.
  • the neural network learning unit 320 includes a saturation function generation unit 322, a labeling unit 324, and an update unit 326.
  • the neural network learning unit 320 learns the neural network based on the learning data among the learning data previously prepared reflecting the data input / output characteristics separately from the combination data, and the verification data for verifying the neural network.
  • the training data and the verification data are pre-generated data using a workload generator, and the neural network for accurately measuring the SSD performance without being influenced by the number of CPU cores reflecting various workload characteristics Data for learning.
  • the neural network learning unit 320 separately generates a saturation function that defines whether the state of the data input / output is saturated, and determines whether the data input / output state indicated by the previously prepared training data is saturated using the generated saturation function And learns the neural network by updating parameters relating to the link strength between layers and nodes including at least one node included in the neural network based on the labeled learning data.
  • the neural network learning unit 320 adjusts hyperparameters including the access pattern of data input and output, the number of hidden layers included in the neural network, the number of nodes included in the input layer, the output layer, and the hidden layer, Neural networks can be learned.
  • the hyper parameter refers to a parameter to be set prior to learning a neural network, not a parameter set by learning.
  • the neural network that the neural network learning unit 320 learns may output the saturation of the data input / output using an activation function that receives a weighted sum of parameters related to the node and connection strength between the nodes.
  • the activation function used by the neural network learning unit 320 is a function connected to the output layer and includes Sigmoid, tanh, ELU, Maxout, and ReLU.
  • the neural network can output whether the data input / output state of the data storage device is saturated using a rectified linear unit (ReLU) activation function.
  • ReLU rectified linear unit
  • the neural network learning unit 320 includes six nodes in the input layer when the data input / output access pattern is Read or Write, and nine nodes in the input layer when the data input / output access pattern is mixed. Learn.
  • the output layer of the neural network that the neural network learning unit 320 learns includes two nodes to output whether the data input / output state is saturated, and the number of hidden layers can be set to one layer or two layers.
  • the neural network learning unit 320 can learn the neural network by setting five nodes to one hidden layer when the hidden layer is one layer and set a total of ten nodes when the hidden layer is two layers, You can learn as a case.
  • the neural network learning unit 320 can prevent over-fitting of the learned neural network by setting L1 Regularization, and can evaluate and verify the prediction accuracy of the neural network model using LogLoss and 5 fold cross-validation as performance evaluation. Will be described with reference to FIG.
  • the saturation function generating unit 322 generates a saturation function that defines whether the data input / output state is saturated in consideration of the data input / output level and the degree of change of the used bandwidth according to the data input / output level.
  • the data storage device in which the data input / output saturation detecting device 10 intends to analyze the data input / output state includes a RAM buffer 420, a host interface logic 440, an SSD controller 460, a flash memory package 482 , 484).
  • the SSD controller 460 includes a processor 462, a buffer manager 464, and a flash controller 466 for converting into a sector-by-sector storage structure.
  • the SSD controller 460 controls data to be stored in a plurality of flash memories Can be managed.
  • the saturation function generation unit 322 defines a new data input / output saturation state to detect whether the data input / output state of the SSD is saturated. For example, referring to FIG. 6, when a benchmark test is performed on an NVMe SSD based on a utilization rate used in a conventional HDD, the utilization rate 504 reaches 100% , But it can be observed that the usage bandwidth 504 reaches a maximum value at a higher data input / output level. That is, the data input / output reaches a saturation state in a state where there is more available usable bandwidth, which results in the inability to use all of the potential performance of the data storage device.
  • the saturation function generated by the saturation function generating unit 322 can be defined as Equation (1) below.
  • M i is a saturation function and outputs a defined meanlessness value by observing the amount of bandwidth variation as the data input / output level increases.
  • i is an index number of an increment level of data input / output as an integer
  • L i is a function of outputting a used bandwidth and a max value of a level B i of the i-th data input / output.
  • the saturation function used by the data input / output saturation detecting apparatus 10 outputs an irrelevant value with a difference between a rate of increase of data input / output and an increase rate of a used bandwidth and a value of 1, whichever is larger.
  • the labeling unit 324 determines whether the data input / output state indicated by the previously prepared learning data is saturated or not using the saturation function, and labels the data. For example, the labeling unit 324 applies the workload generated by the workload generator using the generated saturation function to determine whether the data input / output state indicated by the generated learning data is saturated or not, (Not shown). Therefore, the neural network learning unit 320 labels whether the data input / output state represented by the learning data generated using the saturation function is saturated or not, and learns the neural network using the labeled learning data.
  • the update unit 326 updates parameters relating to a plurality of layers including at least one node included in the neural network, connection strength between nodes in the layer. For example, the update unit 326 may improve the accuracy of the data input / output state determination of the neural network by updating the parameters related to the node included in the neural network, the layer including the node, and the connection strength between nodes in the layer have.
  • the verifying unit 340 verifies a result of whether the input / output state of the data storage device detected using the learned neural network is saturated with the verification data. For example, the verification unit 340 may verify the result of whether the input / output state of the data storage device output by the learned neural network is saturated by using data not used for learning the neural network.
  • the verifying unit 340 can verify the result output by the neural network in at least one of a grid search, a manual search, and a cross validation.
  • the verification unit 340 may use a grid search method, a manual search method, and a cross validation method in order to not only verify the output result of the final learned neural network, but also to optimize the parameters of the neural network.
  • the grid search is a method of performing hyperparameter optimization.
  • the cross validation that the validation unit 340 uses to test the neural network can be provided by 5-fold cross validation, and the validation result is as shown in the following table.
  • the performance of the neural network learned differently according to the data input / output access pattern (Read, Write, Mixed), the number of hidden layers, and the type of hidden layer node is shown as an index including LogLoss and AUC.
  • Model represents a data I / O access pattern
  • Hidden nodes indicate the number of hidden layers and hidden nodes included in the hidden layer.
  • LogLoss is a log loss, a statistical index that increases when the probability predicted by the classification performance measured between 0 and 1 is different from the actual value, and the lower the higher the performance is.
  • Area under cover (AUC) is a curve in the Receiver Operation Characteristic Curve (ROC), and the higher the AUC value, the higher the performance.
  • FIG. 2 is an enlarged block diagram of the feature information calculation unit 100 in the embodiment of FIG.
  • the combination data generation unit 120 generates the combination data by combining the calculated at least one input / output characteristic information according to the data input / output characteristics.
  • the combination data generated by the combination data generation unit 120 may be different according to the access pattern of data input / output. Since the neural network of the present invention learns based on different combination data, Can be learned by a neural network model. The specific method of generating the combination data by the combination data generating unit is the same as described above, and thus will not be described.
  • FIG. 3 is an enlarged block diagram of the detection unit 300 in the embodiment of FIG.
  • the detection unit 300 includes a neural network learning unit 320 and a verification unit 340. For example, the detecting unit 300 detects whether the input / output state of the data storage device is saturated using the neural network that receives the calculated feature information and outputs whether the data input / output is saturated or not do. A method for determining whether the data input / output state of the storage device is saturated using the neural network is as described above, and thus will not be described.
  • FIG. 4 is an enlarged block diagram of the neural network learning unit 320 in the embodiment of FIG.
  • the neural network learning unit 320 includes a saturation function generation unit 322, a labeling unit 324, and an update unit 326.
  • the neural network learning unit 320 learns the neural network based on the learning data among the learning data previously prepared reflecting the data input / output characteristics separately from the combination data, and the verification data for verifying the neural network.
  • the neural network learning unit 320 may set some of the combination data including the characteristic information calculated by applying the workload generated by the workload generator to the storage device as learning data and the rest as test data, The neural network can be learned based on the set learning data.
  • the concrete method of learning the neural network by setting the hyper parameters before the neural network learning unit 320 learns the neural network and adjusting the nodes included in the hidden layer and the hidden layer included in the neural network is as described above.
  • the saturation function generating unit 322 generates a saturation function that defines whether the data input / output state is saturated in consideration of the data input / output level and the degree of change of the used bandwidth according to the data input / output level.
  • the specific method of outputting the meaninglessness value by considering the rate of increase of the data input / output level and the rate of increase of the used bandwidth is as described above.
  • the labeling unit 324 determines whether the data input / output state indicated by the previously prepared learning data is saturated using the saturation function, and labels the data.
  • the labeling performed by the labeling unit 324 includes all the methods for identifying whether or not the state of the data input / output indicated by the training data in the training data is saturated.
  • the labeling unit 324 can display whether or not the data input / output state is saturated with at least a part of the learning data, as a binary identifier and tag.
  • the update unit 326 updates parameters relating to a plurality of layers including at least one node included in the neural network, connection strength between nodes in the layer.
  • the updating unit 326 corresponds to a process of learning a neural network to update a parameter relating to a node included in a neural network and a connection strength between the nodes, and the parameter updating process is performed by an algorithm (Back Propagation).
  • FIG. 5 is a block diagram of a data storage device to which the present invention may be applied, in accordance with one embodiment.
  • the data storage device in which the data input / output saturation detecting device 10 intends to analyze the data input / output state includes a RAM buffer 420, a host interface logic 440, an SSD controller 460, a flash memory package 482 , 484).
  • the SSD controller 460 may include a processor 462, a buffer manager 464, and a flash controller 466 for converting into a sector-by-sector storage structure.
  • the SSD includes an SSD controller for managing the plurality of flash memory packages 482 and 484, and the utilization-based data input / output state saturation detection technique applied to the conventional HDD due to internal parallelism can not be applied.
  • FIG. 6 is an exemplary diagram illustrating the difference between the utilization rate of the data storage device and the bandwidth used due to internal parallelism.
  • the conventional utilization-based saturation detection technique is a basis for indicating that the performance of the available storage resources of the SSD can not be accurately measured. Therefore, a new data I / O saturation detection scheme suitable for the SSD is required .
  • FIG. 7 is an exemplary diagram showing an output of a saturation function and an average used bandwidth for determining whether the data input / output state is saturated or not.
  • the saturation function generating unit 322 defines a saturation function using Equation (1) and outputs a meaninglessness value considering the degree of change of the used bandwidth according to the data input / output level.
  • the data input / output saturation detecting apparatus 10 of the present invention detects a data input / output saturation of a point at which the data input / output level, which is the entry level of the interest interval 508, is 32 Can be detected as a point where the data input / output state is saturated.
  • FIG. 8 is an exemplary diagram showing the performance of a neural network model according to a data input / output access pattern.
  • the data input / output saturation detecting apparatus 10 detects the data input / output saturation detecting apparatus 10 according to the types of data access patterns (read, write, mix), the number of hidden layers, The other neural network can be learned as described above.
  • the data input / output saturation detecting apparatus 10 can generate a new neural network model by combining the neural networks generated by the different methods, and the performance of the combined neural network model is as follows.
  • the Optimal model is the best neural network among the neural network models generated by three data input / output access patterns in Table 7.
  • the Ensemble model is a neural network model generated by averaging three neural networks generated for each data input /
  • the logistic model is a model using logistic classification, which means the above-described Optimal model and Ensemble model and the neural network model as a control group.
  • the data input / output saturation detecting apparatus 10 of the present invention is a statistical index for evaluating the performance of the generated neural network model.
  • Sensitivity refers to the ratio of cases in which the data input / output status of the neural network is saturated, among the data in which the data input / output status is saturated.
  • Specificity means the ratio of cases in which the data input / output state of the neural network judged that the data input / output state is not saturated, among data other than the saturation data.
  • the Receiver Operation Characteristic Curve (ROC) can be obtained by plotting the specificity at the x coordinate and the sensitivity at the y coordinate. As described above, the performance of the neural network is higher when the area under cover is larger, which indicates the area under the graph of the Receiver Operation Characteristic Curve (ROC).
  • the sensitivity curve of the ensemble model 516 and the logistic model 518 shows that the sensitivity of the ensemble model 516 is 0.9743
  • the Sensitivity curve of the ensemble model 516 and the logistic model 518 when the data input / output access pattern is write the sensitivity of the ensemble model 522 is lowered to 0.9828 and the data input /
  • the access pattern is mixed, it can be observed that the sensitivity of the ensemble model 526 is larger at 0.9096 than the sensitivity curve of the ensemble model 526 and the logistic model 528.
  • FIG. 9 is a flowchart of a data input / output saturation detection method according to an embodiment of the present invention.
  • the data input / output saturation detection method of the present invention includes the following steps performed in a time-series manner in the data input / output saturation detection device (10).
  • the feature information calculation unit 100 applies at least one input / output feature information indicating a data input / output state of the storage device to a data storage device for determining whether the data input / .
  • the feature information calculation unit 100 includes a combination data generation unit 120, and the input / output feature information includes combination data, and a method of combining the combination data is the same as described above, and thus will not be described.
  • step S200 the preprocessor 200 removes at least part of the combined data according to the time when the data input / output request is synchronized with the data storage device, and preprocesses the combined data.
  • the preprocessing unit 200 can remove at least a part of the combination data according to the time when the data input / output request is synchronized with the data storage device, At least a part of the generated input / output characteristic information can also be removed.
  • FIG. 10 is an enlarged flow chart of the step of detecting in the embodiment of Fig.
  • step S320 the neural network learning unit 320 separately generates a saturation function that defines whether the state of the data input / output is saturated, and determines whether the data input / output state indicated by the previously prepared training data is saturated using the generated saturation function And learns the neural network by updating parameters relating to the link strength between layers and nodes including at least one node included in the neural network based on the labeled learning data.
  • the specific method by which the neural network learning unit 320 learns the neural network is as described above, so it is omitted.
  • the verifying unit 340 verifies the verification result with respect to whether or not the input / output state of the data storage device detected using the learned neural network is saturated.
  • a method of verifying the result of whether the data input / output state of the data storage device output by the neural network output by the verification unit 340 using the verification data is saturated is the same as described above, and thus will not be described.
  • FIG. 11 is an enlarged flow chart of steps of learning in the embodiment of FIG.
  • step S322 the saturation function generation unit 322 generates a saturation function that defines whether the data input / output state is saturated in consideration of the data input / output level and the degree of change of the used bandwidth according to the data input / output level.
  • the output of the saturation function generated by the saturation function generating unit 322 is an unspecified value, and the method of defining the saturation function is the same as described above and is omitted.
  • the labeling unit 324 determines whether the data input / output state indicated by the previously prepared learning data is saturated or not using the saturation function, and labels it.
  • a specific method of applying the saturation function to the learning data and labeling the data represented by the learning data according to whether the input / output state of the data is saturated or not is as described above.
  • the update unit 326 updates parameters relating to a plurality of layers including at least one node included in the neural network, connection strength between the nodes in the layer.
  • the update unit 326 updates the parameters included in the neural network to correspond to the process of learning the neural network, and the updating process of the parameters is as described above.
  • FIG. 12 is a flowchart of a data input / output saturation detection method according to another embodiment of the present invention.
  • the feature information calculation unit 100 inputs the workload generated in the workload generator provided in advance into the SSD.
  • the feature information calculation unit 100 calculates at least one input / output feature information indicating the data input / output state of the storage device from the SSD, which is a storage device to which the workload is applied.
  • the input / output characteristic information includes an I / O statistic (I / O statistic).
  • the combination data generation unit 120 generates combination data by combining the calculated at least one input / output characteristic information.
  • the input / output characteristic information includes combination data in a broad sense.
  • the preprocessor 200 removes at least a part of the combined data (Ramp-Up-Section) according to the time when the data input / output request is synchronized with the data storage device.
  • the labeling unit 324 determines whether the input / output state of the data represented by the generated combination data or input / output characteristic information is saturated using the saturation function, and labels the data.
  • step S912 the detection unit 300 learns the neural network based on the training data, and verifies the learned neural network by at least one of a grid search, a manual search, and a 5-fold cross validation.
  • the detector 300 calculates the best performance among the neural networks learned differently according to the access pattern of data input / output, the number of hidden layers included in the neural network, the number of nodes included in the input layer, You can choose the neural network to represent.
  • the data input / output saturation detecting apparatus 10 can test the accuracy of the selected neural network model with the test data.
  • All or part of the method of an embodiment of the present invention described above can be implemented in the form of a computer-executable recording medium (or a computer program product) such as a program module executed by a computer.
  • the computer-readable medium may include computer storage media (e.g., memory, hard disk, magnetic / optical media or solid-state drives).
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • all or part of the method according to an embodiment of the present invention may include instructions executable by a computer, the computer program comprising programmable machine instructions to be processed by a processor, Language, an object-oriented programming language, an assembly language, or a machine language.
  • Means or module in the present specification may mean hardware capable of performing the functions and operations according to the respective names described herein and may be implemented by computer program code , Or may refer to an electronic recording medium, e.g., a processor or a microprocessor, having computer program code embodied thereon to perform particular functions and operations.
  • a means or module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.
  • a method according to an embodiment of the present invention may be implemented by a computer program as described above being executed by a computing device.
  • the computing device may include a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to the low-speed bus and the storage device.
  • Each of these components is connected to each other using a variety of buses and can be mounted on a common motherboard or mounted in any other suitable manner.

Abstract

본 발명은 데이터 입출력 포화 검출 장치로서, 특히 신경망을 이용하여 내부 병렬성을 가지는 데이터 저장장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있는 데이터 입출력 포화 검출 장치를 개시한다. 본 발명의 데이터 입출력 포화 검출 장치는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 특징 정보 산출부; 및 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 검출부; 를 포함한다.

Description

데이터 입출력 포화 검출 장치 및 방법
본 발명은 데이터 입출력 포화 검출 장치 및 방법에 관한 것이다. 보다 상세하게는 플래시 메모리 기반 저장 장치의 데이터 입출력 포화를 검출하는 장치에 관한 것이다. 본 발명은 2017년도 과학기술정보통신부(정부)의 재원으로 정보통신기술진흥센터의 지원을 받아 수행된 연구사업(IOT 환경을 위한 고성능 플래시 메모리 스토리지 기반 인메모리 분산 DBMS 연구 개발)의 결과물에 해당한다(과제고유번호: 1711055526).
단일 CPU내 코어의 수가 점차 증가함에 따라 프로세서와 스토리지 사이의 데이터 처리 능력의 차이가 점점 벌어지고 있다. 복수의 CPU 코어를 사용하는 빅데이타 플랫폼과 같은 병렬 처리 시스템은 수행하고자 하는 프로그램을 다수의 코어에 할당하여 이를 동시에 병렬 처리한다. 일반적으로, 데이터 I/O 프로세싱에서 데이터 셋의 용량은 병렬 처리 시스템상 메모리와 병목 현상을 일으키는 경우가 빈번히 발생하는데, 최근 빅 데이터를 저장하는 스토리지 기술로서 프로세서와 저장 장치의 성능 차이를 완화하는 기술이 활발하게 연구되고 있다.
플래시 메모리 기반 SSD(Solid State Drive)는 종래 HDD에 비하여 데이터 읽기 쓰기 성능이 뛰어나 주목을 받고 있고, 데이터 스토리지의 성능을 향상하기 위하여 단일 서버에서 복수의 SSD를 배열하여 사용하는 경우도 있다. 복수의 데이터 입출력(I/O, Input/Output) 요청을 디스크에 할당하는 부하 분산기(Load Balancer)는 입출력(I/O)이 포화된 디스크를 검색하고, 포화되지 않은 디스크로 데이터 입출력을 분산하여 할당한다. 데이터 입출력 포화(IO Saturation)는 저장 장치의 이용률이 백프로에 도달한 경우를 의미하고, 종래의 HDD 저장 장치에는 이러한 이용률 측정을 통한 데이터 입출력 포화 여부를 판단할 수 있었다.
하지만, SSD의 경우에는 내부에 복수의 플래시 메모리 칩의 병렬성(Parallel) 로 인하여 종래의 데이터 입출력 포화 판단 기법만으로는 SSD의 실제 데이터 입출력 포화 상태를 판단하기 어렵다. 따라서, 종래의 데이터 입출력 포화 검출 기법이 아닌 새로운 플래시 메모리 기반 SSD의 데이터 입출력 포화 검출 기술 개발이 요구되고 있다.
본 발명은 상기한 문제점을 해결하기 위하여 안출된 것으로서, 데이터 입출력 포화 검출 장치를 개시한다. 특히, 인공 신경망을 이용하여 데이터 입출력 포화를 검출하는 장치를 개시한다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 본 발명의 데이터 입출력 포화 검출 장치는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 특징 정보 산출부; 및 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 검출부; 를 포함한다.
본 발명에서 상기 특징 정보 산출부는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 조합 데이터 생성부; 를 더 포함하고, 상기 입출력 특징 정보는 상기 생성된 조합 데이터를 포함할 수 있다.
본 발명에서 상기 데이터 입출력 특성은 상기 데이터 입출력 유닛의 블록 사이즈, 상기 데이터 입출력 유닛의 수, 상기 데이터 입출력의 액세스 패턴 및 상기 데이터 입출력의 혼합비 중 적어도 하나를 포함할 수 있다.
본 발명에서 데이터 입출력 포화 검출 장치는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 전처리부; 를 더 포함하고, 상기 검출부는 상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 검출부는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 신경망 학습부; 를 더 포함하고, 상기 학습된 신경망을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출 할 수 있다.
본 발명에서 상기 검출부는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 검증부; 를 더 포함하고, 상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 신경망 학습부는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 포화 함수 생성부; 를 더 포함하고, 상기 생성된 포화 함수를 이용하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 신경망 학습부는 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 레이블링부; 를 더 포함하고, 상기 레이블링된 학습용 데이터를 이용하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 신경망 학습부는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 파라미터 업데이트부; 를 더 포함하고, 상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 입출력 특징 정보는 데이터 입출력 요청에 따른 읽기 횟수, 상기 데이터 입출력 요청에 따른 쓰기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 읽기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 쓰기 횟수, 상기 데이터 입출력 요청에 따른 읽기 사용 대역폭, 상기 데이터 입출력 요청에 따른 쓰기 사용 대역폭, 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이, 입출력 데이터의 평균 사이즈 및 상기 데이터 입출력에 걸리는 평균 시간 중 적어도 하나를 포함할 수 있다.
본 발명에서 상기 신경망 학습부는 상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하도록 마련될 수 있다.
본 발명에서 상기 신경망은 상기 신경망에 포함된 노드 및 상기 노드 사이의 연결 강도에 관한 파라미터들의 가중합을 입력으로 하는 활성화 함수를 이용하여 상기 데이터 입출력의 포화 여부를 출력할 수 있다.
본 발명에서 상기 검증부는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하도록 마련될 수 있다.
또한 상기한 목적을 달성하기 위하여 본 발명의 데이터 입출력 포화 검출 방법은 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 단계; 및 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 단계; 를 포함한다.
본 발명에서 상기 특징 정보를 산출하는 단계는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 단계; 를 더 포함하고, 상기 생성된 조합 데이터를 상기 입출력 특징 정보로서 산출할 수 있다.
본 발명에서 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 단계; 를 더 포함하고, 상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 검출하는 단계는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 단계; 및 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 단계; 를 더 포함하고, 상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출할 수 있다.
본 발명에서 상기 학습하는 단계는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 단계; 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 단계; 및 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 단계; 를 더 포함하고, 상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습할 수 있다.
본 발명에서 상기 검증하는 단계는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하고, 상기 학습하는 단계는 상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하도록 마련될 수 있다.
또한, 본 발명은 컴퓨터에서 상기한 데이터 입출력 포화 검출 방법을 실행시키기 위한 컴퓨터에서 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 개시한다.
본 발명에 따르면, 데이터 저장 장치의 입출력 상태가 포화인지 여부를 결정할 수 있다.
특히, 내부 병렬성을 가지는 플래시 메모리 기반 저장 장치의 데이터 입출력 상태를 정확하게 측정할 수 있는 잇점이 있다.
도 1은 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 장치의 블록도이다.
도 2는 도 1의 실시예에서 특징 정보 산출부의 확대 블록도이다.
도 3은 도 1의 실시예에서 검출부의 확대 블록도이다.
도 4는 도 3의 실시 예에서 신경망 학습부의 확대 블록도이다.
도 5는 일 실시 예에 따라 본 발명이 적용될 수 있는 데이터 저장 장치의 블록도이다.
도 6은 내부 병렬성으로 인한 데이터 저장 장치의 이용률과 사용 대역폭의 차이를 나타내는 예시도이다.
도 7은 데이터 입출력 상태가 포화인지 여부를 판단하기 위한 포화 함수의 출력과 평균 사용대역폭을 나타내는 예시도이다.
도 8은 데이터 입출력 액세스 패턴에 따른 신경망 모델의 성능을 검증한 결과를 나타내는 예시도이다.
도 9는 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
도 10은 도 9의 실시 예에서 검출하는 단계의 확대 흐름도이다.
도 11은 도 10의 실시 예에서 학습하는 단계의 확대 흐름도이다.
도 12는 본 발명의 또 다른 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
이하, 본 발명의 일 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 용어를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하에서 설명하는 각 단계는 하나 또는 여러 개의 소프트웨어 모듈로도 구비가 되거나 또는 각 기능을 담당하는 하드웨어로도 구현이 가능하며, 소프트웨어와 하드웨어가 복합된 형태로도 가능하다. 각 용어의 구체적인 의미와 예시는 각 도면의 순서에 따라 이하 설명 한다. 이하에서는 본 발명의 실시예에 따른 데이터 입출력 포화 검출 장치의 구성을 관련된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 장치(10)의 블록도이다.
데이터 입출력 포화 검출 장치(10)는 특징 정보 산출부(100), 전처리부(200) 및 검출부(300)를 포함한다. 예를 들어, 데이터 입출력 포화 검출 장치(10)는 데이터 입출력 특성에 따른 워크로드를 데이터 저장 장치에 인가하고, 상기 데이터 저장 장치로부터 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하며, 상기 산출된 특징 정보를 입력으로 하는 미리 학습된 신경망을 이용하여 데이터 입출력 상태가 포화인지 여부를 결정할 수 있다. 데이터 입출력 상태가 포화(Saturation)라는 것은 이용률(Utilization)이 100%에 도달한 상태로서, 더 많은 입출력 요청을 처리할 수 없는 상태를 의미한다.
데이터 입출력 포화 검출 장치(10)는 데이터 입출력 레벨과 사용 대역폭의 변화 정도를 고려한 무의미도(Meaninglessness)에 기반한 별도의 포화 함수를 생성하고, 상기 생성된 포화 함수를 이용하여 신경망을 학습하여, 상기 학습된 신경망을 이용하여 데이터 입출력 상태가 포화인지 여부를 결정할 수 있다.
부하 분산기(Load Balancer)는 입출력(I/O)이 포화된 디스크를 검색하고, 포화되지 않은 디스크로 데이터 입출력을 분산하여 할당함으로서 시스템의 처리 효율을 개선할 수 있는데, 컴퓨팅 장치의 시스템 효율 개선을 위하여서는 데이터 입출력 상태의 포화 여부를 검출하는 것이 매우 중요하다. 본 발명의 데이터 저장 장치는 HDD(Hard Disk Drive) 및 SSD(Solid State Drive)를 포함하고, HDD가 하나의 입출력(I/O) 요청만을 처리할 수 있는 것과는 달리 SSD는 복수의 플래시 메모리를 기반으로 멀티 입출력(I/O) 요청을 병렬(Parallel)적으로 처리할 수 있기 때문에 종래 이용률 측정을 통한 데이터 입출력 포화 검출 방법이 적용될 수 없다. 일반적으로 SSD의 제조사들은 이론적인 데이터 입출력 특성에 기반한 SSD의 성능 한계치를 제시하고 있으나, 이는 실제 SSD의 데이터 입출력 상태를 정확하게 반영하지 않는 문제점이 있다.
예를 들어, 데이터 입출력 포화 검출 장치(10)는 인공신경망을 이용하여 NVMe(Non-Volatile Memory Express) 규격의 플래시 메모리 기반 SSD의 데이터 입출력 상태를 분석하여 입출력 상태가 포화인지 여부를 결정할 수 있다. 신경망(Artificial Neural Network)은 기계학습과 인지과학에서 생물학의 신경망으로부터 영감을 얻은 통계학적 학습 알고리즘으로 구현되는 것으로, 본 발명에서 신경망은 적어도 하나의 노드를 포함하는 입력 레이어, 히든 레이어 및 출력 레이어를 포함하고, 상기 레이어 내부에 포함된 노드 사이의 연결 강도에 관한 가중치와 바이어스를 포함하는 파라미터로 각 노드간의 연결 강도를 표현할 수 있다.
특징 정보 산출부(100)는 조합 데이터 생성부(120)를 포함한다. 예를 들어 특징 정보 산출부(100)는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 본 발명에서 저장 장치에 종류에는 제한이 없으나, 바람직하게는 플래시 메모리 기반 SSD로서 Intel DC 3700 NVMe SSD로 마련될 수 있다.
Figure PCTKR2017013846-appb-T000001
상기 표 1은 워크로드 특성을 나열한 것으로, I/O는 데이터의 입력(Input) 및 출력(Output)을 의미하며, I/O type은 각 데이터 입출력 요청에 따른 동작 타입을 의미하는 것으로서, 쓰기, 읽기 및 삭제를 포함하고, I/O size는 데이터 입출력 유닛의 사이즈, I/O access pattern은 데이터 입출력 요청이 저장 장치에 액세스되는 방식으로 randomly 및 sequentially 방식을 포함하며, The number of threads는 단위 시간대에 병렬적으로 처리되는 데이터 입출력 요청의 집합을 의미하고, Read/Write Ratio는 데이터 입출력에서 포함된 읽기 및 쓰기의 혼합비를 의미한다.
Figure PCTKR2017013846-appb-T000002
상기 표2는 FIO Benchmark 의 옵션사항을 나열한 것으로서, 본 발명의 특징 정보 산출부(100)는 상기 표 2의 옵션 사항이 적용된 미리 마련된 유틸리티를 이용하여 SSD에 인가할 데이터 입출력 특성이 반영된 워크로드를 생성하고, 이를 SSD와 같은 저장 장치에 인가하여, 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 여기에서 Block Size는 데이터 입출력 유닛의 단위 블록 사이즈로 4k에서 512k 범위를 포함하고, I/O Load 는 저장 장치로 인가되는 총 데이터 입출력 유닛의 수로서 2에서 2의 11승수까지의 데이터 입출력 유닛수를 포함한다. 또한 The type of I/O pattern은 데이터 입출력의 액세스 패턴 및 Read/Write Ratio는 데이터 입출력에서 읽기 및 쓰기가 혼합된 비율을 의미하고, 읽기 쓰기의 비율은 1:9에서 9:1의 범위에서 가변될 수 있다. 실제적으로, 데이터 입출력 액세스 패턴으로 Sequential 데이터 입출력 액세스 패턴은 거의 존재하지 않으므로 random 데이터 입출력 액세스 패턴으로 설정하여 워크로드를 인가한다.
특징 정보 산출부(100)는 FIO Benchmark 의 Option사항 중 읽기와 쓰기 데이터 입출력 요청 혼합비율을 조절하여 관측 가능한 모든 저장 장치의 입출력 상태가 반영된 입출력 특징 정보를 산출할 수 있다. 본 발명에서 데이터 입출력 특성은 데이터 입출력 유닛의 사이즈, 상기 데이터 입출력 유닛의 수, 상기 데이터 입출력의 액세스 패턴 및 상기 데이터 입출력의 혼합비와 같은 저장 장치로 송수신되는 데이터 입출력 상태를 정의할 수 있는 모든 특성을 포함하고, 바람직하게는 상기 표1 또는 표2의 특성으로 마련될 수 있다.
Figure PCTKR2017013846-appb-T000003
상기 표 3은 Kernel 의 입출력(I/O) 통계(Statistics)를 나열한 것으로, 여기에서 ticks는 프로세서가 컴퓨터 프로그램 또는 운영체제의 명령을 처리하는데 사용된 단위 시간(Milliseconds)을 의미한다. 여기에서, I/O ticks는 해당 입출력 요청에 따라 저장 장치가 활성화되는데 걸린 총 시간(Milliseconds), Read/Write ticks는 저장 장치가 읽기/쓰기 동작을 수행하는데 걸린 시간(Milliseconds), Read/Write I/Os는 완료된 입출력 요청에 따른 읽기/쓰기의 횟수, Read/Write sectors는 섹터 단위로 읽기/쓰기의 횟수 및 Merged read/write sectors는 섹터 단위로 병합된 읽기/쓰기의 횟수를 의미한다.
Figure PCTKR2017013846-appb-T000004
상기 표 4는 디스크 성능의 측정 수단(Measure)을 나열한 것으로 Utilization은 이용률로서 I/O ticks와 프로세서 CPU ticks의 비로 계산되고, Read or Write bandwidth 사용 대역폭으로서, 읽기/쓰기 섹터와 경과된 I/O ticks의 비로 계산되며, Read or Write response time 읽기/쓰기의 응답 시간으로 CPU ticks와 데이터 입출력 요청에 따른 읽기/쓰기 횟수의 비로 계산되고, Read or Write I/Os 는 단위 시간당 데이터 입출력 요청의 수, Read or Write merged I/Os는 os 수준에서 병합된 데이터 입출력 요청의 수 및 Average Request Size는 데이터 입출력 요청의 평균 사이즈를 의미한다. 도 2를 참조하여 설명한다.
예를 들어, 조합 데이터 생성부(120)는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성한다. 특징 정보 산출부(100)에서 산출된 입출력 특징 정보는 상기 조합 데이터를 포함한다. 본 발명에서 신경망은 데이터 입출력의 액세스 패턴에 따라 서로 다른 신경망 모델로 학습될 수 있고, 조합 데이터 생성부(120)는 상기 입출력 특징 정보들을 데이터 입출력의 액세스 패턴을 기준으로 조합하여 조합 데이터를 생성하고, 신경망 학습부는 데이터 입출력의 액세스 패턴을 기준으로 서로 다르게 생성된 조합 데이터를 이용하여 서로 다른 신경망 모델을 학습할 수 있다.
예를 들어, 데이터 액세스 패턴이 읽기(Read)인 경우, 조합 데이터 생성부(120)는 상기 표 5에서 산출된 입출력 특징 정보들 중에서 데이터 입출력 요청에 따른 읽기 횟수(the number of read I/Os that were issued), 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 쓰기 횟수(the number of read I/Os merged), 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이 (The total number if megabytes read The average queue length) 입출력 데이터의 평균 사이즈 (The requests The average size of the requests) 및 데이터 입출력에 걸리는 평균 시간 (The average time for I/O requests)을 조합하여 조합 데이터를 생성할 수 있다. 도 3을 참조하여 설명한다.
Figure PCTKR2017013846-appb-T000005
상기 표 5에서 Input Vectors는 산출된 입출력 특징 정보의 집합을 의미하고, 본 발명에서 입출력 특징 정보는 데이터 입출력 요청에 따른 읽기 횟수, 상기 데이터 입출력 요청에 따른 쓰기 횟수, 상기 데이터 입출력 요청에 따라 운영체제(OS) 수준에서 병합된 읽기 횟수, 상기 데이터 입출력 요청에 따라 운영체제(OS) 수준에서 병합된 쓰기 횟수, 상기 데이터 입출력 요청에 따른 읽기 사용 대역폭, 상기 데이터 입출력 요청에 따른 쓰기 사용 대역폭, 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이, 입출력 데이터의 평균 사이즈 및 상기 데이터 입출력에 걸리는 평균 시간 중 적어도 하나를 포함할 수 있다.
전처리부(200)는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리한다. 예를 들어, 전처리부(200)는 데이터 입출력 특성에 따라 생성된 워크로드에 의하여 데이터 입출력 요청이 데이터 저장 장치에 인가되고, 상기 데이터 저장 장치가 상기 워크로드에 동기(Sync) 되기까지 걸리는 시간을 고려하여 생성된 조합 데이터에서 적어도 일부를 제거할 수 있다. 예를 들어, 조합 데이터 생성부(120)에서 생성된 하나의 조합 데이터는 총 10초의 시간에 대응되는 입출력 특징 정보를 포함할 수 있고, 전처리부(200)는 워크로드가 저장 장치로 동기되는 시간을 고려하여 조합 데이터에 기록된 입출력 특징 정보가 시작되는 0~1초에 상응하는 섹터와 9~10초에 상응하는 섹터를 조합 데이터에서 제거하여 전처리 할 수 있다. 도 3을 참조하여 설명한다.
검출부(300)는 신경망 학습부(320) 및 검증부(340)를 포함한다. 예를들어, 검출부(300)는 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출한다. 검출부(300)는 미리 학습된 신경망에 데이터 입출력 포화 여부를 판단하고자 하는 저장 장치에서 산출된 특징 정보를 입력하여 상기 데이터 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출할 수 있다. 도 4를 참조하여 설명한다.
신경망 학습부(320)는 포화 함수 생성부(322), 레이블링부(324) 및 업데이트부(326)를 포함한다. 예를 들어, 신경망 학습부(320)는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습한다. 상기 학습용 데이터와 검증용 데이터는 워크로드 생성기(Workload Generator)를 이용하여 미리 생성된 데이터로서, 다양한 워크로드 특성을 반영하여 CPU 코어의 수에 영향 받지 않고, 정확하게 SSD의 성능을 측정하기 위한 신경망을 학습하기 위한 데이터이다.
신경망 학습부(320)는 데이터 입출력의 상태가 포화인지 여부를 정의하는 포화 함수를 별도로 생성하고, 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링하며, 레이블링된 학습용 데이터를 기반으로 신경망에 포함된 적어도 하나의 노드를 포함하는 레이어 및 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하여 신경망을 학습한다.
신경망 학습부(320)는 데이터 입출력의 액세스 패턴, 신경망에 포함된 히든 레이어의 수, 입력 레이어, 출력 레이어 및 상기 히든 레이어에 포함된 노드의 수를 포함하는 하이퍼 파라미터(Hyperparameters)를 조절하여 서로 다른 신경망을 학습할 수 있다. 본 발명에서 하이퍼 파라미터는 학습에 의해서 설정되는 파라미터가 아닌, 신경망을 학습하기에 앞서 설정하는 매개 변수를 의미한다. 신경망 학습부(320)가 학습하는 신경망은 노드 및 상기 노드 사이의 연결 강도에 관한 파라미터들의 가중합을 입력으로 하는 활성화 함수를 이용하여 상기 데이터 입출력의 포화 여부를 출력할 수 있다. 신경망 학습부(320)가 이용하는 활성화 함수는 출력 레이어에 연결되는 함수로서, Sigmoid, tanh, ELU, Maxout, ReLU를 포함한다. 바람직하게는, 본 발명에서 신경망은 Rectified Linear Unit(ReLU)활성화 함수를 이용하여 데이터 저장 장치의 데이터 입출력 상태가 포화인지 여부를 출력할 수 있다.
Figure PCTKR2017013846-appb-T000006
상기 표 6은 신경망 학습부(320)가 신경망을 학습하기에 앞서 신경망의 전체적인 구조를 설정하기 위한 하이퍼 파라미터(HyperParameter)를 나열한 것이다. 신경망 학습부(320)는 데이터 입출력 액세스 패턴이 읽기(Read) 또는 쓰기(Write)인 경우 입력 레이어에 6개의 노드를 포함하고, 혼합(Mixed)인 경우 입력 레이어에 9개의 노드를 설정하여 신경망을 학습한다. 신경망 학습부(320)가 학습하는 신경망의 출력 레이어는 두개의 노드를 포함하여 데이터 입출력 상태가 포화인지 여부를 출력하고, 히든 레이어의 수는 1 레이어 또는 2레이어로 설정할 수 있다. 신경망 학습부(320)는 히든 레이어가 1레이어인 경우 1개의 히든 레이어에 5개의 노드를 설정하여 신경망을 학습할 수 있고, 히든 레이어가 2레이어인 경우 총 10개의 노드를 설정하여 25가지 케이스의 경우로 학습할 수 있다. 신경망 학습부(320)는 L1 Regularization을 설정하여 학습된 신경망의 오버피팅을 예방할 수 있고, 성능 평가로서 LogLoss 및 5 fold Cross-validation을 이용하여 신경망 모델의 예측 정확도를 평가 및 검증할 수 있다. 도 5를 참조하여 설명한다.
포화 함수 생성부(322)는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성한다. 본 발명에서 데이터 입출력 포화 검출 장치(10)가 데이터 입출력 상태를 분석하고자 하는 데이터 저장 장치는 SSD로서, RAM 버퍼(420), 호스트 인터페이스 로직(440), SSD 컨트롤러(460), 플래시 메모리 패키지(482, 484)를 포함할 수 있다. SSD 컨트롤러(460)는 프로세서(462), 버퍼 매니저(464) 및 섹터단위 저장 구조로 변환하기 위한 플래쉬 컨트롤러(466)을 포함하고, 웨어 레벨링 기술을 통하여 SSD 내부의 복수의 플래시 메모리에 저장할 데이터를 관리할 수 있다.
포화 함수 생성부(322)는 SSD의 데이터 입출력 상태가 포화인지 여부를 검출하기 위하여 새로운 데이터 입출력 포화 상태를 정의한다. 예를 들어, 도 6을 참조하면, 종래 HDD에 사용되는 이용률을 기반으로 NVMe SSD에 벤치마크 테스트를 실시하는 경우, 관심구간(502) 초입단계에서 이용률(504)은 100%에 도달하여 포화 상태를 나타내지만, 사용 대역폭(504)의 경우 더 높은 데이터 입출력 레벨에서 최대값에 도달함을 관측할 수 있다. 즉, 실제 사용 가능한 사용 대역폭이 더 존재하는 상태에서 데이터 입출력이 포화 상태에 도달하게 되고, 이는 데이터 저장 장치의 잠재 성능을 모두 사용할 수 없는 결과를 초래한다. 따라서, 전술한 바와 같이 SSD의 내부 병렬성(Internal Parallel)으로 인하여 종래 HDD에 사용되는 데이터 입출력 포화 검출 기법을 이용하여 데이터 입출력 상태가 포화인지 여부를 결정할 수 없고, 별도의 데이터 입출력 포화상태의 정의가 필요하다. 포화 함수 생성부(322)가 생성하는 포화 함수는 하기의 수학식 1과 같이 정의될 수 있다.
Figure PCTKR2017013846-appb-M000001
여기에서 Mi는 포화 함수이고, 데이터 입출력 레벨의 증가에 따른 사용 대역폭 변동량을 관측하여 정의되는 무의미도(Meaninglessness)값을 출력한다. 여기에서, i는 정수로서 데이터 입출력의 증가 레벨의 인덱스 넘버, Li는 i번째 데이터 입출력의 레벨 Bi는 사용 대역폭, max는 최대값을 출력하는 함수이다. 데이터 입출력 포화 검출 장치(10)가 사용하는 포화 함수는 데이터 입출력의 증가 비율과 사용 대역폭의 증가 비율 및 1중에서 큰 값의 차이로 무의미도 값을 출력한다.
레이블링부(324)는 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 한다. 예를 들어, 레이블링부(324)는 상기 생성된 포화 함수를 이용하여 워크로드 생성기(Workload Generator)에서 생성된 워크로드를 인가하여 생성된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링(Labeling)할 수 있다. 따라서, 신경망 학습부(320)는 포화 함수를 이용하여 생성된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 라벨링하고, 상기 라벨링된 학습용 데이터를 이용하여 신경망을 학습한다.
업데이트부(326)는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 한다. 예를 들어, 업데이트부(326)는 신경망에 포함된 노드, 상기 노드를 포함하는 레이어 및 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 함으로서 신경망의 데이터 입출력 상태 판단의 정확도를 향상할 수 있다.
검증부(340)는 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증한다. 예를 들어 검증부(340)는 신경망을 학습하는데 사용되지 않은 데이터를 이용하여 학습된 신경망이 출력하는 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 검증할 수 있다. 검증부(340)는 그리드 서치(Grid Search), 매뉴얼 서치(Manual Search) 및 교차 검증 중에서 적어도 하나의 방법으로 신경망이 출력하는 결과를 검증할 수 있다. 검증부(340)는 최종 학습된 신경망의 출력 결과를 검증할 뿐만 아니라, 신경망의 파라미터를 최적화 하기 위해서 그리드 서치(Grid Search), 매뉴얼 서치(Manual Search) 및 교차 검증의 방법을 사용할 수 있다. 그리드 서치는 하이퍼 파라미터 최적화를 수행하는 방법으로서, 본 발명에서 검증부(340)가 신경망을 테스트 하기 위하여 사용하는 교차 검증은 5-fold 교차 검증으로 마련될 수 있고 검증 결과는 하기의 표와 같다.
Figure PCTKR2017013846-appb-T000007
상기 표 7에서는 데이터 입출력 액세스 패턴(Read, Write, Mixed), 히든 레이어의 수 및 히든 레이어의 노드의 종류에 따라 서로 다르게 학습된 신경망의 성능을 LogLoss 및 AUC를 포함하는 통계지표로서 나타낸다. 여기에서 Model은 데이터 입출력 액세스 패턴을 나타내고, Hidden nodes는 히든 레이어의 수와 히든 레이어에 포함된 히든 노드의 종류를 나타낸다. LogLoss는 로그 손실로서, 0과 1사이의 값으로 측정되는 분류 성능으로 예측된 확률이 실제 값과 다른 경우 증가하는 통계 지표이고, 낮을수록 높은 성능을 나타낸다. AUC(Area Under Cover)는 수신자 판단 특성 곡선(Receiver Operation Characteristic Curve, ROC)에서 곡선하면적을 의미하고, AUC 값이 클수록 높은 성능을 나타낸다.
도 2는 도 1의 실시예에서 특징 정보 산출부(100)의 확대 블록도이다.
조합 데이터 생성부(120)는 상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성한다. 조합 데이터 생성부(120)가 생성하는 조합 데이터는 데이터 입출력의 액세스 패턴에 따라 서로 달라질 수 있고, 본 발명의 신경망은 서로 다른 조합 데이터를 기반으로 학습하게 되기 때문에 데이터 입출력의 액세스 패턴에 따라 서로 다른 신경망 모델로 학습될 수 있다. 조합 데이터 생성부가 조합 데이터를 생성하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
도 3은 도 1의 실시예에서 검출부(300)의 확대 블록도이다.
검출부(300)는 신경망 학습부(320) 및 검증부(340)를 포함한다. 예를들어, 검출부(300)는 상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출한다. 검출부(300)가 신경망을 이용하여 저장 장치의 데이터 입출력 상태가 포화인지 여부를 결정하는 방법은 전술한 바와 같으므로 생략한다.
도 4는 도 3의 실시 예에서 신경망 학습부(320)의 확대 블록도이다.
신경망 학습부(320)는 포화 함수 생성부(322), 레이블링부(324) 및 업데이트부(326)를 포함한다. 예를 들어, 신경망 학습부(320)는 상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습한다.
예를 들어, 신경망 학습부(320)는 워크로드 발생기에서 생성된 워크로드를 저장장치에 인가하여 산출되는 특징 정보들을 포함하는 조합 데이터중에서 일부를 학습용 데이터, 나머지 일부를 테스트용 데이터로 설정하고, 상기 설정된 학습용 데이터를 기반으로 신경망을 학습할 수 있다. 신경망 학습부(320)가 신경망을 학습하기에 앞서 하이퍼 파라미터를 설정하고, 신경망에 포함된 히든 레이어 및 히든 레이어에 포함된 노드들을 조절하여 신경망을 학습하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
포화 함수 생성부(322)는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성한다. 포화 함수가 데이터 입출력 레벨의 증가 비와 사용 대역폭의 증가비율을 고려하여 무의미도값을 출력하는 구체적인 방법은 전술한 바와 같다.
레이블링부(324)는 레이블링부(324)는 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 한다. 본 발명에서 레이블링부(324)가 수행하는 레이블링은 학습용 데이터에 학습용 데이터가 나타내는 데이터 입출력의 상태가 포화인지 여부를 식별할 수 있는 모든 방법을 포함한다. 예를 들어, 레이블링부(324)는 학습용 데이터의 적어도 일부에 데이터 입출력 상태가 포화인지 여부를 이진 식별자로서 표시하여 태그할 수 있다.
업데이트부(326)는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 한다. 본 발명에서, 업데이트부(326)가 신경망에 포함된 노드와 각 노드사이의 연결 강도에 관한 파라미터를 업데이트 하는 것은 신경망을 학습하는 과정에 대응되고, 상기 파라미터 업데이트 과정은 파라미터를 지속적으로 업데이트 하는 알고리즘인 역 전파(Back Propagation)으로 마련될 수 있다.
도 5는 일 실시 예에 따라 본 발명이 적용될 수 있는 데이터 저장 장치의 블록도이다.
본 발명에서 데이터 입출력 포화 검출 장치(10)가 데이터 입출력 상태를 분석하고자 하는 데이터 저장 장치는 SSD로서, RAM 버퍼(420), 호스트 인터페이스 로직(440), SSD 컨트롤러(460), 플래시 메모리 패키지(482, 484)를 포함할 수 있다. SSD 컨트롤러(460)는 프로세서(462), 버퍼 매니저(464) 및 섹터단위 저장 구조로 변환하기 위한 플래쉬 컨트롤러(466)을 포함할 수 있다. 전술한 바와 같이, SSD는 복수의 플래시 메모리 패키지(482, 484)를 관리하기 위한 SSD 컨트롤러를 포함하고, 내부 병렬성으로 인하여 종래의 HDD에 적용되는 이용률 기반 데이터 입출력 상태 포화 검출 기법은 적용될 수 없다.
도 6은 내부 병렬성으로 인한 데이터 저장 장치의 이용률과 사용 대역폭의 차이를 나타내는 예시도이다.
종래 이용률 기반 데이터 입출력 상태 포화 검출 기법을 SSD에 적용하면, 사용 대역폭은 아직 여유가 있지만, 이용률(504)이 먼저 100% 도달함을 관측할 수 있다. 이는 SSD의 내부 병렬성에 기인한 것으로서, 종래 이용률 기반 포화 검출 기법은 현재 SSD의 사용 가능한 저장 자원의 성능을 정확하게 측정할 수 없음을 나타내는 근거가 되고, 따라서 SSD에 적합한 새로운 데이터 입출력 포화 검출 기법이 필요함을 알 수 있다.
도 7은 데이터 입출력 상태가 포화인지 여부를 판단하기 위한 포화 함수의 출력과 평균 사용대역폭을 나타내는 예시도이다.
본 발명에서 포화 함수 생성부(322)는 상기 수학식 1을 이용하여 포화 함수를 정의하고, 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 무의미도(Meaninglessness)값을 출력한다. 본 발명의 데이터 입출력 포화 검출 장치(10)는 데이터 입출력 레벨의 증가에 따라 평균 사용 대역폭의 증가가 도7에 도시된 바와 같은 경우, 관심 구간(508)의 초입 단계인 데이터 입출력 레벨이 32인 지점을 데이터 입출력 상태가 포화된 지점으로 검출할 수 있다.
도 8은 데이터 입출력 액세스 패턴에 따른 신경망 모델의 성능을 나타내는 예시도이다.
본 발명의 데이터 입출력 포화 검출 장치(10)는 상기 표 7에 도시된 바와 같이 데이터 액세스 패턴(읽기, 쓰기, 혼합)의 종류, 히든 레이어의 수 및 상기 히든 레이어에 포함된 노드의 종류에 따라 서로 다른 신경망을 학습할 수 있음은 전술한 바와 같다. 본 발명에서 데이터 입출력 포화 검출 장치(10)는 상기 서로 다르게 생성된 신경망을 조합하여 새로운 신경망 모델을 생성할 수 있고, 조합되어 생성된 신경망 모델의 성능은 다음과 같다.
Figure PCTKR2017013846-appb-T000008
상기 표 8에서 Optimal model은 상기 표 7에서 데이터 입출력 액세스 패턴 별로 3개씩 생성된 신경망 모델 중 가장 성능이 뛰어난 신경망이고, Ensembel model은 데이터 입출력 액세스 패턴 별로 생성된 3개의 신경망을 평균하여 생성한 신경망 모델이며, Logistic model은 로지스틱 판별 분석(Logistic Classification)을 사용한 모델로서, 전술한 Optimal model 및 Ensembel model와 대조군이 되는 신경망 모델을 의미한다.
본 발명의 데이터 입출력 포화 검출 장치(10)는 상기 생성된 신경망 모델의 성능을 평가하기 위한 통계 지표로서 정확도(Accuracy), 곡선하면적(Area Under Cover), 민감도(Sensitivity) 및 특이도(Specificity)를 사용할 수 있다. 민감도(Sensitivity)는 데이터 입출력 상태가 포화인 데이터 중 신경망이 데이터 입출력 상태가 포화라고 판단한 사례의 비율을 의미한다. 특이도(Specificity)는 실제 데이터 입출력 상태가 포화가 아닌 데이터 중 신경망이 데이터 입출력 상태가 포화가 아니라고 판단한 판단한 사례의 비율을 의미한다. 상기 특이도(Specificity)를 x좌표에 두고, 민감도(Sensitivity)를 y좌표에 두어서 그래프를 그리면 수신자 판단 특성 곡선(Receiver Operation Characteristic Curve, ROC)을 얻을 수 있다. 수신자 판단 특성 곡선(Receiver Operation Characteristic Curve, ROC)의 그래프상 아래 면적을 나타내는 곡선하면적(Area Under Cover)이 클수록 신경망의 성능이 높음은 전술한 바와 같다.
신경망 학습부(320)가 학습한 신경망 중에서 데이터 입출력 액세스 패턴이 읽기인 경우 Ensembel model(516) 및 Logistic model(518)의 민감도(Sensitivity) 곡선을 보면 Ensembel model(516)의 민감도(Sensitivity)가 0.9743으로 더 크고, 데이터 입출력 액세스 패턴이 쓰기인 경우 Ensembel model(516) 및 Logistic model(518)의 민감도(Sensitivity) 곡선을 보면 Ensembel model(522)의 민감도(Sensitivity)가 0.9828로 더 낮으며, 데이터 입출력 액세스 패턴이 혼합인 경우 Ensembel model(526) 및 Logistic model(528)의 민감도(Sensitivity) 곡선을 보면 Ensembel model(526)의 민감도(Sensitivity)가 0.9096으로 더 큰 것을 관측할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
본 발명의 데이터 입출력 포화 검출 방법은 데이터 입출력 포화 검출 장치(10)에서 시계열적으로 수행되는 하기의 단계들을 포함한다.
S100에서, 특징 정보 산출부(100)는 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 특징 정보 산출부(100)는 조합 데이터 생성부(120)를 포함하고, 상기 입출력 특징 정보가 조합 데이터를 포함하며, 조합 데이터를 조합하는 방법은 전술한 바와 같으므로 생략한다.
S200에서, 전처리부(200)는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리한다. 전처리부(200)는 상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 조합 데이터의 적어도 일부를 제거할 수 있을 뿐만 아니라, 워크로드 생성기에서 발생된 워크로드의 인가에 따라 데이터 저장 장치에서 생성된 입출력 특징 정보의 적어도 일부 역시 제거할 수 있다.
도 10은 도 9의 실시 예에서 검출하는 단계의 확대 흐름도이다.
S320에서, 신경망 학습부(320)는 데이터 입출력의 상태가 포화인지 여부를 정의하는 포화 함수를 별도로 생성하고, 상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링하며, 레이블링된 학습용 데이터를 기반으로 신경망에 포함된 적어도 하나의 노드를 포함하는 레이어 및 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하여 신경망을 학습한다. 신경망 학습부(320)가 신경망을 학습하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
S340에서, 검증부(340)는 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증한다. 검증부(340)가 검증용 데이터를 이용하여 학습된 신경망이 출력한 데이터 저장 장치의 데이터 입출력 상태가 포화인지 여부에 대한 결과를 검증하는 방법은 전술한 바와 같으므로 생략한다.
도 11은 도 10의 실시 예에서 학습하는 단계의 확대 흐름도이다.
S322에서, 포화 함수 생성부(322)는 데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성한다. 포화 함수 생성부(322)에서 생성한 포화 함수의 출력은 무의미도값이고, 상기 포화 함수를 정의하는 방법은 전술한 바와 같으므로 생략한다.
S324에서, 레이블링부(324)는 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 한다. 레이블링부(324)가 상기 학습용 데이터에 포화 함수를 적용하여 상기 학습용 데이터가 나타내는 데이터의 입출력 상태가 포화인지 여부에 따라 레이블링 하는 구체적인 방법은 전술한 바와 같으므로 생략한다.
S326에서, 업데이트부(326)는 상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 한다. 업데이트부(326)가 신경망에 포함된 파라미터들을 업데이트 과정은 신경망을 학습하는 과정에 대응되고, 상기 파라미터의 업데이트 과정은 전술한 바와 같으므로 생략한다.
도 12는 본 발명의 또 다른 실시 예에 따른 데이터 입출력 포화 검출 방법의 흐름도이다.
S902에서, 특징 정보 산출부(100)는 미리 마련된 워크로드 생성기(Workload generator)에서 생성된 워크로드를 SSD에 입력한다. S904에서, 특징 정보 산출부(100)는 워크로드를 인가 받은 저장 장치인 SSD로부터 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출한다. 본 발명에서 입출력 특징 정보는 I/O Statistic(I/O 통계)를 포함한다.
S908에서, 조합 데이터 생성부(120)는 상기 산출된 적어도 하나의 입출력 특징 정보를 조합하여 조합 데이터를 생성한다. 본 발명에서 입출력 특징 정보는 넓은 의미에서 조합 데이터를 포함한다. S910에서 전처리부(200)는 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 조합 데이터의 적어도 일부(Ramp-Up-Section)를 제거한다. 또한, 레이블링부(324)는 포화 함수를 이용하여 상기 생성된 조합 데이터 또는 입출력 특징 정보가 나타내는 데이터의 입출력 상태가 포화인지 여부를 결정하여 레이블링한다.
S912에서, 검출부(300)는 학습용 데이터를 기반으로 신경망을 학습하고, 상기 학습된 신경망을 그리드 서치, 매뉴얼 서치 및 5-fold 교차 검증 중 적어도 하나의 방법으로 검증한다. S914에서, 검출부(300)는 데이터 입출력의 액세스 패턴, 신경망에 포함된 히든 레이어의 수, 입력 레이어, 출력 레이어 및 상기 히든 레이어에 포함된 노드의 수에 따라 서로 다르게 학습된 신경망 중에서 가장 우수한 성능을 나타내는 신경망을 선택할 수 있다. S916에서, 데이터 입출력 포화 검출 장치(10)는 상기 선택된 신경망 모델의 정확도를 테스트용 데이터로 테스트할 수 있다.
상기 설명된 본 발명의 일 실시예의 방법의 전체 또는 일부는, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 기록 매체의 형태(또는 컴퓨터 프로그램 제품)로 구현될 수 있다. 여기에서, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)를 포함할 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다.
또한, 본 발명의 일 실시예에 따르는 방법의 전체 또는 일부는 컴퓨터에 의해 실행 가능한 명령어를 포함하며, 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다.
본 명세서에서의 부(means) 또는 모듈(Module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다. 다시 말해, 부(means) 또는 모듈(Module)은 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
따라서 본 발명의 일 실시예에 따르는 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 특징 정보 산출부; 및
    상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 검출부; 를 포함하는 데이터 입출력 포화 검출 장치.
  2. 제1항에 있어서, 특징 정보 산출부는
    상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 조합 데이터 생성부; 를 더 포함하고,
    상기 입출력 특징 정보는 상기 생성된 조합 데이터를 포함하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  3. 제1항에 있어서, 상기 데이터 입출력 특성은
    상기 데이터 입출력 유닛의 블록 사이즈, 상기 데이터 입출력 유닛의 수, 상기 데이터 입출력의 액세스 패턴 및 상기 데이터 입출력의 혼합비 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  4. 제2항에 있어서,
    상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 전처리부; 를 더 포함하고,
    상기 검출부는 상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  5. 제2항에 있어서, 상기 검출부는
    상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 신경망 학습부; 를 더 포함하고,
    상기 학습된 신경망을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  6. 제5항에 있어서, 상기 검출부는
    상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 검증부; 를 더 포함하고,
    상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  7. 제5항에 있어서, 상기 신경망 학습부는
    데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 포화 함수 생성부; 를 더 포함하고,
    상기 생성된 포화 함수를 이용하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  8. 제7항에 있어서, 상기 신경망 학습부는
    상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 레이블링부; 를 더 포함하고,
    상기 레이블링된 학습용 데이터를 이용하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  9. 제5항에 있어서, 상기 신경망 학습부는
    상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 파라미터 업데이트부; 를 더 포함하고,
    상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  10. 제1항에 있어서, 상기 입출력 특징 정보는
    데이터 입출력 요청에 따른 읽기 횟수, 상기 데이터 입출력 요청에 따른 쓰기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 읽기 횟수, 상기 데이터 입출력 요청에 따라 운영체제 수준에서 병합된 쓰기 횟수, 상기 데이터 입출력 요청에 따른 읽기 사용 대역폭, 상기 데이터 입출력 요청에 따른 쓰기 사용 대역폭, 상기 데이터 입출력 요청이 저장된 큐(Queue)의 평균 길이, 입출력 데이터의 평균 사이즈 및 상기 데이터 입출력에 걸리는 평균 시간 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  11. 제9항에 있어서, 상기 신경망 학습부는
    상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  12. 제11항에 있어서, 상기 신경망은
    상기 신경망에 포함된 노드 및 상기 노드 사이의 연결 강도에 관한 파라미터들의 가중합을 입력으로 하는 활성화 함수를 이용하여 상기 데이터 입출력의 포화 여부를 출력하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  13. 제6항에 있어서, 상기 검증부는
    상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하는 것을 특징으로 하는 데이터 입출력 포화 검출 장치.
  14. 데이터 입출력 특성에 따른 워크로드를 데이터 입출력의 포화 여부를 판단하고자 하는 데이터 저장 장치에 인가하여 상기 저장 장치의 데이터 입출력 상태를 나타내는 적어도 하나의 입출력 특징 정보를 산출하는 단계; 및
    상기 산출된 특징 정보를 입력으로 하고, 상기 데이터 입출력의 포화 여부를 출력으로 하는 신경망(Neural Network)을 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 단계; 를 포함하는 데이터 입출력 포화 검출 방법.
  15. 제14항에 있어서, 상기 특징 정보를 산출하는 단계는
    상기 산출된 적어도 하나의 입출력 특징 정보들을 상기 데이터 입출력 특성에 따라 조합하여 조합 데이터를 생성하는 단계; 를 더 포함하고,
    상기 생성된 조합 데이터를 상기 입출력 특징 정보로서 산출하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  16. 제15항에 있어서,
    상기 데이터 입출력 요청이 상기 데이터 저장 장치와 동기되는 시간에 따라 상기 조합 데이터의 적어도 일부를 제거하여 전처리하는 단계; 를 더 포함하고,
    상기 전처리된 조합 데이터를 이용하여 상기 저장 장치의 데이터 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  17. 제15항에 있어서, 상기 검출하는 단계는
    상기 조합 데이터와 별도로 상기 데이터 입출력 특성을 반영하여 미리 마련된 학습용 데이터 및 상기 신경망을 검증하기 위한 검증용 데이터 중에서 상기 학습용 데이터를 기반으로 상기 신경망을 학습하는 단계; 및
    상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 상기 검증용 데이터로 검증하는 단계; 를 더 포함하고,
    상기 검증된 결과를 이용하여 상기 데이터 저장 장치의 입출력 상태가 포화인지 여부를 검출하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  18. 제17항에 있어서, 상기 학습하는 단계는
    데이터 입출력 레벨 및 상기 데이터 입출력 레벨에 따른 사용 대역폭의 변화 정도를 고려하여 상기 데이터 입출력 상태가 포화인지 여부를 정의하는 포화 함수를 생성하는 단계;
    상기 생성된 포화 함수를 이용하여 상기 미리 마련된 학습용 데이터가 나타내는 데이터 입출력 상태가 포화인지 여부를 결정하여 레이블링 하는 단계; 및
    상기 신경망에 포함된 적어도 하나의 노드를 포함하는 복수개의 레이어, 상기 레이어 내부의 노드 사이의 연결 강도에 관한 파라미터들을 업데이트 하는 단계; 를 더 포함하고,
    상기 업데이트된 파라미터들을 미리 결정하여 상기 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  19. 제17항에 있어서,
    상기 검증하는 단계는 상기 학습된 신경망을 이용하여 검출된 데이터 저장 장치의 입출력 상태가 포화인지 여부에 대한 결과를 그리드 서치, 매뉴얼 서치 및 교차 검증 중에서 적어도 하나의 검증 방법으로 검증하고,
    상기 학습하는 단계는 상기 데이터 입출력의 액세스 패턴, 상기 복수개의 레이어의 수 및 상기 레이어에 포함된 히든 레이어의 수에 따라 서로 다른 신경망을 학습하는 것을 특징으로 하는 데이터 입출력 포화 검출 방법.
  20. 프로세서에 의해 실행되는 것을 통하여 제14항 내지 제19항 중 어느 한 항에 기재된 데이터 입출력 포화 검출 방법을 실현하는 컴퓨터에서 판독 가능한 기록매체에 저장된 프로그램.
PCT/KR2017/013846 2017-11-21 2017-11-29 데이터 입출력 포화 검출 장치 및 방법 WO2019103223A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0155271 2017-11-21
KR1020170155271A KR102057219B1 (ko) 2017-11-21 2017-11-21 데이터 입출력 포화 검출 장치 및 방법

Publications (1)

Publication Number Publication Date
WO2019103223A1 true WO2019103223A1 (ko) 2019-05-31

Family

ID=66630689

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/013846 WO2019103223A1 (ko) 2017-11-21 2017-11-29 데이터 입출력 포화 검출 장치 및 방법

Country Status (2)

Country Link
KR (1) KR102057219B1 (ko)
WO (1) WO2019103223A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112986950A (zh) * 2020-12-25 2021-06-18 南京理工大学 基于深度学习的单脉冲激光雷达回波特征提取方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210032247A (ko) * 2019-09-16 2021-03-24 삼성전자주식회사 디스플레이 장치 및 이의 영상 처리 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083274A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Hardware throughput saturation detection
US20160188207A1 (en) * 2014-12-31 2016-06-30 Samsung Electronics Co., Ltd. Electronic system with learning mechanism and method of operation thereof
KR20160102690A (ko) * 2015-02-23 2016-08-31 삼성전자주식회사 신경망 학습 방법 및 장치, 및 인식 방법 및 장치
US20170206015A1 (en) * 2016-01-14 2017-07-20 Linkedin Corporation Performance-based migration among data storage devices

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101627321B1 (ko) 2009-01-13 2016-06-03 삼성전자주식회사 I/o 리퀘스트 핸들링 방법 및 이를 이용한 솔리드 스테이트 드라이브

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083274A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Hardware throughput saturation detection
US20160188207A1 (en) * 2014-12-31 2016-06-30 Samsung Electronics Co., Ltd. Electronic system with learning mechanism and method of operation thereof
KR20160102690A (ko) * 2015-02-23 2016-08-31 삼성전자주식회사 신경망 학습 방법 및 장치, 및 인식 방법 및 장치
US20170206015A1 (en) * 2016-01-14 2017-07-20 Linkedin Corporation Performance-based migration among data storage devices

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KIM, JAEHYUNG ET AL.: "Machine Learning Based Performance Modeling of Flash SSDs", PROCEEDINGS OF THE 2017 ACM ON CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT (CIKM '17, 6 November 2017 (2017-11-06), Singapore , Singapore, XP055618566 *
KIM, JAEHYUNG ET AL.: "Neural Network for Saturation Prediction of Solid State Drives", 2017 IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN, AND CYBERNETICS (SMC 2017, 5 October 2017 (2017-10-05), pages 2069 - 2074, XP033271253 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112986950A (zh) * 2020-12-25 2021-06-18 南京理工大学 基于深度学习的单脉冲激光雷达回波特征提取方法

Also Published As

Publication number Publication date
KR102057219B1 (ko) 2019-12-18
KR20190057854A (ko) 2019-05-29

Similar Documents

Publication Publication Date Title
WO2019117593A1 (ko) 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법
US8826254B2 (en) Memoizing with read only side effects
WO2013154365A1 (ko) 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치
Diamond et al. Evaluation and optimization of multicore performance bottlenecks in supercomputing applications
JP7405773B2 (ja) マルチコア相互接続のレベル2キャッシュへのアクセスを検証する方法
US11847446B2 (en) Predictive build quality assessment
Bai et al. Efficient data loader for fast sampling-based gnn training on large graphs
WO2019103223A1 (ko) 데이터 입출력 포화 검출 장치 및 방법
US8571847B2 (en) Efficiency of static core turn-off in a system-on-a-chip with variation
US11513944B1 (en) Ranking tests based on code change and coverage
Li et al. XSP: Across-stack profiling and analysis of machine learning models on GPUs
US9542294B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
WO2017018860A1 (ko) 컴퓨팅 장치에서 캐시 플루딩 프로세스를 관리하기 위한 장치 및 방법
Ferreira da Silva et al. Accurately simulating energy consumption of I/O-intensive scientific workflows
Courtaud et al. Improving prediction accuracy of memory interferences for multicore platforms
US8495189B2 (en) Managing the performance of an application carried out using a plurality of pluggable processing components
Roy et al. Lightweight detection of cache conflicts
Lin et al. Hyscale-gnn: A scalable hybrid gnn training system on single-node heterogeneous architecture
Lin et al. Accelerating GNN Training on CPU Multi-FPGA Heterogeneous Platform
CN116167310A (zh) 一种验证多核心处理器缓存一致性的方法及装置
JP4149762B2 (ja) メモリ資源最適化支援方法、プログラム及び装置
CN108021563A (zh) 一种指令间数据依赖的检测方法和装置
WO2021080122A1 (en) Method and apparatus for analyzing protein-ligand interaction using parallel operation
Mendes et al. Performance stability and prediction
Fu et al. BLAD: Adaptive Load Balanced Scheduling and Operator Overlap Pipeline For Accelerating The Dynamic GNN Training

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: 17933166

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17933166

Country of ref document: EP

Kind code of ref document: A1