CN116149804A - Task scheduling method, device and server - Google Patents

Task scheduling method, device and server Download PDF

Info

Publication number
CN116149804A
CN116149804A CN202111394586.0A CN202111394586A CN116149804A CN 116149804 A CN116149804 A CN 116149804A CN 202111394586 A CN202111394586 A CN 202111394586A CN 116149804 A CN116149804 A CN 116149804A
Authority
CN
China
Prior art keywords
task
scheduling
executed
queue
instance
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202111394586.0A
Other languages
Chinese (zh)
Inventor
李华
郑祖程
张乔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111394586.0A priority Critical patent/CN116149804A/en
Publication of CN116149804A publication Critical patent/CN116149804A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

The embodiment of the application provides a task scheduling method, a task scheduling device and a task scheduling server, wherein in the task scheduling method, after a server acquires a group instance, the scheduling priority of the group instance is set according to the scheduling priority of a service instance, and the group instance is added into a primary scheduling queue; if the CPU is idle, the server selects a group instance to be executed from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue; and adding the tasks included in the group instance to be executed into a secondary scheduling queue, selecting the tasks to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed, and then executing the selected tasks, so that the mixed operation of the online service and the offline service can be realized on the premise of not modifying the scheduling attribute of the tasks in the service instance, and further, the tasks can be scheduled by a two-stage scheduling algorithm based on the QoS priority, and the resource utilization rate of the CPU is improved.

Description

