| As a lightweight alternative to virtual machines,processing power,memory and network throughput of container technology are close to the original performance of the physical machine.As a typical application engine of the container,Docker can efficiently deploy,execute,and manage containers.However,the existing resource management mechanism of Docker is relatively simple.It cannot perform application-aware dynamic resource allocation according to application characteristics and runtime resource usage.Moreover,it cannot maximize the overall system utilization rate under the premise of ensuring application service quality.To cure the above problems,first of all,we run the standard Stress test program in the Docker environment to analyze the actual resource allocation of the container.Then we select the corresponding application for each of the four typical scenarios,CPUintensive/batch,memory-intensive/batch,I/O-intensive/batch,and CPU-intensive/realtime.Moreover,in the Docker environment we compare and analyze the performance of each application for single and multiple concurrent runs.Based on the above experimental analysis,we design a container static scheduling algorithm and a container dynamic scheduling algorithm based on runtime monitoring.The static scheduling algorithm is mainly aimed at running multiple same application containers,and maximizing the number of container instances on a node according to application characteristics and service quality level protocol requirements.Dynamic scheduling algorithm,for heterogeneous concurrent containers,prioritizes the service quality of real-time application container while ensuring the performance of batch-type application containers.At the same time,according to the current status of the node operation,dynamic scheduling algorithm can recommend application container type,to maximizing the resource utilization of the node while reducing resource competition with the existing runtime container.Finally,we implement the corresponding scheduling algorithm and operating mechanism.Via experiment proof,the dynamic scheduling mechanism improves system efficiency without introducing significant operational overhead.When the real-time and batch-type application containers are simultaneously running on the node,by using the scheduling mechanism,the time of meeting the service requirements of real-time application container can improve 87.5%,and the running time of the batch application container can only be extended by 2.9% at the most.In addition,through the scheduling recommendation mechanism,according to the current running instance,the optimal instance type is recommended.When the number of container instances increases by 2.3 times,and the running time of the batch application container can only be extended by 9.3% at the most. |