Task scheduling method, device and server
Technical Field
The embodiment of the application relates to the technical field of cloud services, in particular to a task scheduling method, a task scheduling device and a task scheduling server.
Background
In the related art, referring to fig. 1, the external report of each data center shows that the utilization rate of the central processing unit (central processing unit, CPU) of the current data center server is about 10% on average, and meanwhile, each data center is configured with a large number of extra "redundant" servers for disaster recovery, burst peak traffic, and the like, and fig. 1 is a schematic diagram of the CPU utilization rate of each data center in the related art.
In order to ensure the service quality (quality of service, qoS) of the online service, each data center deploys a larger backup computing force, and most of the computing force is wasted, as shown in fig. 2, and fig. 2 is a peak-valley distribution diagram of the online service in the prior art. Meanwhile, the popularization and wide application of big data and artificial intelligence (artificial intelligence, AI) has extremely high demand on calculation force, and the offline service of the type is insensitive to time delay, as shown in fig. 3, and fig. 3 is a schematic diagram of the distribution of calculation force peaks and valleys of the offline service in the prior related art.
The online service large-scale backup calculation force has waste when the service load is low, and the offline service insensitive to QoS has mass demand on calculation force. The online service and the offline service are scheduled to the same server, qoS of the online service is guaranteed through scheduling and resource isolation means of each level, and meanwhile, the offline service can fully utilize the idle computing power of the trough of the online service. Such a deployment approach can greatly increase the utilization density of computing resources, which is commonly referred to in the industry as a "hybrid".
The core of the hybrid technology is task "scheduling" and resource "isolation". In the prior art, some internet manufacturers have explored the upper layer scheduling and isolation technology by taking services (pod) as dimensions in a cluster, but on the premise of guaranteeing online QoS, task scheduling and resource isolation are only performed on the cluster level, and higher mixing density cannot be achieved. To further improve the CPU resource utilization, a lower layer of scheduling and resource isolation techniques needs to be provided at the operating system side.
Disclosure of Invention
The embodiment of the application provides a task scheduling method, a task scheduling device and a task scheduling server, and also provides a computer readable storage medium so as to realize task scheduling through a two-stage scheduling algorithm based on QoS priority and improve the resource utilization rate of a CPU.
In a first aspect, an embodiment of the present application provides a task scheduling method, including: the server acquires a group instance; wherein, the group instance is a set of tasks included in the service instance; setting the scheduling priority of the group of examples according to the scheduling priority of the service examples; adding the group of examples into a primary scheduling queue; if the CPU is idle, selecting a group instance to be executed from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue; adding the tasks included in the group instance to be executed into a secondary scheduling queue; selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed; executing the selected task.
In the task scheduling method, after a server acquires a group instance, setting the scheduling priority of the group instance according to the scheduling priority of a service instance, and adding the group instance into a primary scheduling queue; if the CPU is idle, the server selects a group instance to be executed from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue; and adding the tasks included in the group instance to be executed into a secondary scheduling queue, selecting the tasks to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed, and then executing the selected tasks, so that the mixed operation of the online service and the offline service can be realized on the premise of not modifying the scheduling attribute of the tasks in the service instance, and further, the tasks can be scheduled by a two-stage scheduling algorithm based on the QoS priority, and the resource utilization rate of the CPU is improved.
In one possible implementation manner, after adding the group instance to the primary scheduling queue, if the CPU is not idle, selecting the group instance to be executed and the group instance to be preempted from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue; adding the tasks included in the group instance to be executed into a secondary scheduling queue; selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed; selecting the preempted task from the tasks included in the group instance to be preempted according to the scheduling priority of the tasks included in the group instance to be preempted; executing a CPU preemption process to cause a task to be executed to preempt CPU resources of the preempted task; and executing the task to be executed by utilizing the preempted CPU resource.
In one possible implementation manner, after executing the CPU preemption procedure, the preempted task may also be added to the first suppression queue; checking whether a target task which is not executed for more than a preset time length exists in the first hold-down queue; if so, adding the target task into a second pressing queue; and adding the target task in the second pressing queue into a second-level dispatching queue according to the dispatching priority of the target task in the second pressing queue, and dispatching and executing.
In one possible implementation manner, after adding the target task to the second pressing queue, the target task may be further marked; after the target task is scheduled to be executed and before returning to the user mode, if the target task is determined to be the task in the second suppression queue according to the mark, the scheduling is triggered again.
In one possible implementation manner, before selecting the task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the task included in the group instance to be executed, the configuration information of the service instance may also be obtained; and acquiring the scheduling priority of the task included in the service instance from the configuration information.
In a second aspect, an embodiment of the present application provides a task scheduling device, where the task scheduling device is included in a server, and the device has a function of implementing the server behavior in the first aspect and possible implementations of the first aspect. The functions may be realized by hardware, or may be realized by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above. For example, a receiving module or unit, a processing module or unit, a transmitting module or unit, etc.
In a third aspect, an embodiment of the present application provides a server, including: one or more processors; a memory; a plurality of applications; and one or more computer programs, wherein the one or more computer programs are stored in the memory, the one or more computer programs comprising instructions that, when executed by the server, cause the server to perform the steps of: acquiring a group instance; wherein, the group instance is a set of tasks included in the service instance; setting the scheduling priority of the group of examples according to the scheduling priority of the service examples; adding the group of examples into a primary scheduling queue; if the CPU is idle, selecting a group instance to be executed from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue; adding tasks included in the group instance to be executed into a secondary scheduling queue; selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed; executing the selected task.
In one possible implementation, the instructions, when executed by the server, cause the server to perform the step of adding the group instance to the primary schedule queue, further performing the step of: if the CPU is not idle, selecting a group instance to be executed and a group instance to be preempted from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue; adding tasks included in the group instance to be executed into a secondary scheduling queue; selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed; selecting the preempted task from the tasks included in the group instance to be preempted according to the scheduling priority of the tasks included in the group instance to be preempted; executing a CPU preemption process to cause a task to be executed to preempt CPU resources of the preempted task; and executing the task to be executed by utilizing the preempted CPU resource.
In one possible implementation, the instructions, when executed by the server, cause the server to perform the steps of the CPU preemption procedure, further include the steps of: adding the preempted task into a first hold-down queue; checking whether a target task which is not executed for more than a preset time length exists in the first hold-down queue; if so, adding the target task into a second pressing queue; and adding the target task in the second pressing queue into the second-level dispatching queue according to the dispatching priority of the target task in the second pressing queue, and dispatching and executing.
In one possible implementation, the instructions, when executed by the server, cause the server to perform the step of adding the target task to the second hold-down queue, further perform the step of: marking a target task; after the target task is scheduled for execution, before returning to the user state, if the target task is determined to be a task in the second hold-down queue according to the flag, the scheduling is re-triggered.
In one possible implementation, when the instruction is executed by the server, the server is caused to execute the following steps before the step of selecting the task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the task included in the group instance to be executed: acquiring configuration information of a service instance; and acquiring the scheduling priority of the task included in the service instance from the configuration information.
It should be understood that the second and third aspects of the embodiments of the present application are consistent with the technical solutions of the first aspect of the embodiments of the present application, and the beneficial effects obtained by each aspect and the corresponding possible implementation manner are similar, and are not repeated.
In a fourth aspect, embodiments of the present application provide a computer-readable storage medium having a computer program stored therein, which when run on a computer, causes the computer to perform the method provided in the first aspect.
In a fifth aspect, embodiments of the present application provide a computer program for performing the method provided in the first aspect, when the computer program is executed by a computer.
In one possible design, the program in the fifth aspect may be stored in whole or in part on a storage medium packaged with the processor, or in part or in whole on a memory not packaged with the processor.
Drawings
FIG. 1 is a schematic diagram of CPU utilization of various data centers in the prior art;
FIG. 2 is a graph showing the distribution of the peak-valley of the computing power of the online service in the prior art;
FIG. 3 is a graph showing the distribution of the peak-valley of the power calculation of the offline service in the prior art;
FIG. 4 is a schematic diagram of a depth customization of a scheduler according to the prior art;
FIG. 5 is a schematic structural diagram of a server according to an embodiment of the present disclosure;
FIG. 6 is a block diagram of the logical architecture of a server 500 according to one embodiment of the present application;
FIG. 7 is a block diagram of a logic architecture of a server 500 according to another embodiment of the present application;
FIG. 8 is a process flow diagram of a task scheduling method provided by one embodiment of the present application;
FIG. 9 is an algorithm flow chart of a task scheduling method provided in one embodiment of the present application;
FIG. 10 is a process flow diagram of a task scheduling method according to another embodiment of the present application;
FIG. 11 is an algorithm flow chart of a task scheduling method according to another embodiment of the present application;
FIG. 12 is a process flow diagram of a task scheduling method provided in yet another embodiment of the present application;
FIG. 13 is an algorithm flow chart of a task scheduling method according to yet another embodiment of the present application;
FIG. 14 is an algorithm flow chart of a task scheduling method provided in yet another embodiment of the present application;
fig. 15 is a schematic structural diagram of a server according to another embodiment of the present application.
Detailed Description
The terminology used in the description section of the present application is for the purpose of describing particular embodiments of the present application only and is not intended to be limiting of the present application.
The related art provides a mixed part implementation scheme, which is to make depth customization (hack) on a Linux scheduler, wherein the Linux scheduler itself has a good layering mechanism and can comprise a main scheduler, a scheduling algorithm (class) and a scheduling policy (policy) from top to bottom. The optimization of some existing manufacturers at the scheduler level is to do deep hack at each layer of the scheduler, and typically there are two modes of adding a scheduling algorithm and modifying a scheduling strategy. Fig. 4 is a schematic diagram of depth customization of a scheduler provided in the related art. In fig. 4, the dashed box represents a modified scheduling policy, such as: modifying the sched_other policy and/or modifying the sched_idle policy; the dashed box represents an incremental scheduling algorithm, such as: a scheduling class (BT) is added. In fig. 4, RT represents real time (real time).
As shown in fig. 4, the mixing scheme provided by the related art may include several kinds of:
a. a scheduling class is added in the Linux master scheduler, for example, in fig. 4, offline service uses BT scheduling class with low priority, and online service uses CFS scheduling class with relatively high priority. According to the scheme, the priority of the CFS scheduling class is higher than that of the BT scheduling class, so that the problem of priority turning exists under the condition that the on-line service is continuously under high load. Meanwhile, the kernel can automatically modify the scheduling attribute of the service in an uncontrolled public cloud environment, which may cause the service scheduling behavior to change, so that the universality is not high;
b. adding a red black tree with higher priority to the sched_other strategy of the CFS, adding the online task to the red black tree with high priority, and scheduling preferentially. The service scheduling policy is CFS, and the universality is not high. Because CFS has minimum operation time limit, the real-time of the online service preempting the offline service is not high, and the QoS is affected; with the scheme a, the problem of priority turning also exists;
c. depth modifying the CFS sched idle strategy, optimizing preemption latency, etc. However, the shared load calculation and load balancing data with the sched_other exist, and the on-line and off-line load balancing is not completely isolated. The priority flipping problem also exists in the same way as the above-described a-scheme and b-scheme.
The above schemes are all deeply customized on a 'scheduling algorithm' or a 'scheduling strategy' of a Linux scheduler, cannot be fully compatible with the existing ecology of Linux, lack generality in public cloud scenes, and have the problems of priority inversion and multi-level QoS support.
Based on the above problems, the embodiment of the application provides a task scheduling method, which can achieve the following 2 targets on the premise of solving the absolute suppression of offline mixed CPU resources: firstly, ecology is compatible in public cloud scenes, and user service scheduling attributes are not affected; secondly, under the condition that the online service absolutely presses the offline service, the priority reversal problem caused by absolute pressing is guaranteed not to occur.
The task scheduling method provided by the embodiment of the application realizes a two-stage scheduling algorithm based on QoS priority. The secondary scheduling is completely compatible with the original scheduling algorithm of the operating system, and the user service is not perceived. The primary scheduling determines the scheduling sequence according to the scheduling attribute of the QoS priority of the service instance, so that the upper layer scheduler such as K8S is more flexible and concise when implementing the hybrid scheme. The primary scheduling object is a service instance, the secondary scheduling object is a task (task) in the service instance, the priority of the primary scheduling is higher than that of the secondary scheduling, and the scheduling strategies and algorithms of the secondary scheduling are orthogonal and do not affect each other.
Further, the embodiment of the application realizes a mechanism of dynamic compression (bypass), and the instance with high primary scheduling priority under the normal load condition compresses the instance with low priority in kernel mode in real time. Low priority instances are suppressed in extremely high load scenarios where CPU resource operation is not available for a long period of time, possibly triggering a priority reversal. In the scene, the low-priority instance is dynamically pressed to the user state, and the condition of priority reversal can be avoided on the premise of guaranteeing the QoS of the high-priority instance.
The task scheduling method provided by the embodiment of the application can be applied to a server, for example: the server deployed in the cloud, for example, fig. 5 is a schematic structural diagram of a server provided in an embodiment of the present application, and as shown in fig. 5, a server 500 may include a processor 510 and a communication interface 520. Optionally, the server 500 may also include a memory 530. Wherein the processor 510, the communication interface 520 and the memory 530 are in communication with each other via a communication bus 540 for transferring control and/or data signals, the memory 530 is adapted to store a computer program, and the processor 510 is adapted to invoke and run the computer program from the memory 530.
The processor 510 and the memory 530 may be combined into a single processing device, more commonly referred to as separate components, and the processor 510 is configured to execute the program code stored in the memory 530. In particular, the memory 530 may also be integrated into the processor 510 or may be separate from the processor 510.
It should be appreciated that the processor 510 in the server 500 shown in fig. 5 may be a system on a chip SOC, and the processor 510 may include a CPU, and may further include other types of processors, such as: an image processor (graphics processing unit, GPU), etc.
The communication bus 540 may be one or more of several types of bus structures including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, or a local bus using any of a variety of bus architectures.
Fig. 6 is a logic architecture block diagram of a server 500 according to an embodiment of the present application. The logic architecture shown in fig. 6 is a logic architecture of an operating system scheduler 600, where the operating system scheduler 600 may implement the task scheduling method provided in the embodiments of the present application, and the functions of the operating system scheduler 600 may be implemented by the processor 510. Compared with the traditional operating system scheduler, the operating system scheduler 600 is added with a group (group) abstract layer and a primary scheduling layer, wherein the group abstract layer abstracts the traditional abstract which only takes a task as a dimension into two dimensions of a group instance and a task. The "group instance" is provided for the lower level scheduling, and the "task" is provided for the lower level scheduling. The primary scheduling takes a group instance as granularity scheduling, and the secondary scheduling takes a task in the group instance as granularity scheduling. In general, the primary schedule is a kernel schedule layer compatible with the K8S cluster scheduler, and the secondary schedule is still a single task scheduler of the operating system.
Further, the logic architecture after the logic architecture expansion shown in fig. 6 may be as shown in fig. 7, and fig. 7 is a logic architecture block diagram of a server 500 according to another embodiment of the present application. The following describes in detail with reference to fig. 7.
1. An abstract is made of multiple forms of examples of user states, and the examples are divided into two layers from the view of users and systems:
(1.1) from the user's perspective, the running carrier of the service may be various, may run on a virtual machine or container, or may run directly in the form of a process.
(1.2) from the view of the underlying software system, where different services in the virtual machine will eventually appear on the host (host) as threads named Virtual CPU (VCPU), both container and process are collections of threads as running entities. Virtual machines, containers, and processes are all collections that abstract an instance into a set of threads.
2. The system for the kernel to execute task scheduling is a kernel scheduling layer, and the kernel scheduling layer can be divided into three layers from the function:
(2.1), group scheduling attribute adapter. Conventional OS kernel schedulers have scheduling properties for only one dimension of a thread, such as: scheduling policy and/or priority of thread a. The embodiment of the application provides a two-layer scheduler, wherein the first layer scheduling object is a group (group) instance, so that a corresponding scheduling attribute needs to be configured for the group instance.
(2.2) the kernel dual-layer scheduling is the core of the embodiment of the application, and can be divided into four sub-modules:
(2.2.1), a primary scheduling queue, wherein the module takes the group instance as a scheduling entity, performs enqueuing according to the priority of the group instance, and the group instance with high priority operates preferentially.
(2.2.2), a secondary scheduling queue, wherein the module is a task management queue of a native Operating System (OS), enqueues according to the priority of the thread, and the object is the thread, namely a task (task) in the group of examples.
(2.2.3), a queue connector, wherein the module interfaces the primary scheduling queue and the secondary scheduling queue into a native OS scheduler to realize core logic of first-stage scheduling and selecting an instance and then second-stage scheduling and selecting a thread (task), and simultaneously interfaces and multiplexes a scheduling algorithm of the underlying OS native.
(2.2.4), an OS scheduler, which is an OS native scheduler algorithm module, for example: the Linux comprises core scheduling algorithms such as RT and/or CFS, and an OS scheduler provides scheduling algorithms for the primary scheduling queue and the secondary scheduling queue, so that the scheduling behavior of the secondary scheduling queue for scheduling tasks in a group instance is ecological and is not perceived by a user. And meanwhile, a multiplexing scheduling algorithm is provided for the primary scheduling queue.
(2.3), dynamic compaction (throw), which is also one of the cores of the embodiments of the present application, can be divided into three sub-modules:
(2.3.1), a compression strategy/detection, dynamic compression triggering module, wherein the dynamic compression triggering module monitors the operation condition of a compressed instance, and triggers a dynamic compression mechanism after timeout if a task which cannot be operated for a long time exists in a first compression queue;
(2.3.2), a first throttle queue, and the OS scheduler records tasks which can run in the secondary scheduling queue and are preempted in the primary scheduling queue into the first throttle queue.
(2.3.3), a second pressing queue, wherein the task in the first pressing queue is executed after the dynamic pressing mechanism is triggered, and the task is pressed into the second pressing queue before the task returns to the user state.
Based on the logic architecture shown in fig. 7, a process flow chart of the task scheduling method provided in the embodiment of the present application may be shown in fig. 8, and an algorithm flow chart of the task scheduling method may be shown in fig. 9. Fig. 8 is a process flow chart of a task scheduling method according to an embodiment of the present application, and fig. 9 is an algorithm flow chart of the task scheduling method according to an embodiment of the present application. As shown in fig. 8 and 9, the task scheduling method may include:
Step 801, a newly created service instance is loaded. Specifically, after the user creates a new service instance, the user configures some characteristics of the service instance, such as: the priority of the service instance A is 1 (the priority of the primary scheduling queue), and the priority of the service instance B is 2 (the priority of the primary scheduling queue), wherein the priorities (the priority of the secondary scheduling queue) and/or the scheduling strategies of the tasks included in the service instance A and the service instance B are configured by the user independently and are not influenced by the priorities of the service instances. After acquiring the newly created service instance, the server 500 loads the newly created service instance.
Step 802, setting the scheduling attribute of the group instance according to the scheduling attribute of the service instance; and setting the scheduling attribute of the task included in the group instance according to the configuration information of the service instance.
Wherein, the group instance is a set of tasks included in the service instance, and the scheduling attribute includes a scheduling priority and a scheduling policy. The configuration information of the service instance includes a scheduling attribute of a task included in the service instance.
Step 803, adding the group instance to the primary scheduling queue, waiting for scheduling execution.
Specifically, the group instance added in step 802 needs to acquire CPU resource execution, so the group instance is added to the primary scheduling queue, and waits for scheduling execution.
Step 804, if the CPU is idle, performs step 8041, and if the CPU is busy, performs step 8042.
In step 8041, the OS scheduler selects a group instance from the primary scheduling queue to schedule according to the scheduling algorithm used by the OS scheduler, and step 8051 is executed.
In step 8051, the OS scheduler selects one task in the group instance selected in step 8041 according to a scheduling algorithm used by the OS scheduler, and the selected task obtains CPU resources to execute.
In step 8042, the OS scheduler selects a group instance (highest priority) to be executed, and selects a group instance (lowest priority group instance being executed) to be preempted, according to the scheduling algorithm used by the OS scheduler. Then, step 8052 is performed.
In step 8052, the OS scheduler selects, according to a scheduling algorithm used by the OS scheduler, one task a (a task with the highest priority in the group of instances) in the group of instances that needs to be executed in step 8042. While selecting one of the task B in the group instance that needs to be preempted in step 8042 (the task with the lowest priority in the group instance). Executing CPU preemption flow to let task A preempt task B.
At step 806, task B preempted at step 8052 is added to the first hold-down queue.
In step 807, it is checked whether there is a task that is pressed to timeout in the first pressing queue, and if so, the task that is pressed to timeout is added to the second pressing queue.
Step 808, checking if the task is in the second hold-down queue before returning to the user state, and if so, triggering the OS scheduler to reschedule.
In general, the task processing method provided by the embodiment of the application needs to complete the selection of the two-stage scheduling queues, firstly selects the one-stage scheduling queue of the management group instance, and then selects the two-stage scheduling queue of the task in the management group instance, so that the task processing method realizes scheduling according to the priority of the instance under the condition that the scheduling attribute of the task in each instance is not changed, and meets the requirements of the service scene such as offline mixed part. The task processing method further comprises the step of dynamically switching the first compression queue and the second compression queue, so that the situation that priority is overturned between the low-priority service and the high-priority service is avoided.
Under public cloud scene, the task scheduling method provided by the embodiment of the application can realize the mixed deployment of the online service and the offline service under the condition that the client service is not perceived, as shown in fig. 10 and 11. Fig. 10 is a process flow chart of a task scheduling method according to another embodiment of the present application, and fig. 11 is an algorithm flow chart of the task scheduling method according to another embodiment of the present application. As shown in fig. 10 and 11, the task scheduling method may include:
In step 1001, the public cloud cluster management platform schedules service instances with different priorities to be executed on the same server, for example: the online service for performing shopping payment and the offline service for performing big data analysis are scheduled to be performed on the same server. The scheduling attributes of the tasks included by each service instance are not modified in the mixed case.
Step 1002, according to the configuration of the last trunking dispatch platform, a higher priority is configured for the online shopping payment group instance a, and a lower priority is configured for the big data analysis group instance B.
In step 1003, the online shopping payment group instance A and the big data analysis group instance B are added into the primary scheduling queue, and the OS scheduler selects to execute the group instance A first according to the priority of the group instance.
In step 1004, the task included in the online shopping payment group instance a is added to the secondary scheduling queue, and the OS scheduler selects, according to the priority of the task, to run the task with high priority first.
The task scheduling method can realize the mixed operation of the online service and the offline service on the premise of not modifying the scheduling attribute of the task in the service instance.
When online service or high-priority service instance is abnormally loaded for a long time, offline service or low-priority service instance can not be operated for a long time, and if the low-priority service instance occupies key shared resources in the kernel, priority can be turned over. The present embodiment provides a method for solving such a problem, as shown in fig. 12 and 13, fig. 12 is a process flow chart of a task scheduling method provided in yet another embodiment of the present application, and fig. 13 is an algorithm flow chart of a task scheduling method provided in yet another embodiment of the present application. Referring to fig. 12 and 13, the task scheduling method may include:
In step 1201, after the task in the service instance with low priority is preempted, the preempted task is added to the first hold-down queue, where the task in the first hold-down queue is not scheduled to run by the OS scheduler.
Step 1202, checking whether there is a task in the first hold-down queue that has not been executed for more than a predetermined period of time, and if so, adding the task to the second hold-down queue.
Specifically, a timer task periodically polls the first hold-down queue for tasks that have not been executed for more than a predetermined period of time, and if so, the task may hold a shared resource, moving the task to the second hold-down queue. The second hold-down queue has a higher priority and if a task is present in the second hold-down queue, the second dispatch queue will dispatch the task preferentially (equivalent to a high priority group instance).
The predetermined time period may be set by itself according to system performance and/or implementation requirements, and the embodiment does not limit the length of the predetermined time period.
And step 1203, adding the task with higher priority in the second suppression queue into the second-level scheduling queue for scheduling and executing.
In step 1204, the task in the second queue is marked, checked before the task returns to the user state, and if the task in the second queue is a task, the scheduling is triggered again, so as to yield the resources of the CPU. Therefore, the task releases the key public resources of the kernel, the condition of priority turning does not occur, and meanwhile, the CPU resources of the high-priority instance can not be contended again due to the lower priority of the original instance, and the QoS of the high-priority instance is ensured.
In connection with the above embodiments and related drawings, the embodiments of the present application provide a task scheduling method, which may be implemented by the server 500, fig. 14 is an algorithm flowchart of a task scheduling method provided in yet another embodiment of the present application, and as shown in fig. 14, the task scheduling method may include:
step 1401, obtaining a group instance; wherein, the group instance is a set of tasks included in the service instance.
Specifically, after the user creates a new service instance, the user configures some characteristics of the service instance, such as: the priority of the service instance A is 1 (the priority of the primary scheduling queue), and the priority of the service instance B is 2 (the priority of the primary scheduling queue), wherein the priorities (the priority of the secondary scheduling queue) and/or the scheduling strategies of the tasks included in the service instance A and the service instance B are configured by the user independently and are not influenced by the priorities of the service instances. After acquiring the newly created service instance, the server 500 loads the newly created service instance, where the set of tasks included in the service instance is a group instance.
Step 1402, setting the scheduling priority of the group instance according to the scheduling priority of the service instance.
Specifically, the scheduling priority of the service instance is determined according to a scheduling algorithm used by the server 500, and the scheduling priority of the group instance may be the same as the scheduling priority of the service instance. For example, assuming that the server 500 uses a scheduling algorithm in which the priority of the online traffic is higher than the priority of the offline traffic, the priority of the group instance corresponding to the online traffic is correspondingly higher than the priority of the group instance corresponding to the offline traffic.
Step 1403, adding the group instance to the primary schedule queue.
In step 1404, if the CPU is idle, a group instance to be executed is selected from the primary schedule queue according to the schedule priority of the group instance in the primary schedule queue.
In specific implementation, a group instance with the highest scheduling priority can be selected from the primary scheduling queue according to the scheduling priority and used as a group instance to be executed.
In step 1405, the task included in the group instance to be executed is added to the secondary scheduling queue.
In step 1406, a task to be executed is selected from the tasks included in the group instance to be executed according to the scheduling priority of the task included in the group instance to be executed.
In particular, the task with the highest scheduling priority may be selected from the tasks included in the group instance to be executed according to the scheduling priority as the task to be executed.
Step 1407, execute the selected task.
Further, after step 1403, the method may further include:
in step 1408, if the CPU is not idle, a group instance to be executed and a group instance to be preempted are selected from the primary schedule queue according to the schedule priority of the group instance in the primary schedule queue.
The group instance to be executed may be the group instance with the highest priority in the primary scheduling queue, and the group instance to be preempted may be the group instance with the lowest priority in the running group instances.
And step 1409, adding the task included in the group instance to be executed into a secondary scheduling queue.
Step 1410, selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the task included in the group instance to be executed; and selecting the preempted task from the tasks included in the group instance to be preempted according to the scheduling priority of the tasks included in the group instance to be preempted.
Specifically, a task with the highest scheduling priority can be selected from tasks included in a group instance to be executed as a task to be executed; the task with the lowest scheduling priority can be selected from the tasks included in the group instance needing to be preempted as the preempted task.
Further, before step 1410, configuration information of the service instance may be further obtained, and a scheduling priority of a task included in the service instance may be obtained from the configuration information. The configuration information is configured when the user creates the service instance, and the configuration information can include a scheduling policy and a scheduling priority of tasks included in the service instance.
Step 1411, executing a CPU preemption procedure to cause the task to be executed to preempt the CPU resources of the preempted task.
In step 1412, the task to be executed is executed using the preempted CPU resource.
In this embodiment, after step 1411, the preempted task may also be added to the first hold-down queue. Then, checking whether a target task which is not executed for more than a preset time length exists in the first hold-down queue; and if the target task exists, adding the target task into a second pressing queue, and adding the target task in the second pressing queue into a second-level dispatching queue according to the dispatching priority of the target task in the second pressing queue to carry out dispatching execution.
In addition, after the target task is added into the second pressing queue, the target task can be marked; and after the target task is scheduled to be executed and before returning to the user mode, if the target task is determined to be the task in the second suppression queue according to the mark, the scheduling is triggered again.
In the task scheduling method, after the server 500 obtains the group instance, the scheduling priority of the group instance is set according to the scheduling priority of the service instance, and the group instance is added into the primary scheduling queue; if the CPU is idle, the server 500 selects a group instance to be executed from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue; and adding the tasks included in the group instance to be executed into a secondary scheduling queue, selecting the tasks to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed, and then executing the selected tasks, so that the mixed operation of the online service and the offline service can be realized on the premise of not modifying the scheduling attribute of the tasks in the service instance, and further, the tasks can be scheduled by a two-stage scheduling algorithm based on the QoS priority, and the resource utilization rate of the CPU is improved.
It is to be understood that some or all of the steps or operations in the above embodiments are merely examples, and embodiments of the present application may also perform other operations or variations of various operations. Furthermore, the various steps may be performed in a different order presented in the above embodiments, and it is possible that not all of the operations in the above embodiments are performed.
It will be appreciated that the server 500, in order to implement the above-described functionality, includes corresponding hardware and/or software modules that perform the respective functions. The steps of an algorithm for each example described in connection with the embodiments disclosed herein may be embodied in hardware or a combination of hardware and computer software. Whether a function is implemented as hardware or computer software driven hardware depends upon the particular application and design constraints imposed on the solution. Those skilled in the art may implement the described functionality using different approaches for each particular application in conjunction with the embodiments, but such implementation is not to be considered as outside the scope of this application.
In this embodiment, the server may be divided into functional modules according to the above-described method embodiment, for example, each functional module may be divided corresponding to each function, or two or more functions may be integrated into one module. The integrated modules described above may be implemented in hardware. It should be noted that, in this embodiment, the division of the modules is schematic, only one logic function is divided, and another division manner may be implemented in actual implementation.
Fig. 15 is a schematic structural diagram of a server according to another embodiment of the present application, where fig. 15 shows a possible composition schematic diagram of a server 1500 related to the above embodiment in a case where respective functional modules are divided by corresponding respective functions, as shown in fig. 15, the server 1500 may include: a receiving unit 1501, a processing unit 1502, and a transmitting unit 1503;
Wherein, the processing unit 1502 may be configured to support the server 1500 to perform steps 801-808, steps 1001-1004, steps 1201-1204, etc., and/or other processes for the technical solutions described in the embodiments of the present application;
it should be noted that, all relevant contents of each step related to the above method embodiment may be cited to the functional description of the corresponding functional module, which is not described herein.
The server 1500 provided in this embodiment is used for executing the task scheduling method, so the same effects as those of the method can be achieved.
It should be appreciated that server 1500 may correspond to server 500 shown in fig. 5. Wherein the functions of the receiving unit 1501 and the transmitting unit 1503 may be implemented by the communication interface 520 in the server 500 shown in fig. 5; the functions of the processing unit 1502 may be implemented by the processor 510 in the server 500 shown in fig. 5.
In case of employing an integrated unit, the server 1500 may include a processing module, a storage module, and a communication module.
The processing module may be configured to control and manage the actions of the server 1500, for example, may be configured to support the server 1500 to perform the steps performed by the receiving unit 1501, the processing unit 1502, and the transmitting unit 1503. A storage module may be used to support server 1500 in storing program code, data, and the like. A communication module, which may be used to support communication of the server 1500 with other devices.
Wherein the processing module may be a processor or controller that may implement or execute the various exemplary logic blocks, modules and circuits described in connection with this disclosure. A processor may also be a combination that performs computing functions, e.g., including one or more microprocessors, digital signal processing (digital signal processing, DSP) and microprocessor combinations, and the like. The memory module may be a memory. The communication module may specifically be a radio frequency circuit, a bluetooth chip, a Wi-Fi chip, or other devices that interact with other electronic devices.
In one embodiment, when the processing module is a processor and the storage module is a memory, the server 1500 according to this embodiment may be a device having the structure shown in fig. 5.
The present embodiments also provide a computer-readable storage medium having a computer program stored therein, which when run on a computer, causes the computer to perform the methods provided by the embodiments shown in fig. 8 to 14 of the present application.
Embodiments of the present application also provide a computer program product comprising a computer program which, when run on a computer, causes the computer to perform the methods provided by the embodiments of fig. 8-14 of the present application.
In the embodiments of the present application, "at least one" means one or more, and "a plurality" means two or more. "and/or", describes an association relation of association objects, and indicates that there may be three kinds of relations, for example, a and/or B, and may indicate that a alone exists, a and B together, and B alone exists. Wherein A, B may be singular or plural. The character "/" generally indicates that the context-dependent object is an "or" relationship. "at least one of the following" and the like means any combination of these items, including any combination of single or plural items. For example, at least one of a, b and c may represent: a, b, c, a and b, a and c, b and c or a and b and c, wherein a, b and c can be single or multiple.
Those of ordinary skill in the art will appreciate that the various elements and algorithm steps described in the embodiments disclosed herein can be implemented as a combination of electronic hardware, computer software, and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, and are not repeated herein.
In several embodiments provided herein, any of the functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer-readable storage medium. Based on such understanding, the technical solution of the present application may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a read-only memory (ROM), a random access memory (random access memory, RAM), a magnetic disk, or an optical disk, or other various media capable of storing program codes.
The foregoing is merely specific embodiments of the present application, and any person skilled in the art may easily conceive of changes or substitutions within the technical scope of the present application, which should be covered by the protection scope of the present application. The protection scope of the present application shall be subject to the protection scope of the claims.

Claims (12)

1. A method for task scheduling, comprising:
acquiring a group instance; wherein, the group instance is a set of tasks included in the service instance;
setting the scheduling priority of the group of examples according to the scheduling priority of the service examples;
adding the group instance into a primary scheduling queue;
if the CPU is idle, selecting a group instance to be executed from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue;
adding the tasks included in the group instance to be executed into a secondary scheduling queue;
selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed;
executing the selected task.
2. The method of claim 1, wherein after adding the set of instances to a primary schedule queue, further comprising:
If the CPU is not idle, selecting a group instance to be executed and a group instance to be preempted from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue;
adding the tasks included in the group instance to be executed into a secondary scheduling queue;
selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed; selecting the preempted task from the tasks included in the group instance to be preempted according to the scheduling priority of the tasks included in the group instance to be preempted;
executing a CPU preemption process to cause the task to be executed to preempt the CPU resource of the preempted task;
and executing the task to be executed by utilizing the preempted CPU resource.
3. The method of claim 2, wherein after executing the CPU preemption procedure, further comprising:
adding the preempted task into a first hold-down queue;
checking whether a target task which is not executed for more than a preset time length exists in the first hold-down queue;
if so, adding the target task into a second pressing queue;
And adding the target task in the second pressing queue into a second-level dispatching queue according to the dispatching priority of the target task in the second pressing queue, and dispatching and executing.
4. A method according to claim 3, wherein after adding the target task to the second hold-down queue, further comprising:
marking the target task;
and after the target task is scheduled to be executed and before returning to the user mode, if the target task is determined to be the task in the second hold-down queue according to the mark, re-triggering scheduling.
5. The method according to any one of claims 1-4, wherein before selecting the task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the task included in the group instance to be executed, the method further comprises:
acquiring configuration information of the service instance;
and acquiring the scheduling priority of the task included in the service instance from the configuration information.
6. Task scheduling device, characterized by being adapted to perform the method according to any of the claims 1 to 5.
7. A server, comprising:
One or more processors; a memory; a plurality of applications; and one or more computer programs, wherein the one or more computer programs are stored in the memory, the one or more computer programs comprising instructions that, when executed by the server, cause the server to perform the steps of:
acquiring a group instance; wherein, the group instance is a set of tasks included in the service instance;
setting the scheduling priority of the group of examples according to the scheduling priority of the service examples;
adding the group instance into a primary scheduling queue;
if the CPU is idle, selecting a group instance to be executed from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue;
adding the tasks included in the group instance to be executed into a secondary scheduling queue;
selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed;
executing the selected task.
8. The server of claim 7, wherein the instructions, when executed by the server, cause the server to perform the step of adding the set of instances to a primary schedule queue further comprises:
If the CPU is not idle, selecting a group instance to be executed and a group instance to be preempted from the primary scheduling queue according to the scheduling priority of the group instance in the primary scheduling queue;
adding the tasks included in the group instance to be executed into a secondary scheduling queue;
selecting a task to be executed from the tasks included in the group instance to be executed according to the scheduling priority of the tasks included in the group instance to be executed; selecting the preempted task from the tasks included in the group instance to be preempted according to the scheduling priority of the tasks included in the group instance to be preempted;
executing a CPU preemption process to cause the task to be executed to preempt the CPU resource of the preempted task;
and executing the task to be executed by utilizing the preempted CPU resource.
9. The server of claim 8, wherein the instructions, when executed by the server, cause the server to perform the step of CPU preemption procedures, further comprising:
adding the preempted task into a first hold-down queue;
checking whether a target task which is not executed for more than a preset time length exists in the first hold-down queue;
If so, adding the target task into a second pressing queue;
and adding the target task in the second pressing queue into a second-level dispatching queue according to the dispatching priority of the target task in the second pressing queue, and dispatching and executing.
10. The server of claim 9, wherein the instructions, when executed by the server, cause the server to perform the step of joining the target task to a second hold-down queue, further comprising:
marking the target task;
and after the target task is scheduled to be executed and before returning to the user mode, if the target task is determined to be the task in the second hold-down queue according to the mark, re-triggering scheduling.
11. The server according to any of the claims 7-10, wherein the instructions, when executed by the server, cause the server to perform the step of selecting the task to be performed from the tasks comprised by the group instance to be performed according to a scheduling priority of the task comprised by the group instance to be performed, further comprises, before the step of:
acquiring configuration information of the service instance;
And acquiring the scheduling priority of the task included in the service instance from the configuration information.
12. A computer readable storage medium, characterized in that the computer readable storage medium has stored therein a computer program which, when run on a computer, causes the computer to perform the method according to any of claims 1-5.
CN202111394586.0A 2021-11-23 2021-11-23 Task scheduling method, device and server Pending CN116149804A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111394586.0A CN116149804A (en) 2021-11-23 2021-11-23 Task scheduling method, device and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111394586.0A CN116149804A (en) 2021-11-23 2021-11-23 Task scheduling method, device and server

Publications (1)

Publication Number Publication Date
CN116149804A true CN116149804A (en) 2023-05-23

Family

ID=86372373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111394586.0A Pending CN116149804A (en) 2021-11-23 2021-11-23 Task scheduling method, device and server

Country Status (1)

Country Link
CN (1) CN116149804A (en)

Similar Documents

Publication Publication Date Title
CN107087019B (en) Task scheduling method and device based on end cloud cooperative computing architecture
CN110647394B (en) Resource allocation method, device and equipment
CN110515704B (en) Resource scheduling method and device based on Kubernetes system
CN107291547B (en) Task scheduling processing method, device and system
US9092269B2 (en) Offloading virtual machine flows to physical queues
CN109564528B (en) System and method for computing resource allocation in distributed computing
CN114327843A (en) Task scheduling method and device
CN116541134B (en) Method and device for deploying containers in multi-architecture cluster
CN112905342A (en) Resource scheduling method, device, equipment and computer readable storage medium
CN115167996A (en) Scheduling method and device, chip, electronic equipment and storage medium
CN115048206B (en) Resource scheduling method and server
CN114168302A (en) Task scheduling method, device, equipment and storage medium
CN114138434A (en) Big data task scheduling system
CN114625533A (en) Distributed task scheduling method and device, electronic equipment and storage medium
CN103677983A (en) Scheduling method and device of application
US11144359B1 (en) Managing sandbox reuse in an on-demand code execution system
CN116450328A (en) Memory allocation method, memory allocation device, computer equipment and storage medium
CN113301087B (en) Resource scheduling method, device, computing equipment and medium
Wu et al. ABP scheduler: Speeding up service spread in docker swarm
CN117435324A (en) Task scheduling method based on containerization
CN116149804A (en) Task scheduling method, device and server
CN109391663B (en) Access request processing method and device
EP3430510B1 (en) Operating system support for game mode
CN115766582A (en) Flow control method, device and system, medium and computer equipment
CN114911538A (en) Starting method of running system and computing equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication