CN115048206A - Resource scheduling method and server - Google Patents

Resource scheduling method and server Download PDF

Info

Publication number
CN115048206A
CN115048206A CN202210972195.0A CN202210972195A CN115048206A CN 115048206 A CN115048206 A CN 115048206A CN 202210972195 A CN202210972195 A CN 202210972195A CN 115048206 A CN115048206 A CN 115048206A
Authority
CN
China
Prior art keywords
virtual network
scheduling
target
network element
network elements
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.)
Granted
Application number
CN202210972195.0A
Other languages
Chinese (zh)
Other versions
CN115048206B (en
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210972195.0A priority Critical patent/CN115048206B/en
Publication of CN115048206A publication Critical patent/CN115048206A/en
Application granted granted Critical
Publication of CN115048206B publication Critical patent/CN115048206B/en
Priority to US18/171,250 priority patent/US20240054021A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种资源调度方法及服务器,该方法应用于处于用户态的调度组件,包括:在目标调度时间获取多个虚拟网元各自对应的空闲时间点,空闲时间点对应于虚拟网元中的工作线程轮询不到负载任务的时间点;根据目标调度时间与多个虚拟网元各自对应的空闲时间点的时间差,确定多个虚拟网元的负载状态;根据多个虚拟网元的负载状态,确定多个虚拟网元的计算资源调度信息;将计算资源调度信息发送至服务器的内核,以通过处于内核态的调度类函数完成计算资源调度信息对应的资源调度处理。本方案的资源调度方法可以兼容多个实现方式不同的虚拟网元,对多个虚拟网元对应的计算资源进行即时调度,以提高计算资源的利用率。

Figure 202210972195

The present invention provides a resource scheduling method and a server. The method is applied to a scheduling component in a user state, and includes: acquiring idle time points corresponding to multiple virtual network elements at a target scheduling time, and the idle time points correspond to the idle time points in the virtual network elements. The time point at which the worker thread cannot poll the load task; the load status of multiple virtual network elements is determined according to the time difference between the target scheduling time and the respective idle time points of multiple virtual network elements; according to the load of multiple virtual network elements state, determine the computing resource scheduling information of multiple virtual network elements; send the computing resource scheduling information to the kernel of the server, so as to complete the resource scheduling processing corresponding to the computing resource scheduling information through the scheduling function in the kernel state. The resource scheduling method of this solution can be compatible with multiple virtual network elements with different implementations, and can perform real-time scheduling on computing resources corresponding to the multiple virtual network elements, so as to improve the utilization rate of computing resources.

Figure 202210972195

Description

Resource scheduling method and server
Technical Field
The present invention relates to the field of communications technologies, and in particular, to a resource scheduling method and a server.
Background
With the development of Network Function Virtualization (NFV), more and more communication Network elements can implement their corresponding functions through software programs deployed in a server, such as: the baseband functionality may be run in software based on a virtual base station program deployed in the server.
And virtual network elements such as a virtual base station and the like are deployed in the server, so that the hardware cost can be reduced, and flexible deployment is realized. However, in practical applications, taking a virtual base station as an example, the virtual base station is often deployed in isolation from other application programs, and the amount of computing resources such as a CPU determined based on a load peak is used exclusively, so that the virtual base station deployment in a server faces a problem of low utilization rate of CPU resources.
Moreover, in the existing scheme for optimizing the CPU resource utilization of the virtual base station, the program code of the virtual base station generally needs to be modified, which is difficult and has no universality for virtual base station programs of various different manufacturers, because virtual base stations provided by different manufacturers may be deployed in one server, and their implementation manners are different.
Disclosure of Invention
The embodiment of the invention provides a resource scheduling method and a server, which are used for being compatible with a plurality of virtual network elements with different implementation modes and performing real-time scheduling on computing resources corresponding to the virtual network elements so as to improve the utilization rate of the computing resources.
In a first aspect, an embodiment of the present invention provides a resource scheduling method, which is applied to a scheduling component in a user state, where the scheduling component is located in a server including multiple virtual network elements, and the method includes:
acquiring idle time points corresponding to the virtual network elements at a target scheduling time, wherein the idle time points correspond to time points when the work threads in the virtual network elements cannot poll the load tasks;
determining the load states of the plurality of virtual network elements according to the time difference between the target scheduling time and the idle time points corresponding to the plurality of virtual network elements;
determining computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements;
and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
In a second aspect, an embodiment of the present invention provides a resource scheduling apparatus, which is applied to a scheduling component in a user state, where the scheduling component is located in a server including a plurality of virtual network elements, and the apparatus includes:
an obtaining module, configured to obtain, at a target scheduling time, idle time points corresponding to the multiple virtual network elements, where the idle time points correspond to time points at which a work thread in a virtual network element cannot poll a load task;
a processing module, configured to determine load states of the multiple virtual network elements according to time differences between the target scheduling time and idle time points corresponding to the multiple virtual network elements, respectively; determining computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements;
and the sending module is used for sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
In a third aspect, an embodiment of the present invention provides a server, including: the scheduling component is in a user state, the scheduling class function is in a kernel state, and the virtual network elements and the computing resources are multiple;
the scheduling component is to: acquiring idle time points corresponding to the virtual network elements at a target scheduling time, wherein the idle time points correspond to time points when the work threads in the virtual network elements cannot poll the load tasks; determining the load states of the plurality of virtual network elements according to the time difference between the target scheduling time and the idle time points corresponding to the plurality of virtual network elements; determining computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements; and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through the scheduling class function in a kernel state.
In a fourth aspect, an embodiment of the present invention provides a resource scheduling method, which is applied to a scheduling component in a user state, where the scheduling component is disposed in a server including a plurality of virtual base stations, and the plurality of virtual base stations include a plurality of distributed units, and the method includes:
acquiring idle time points corresponding to the distributed units at a target scheduling time, wherein the idle time points correspond to time points when the work threads in the distributed units cannot poll the load tasks;
determining the load states of the distributed units according to the time difference between the target scheduling time and the idle time points corresponding to the distributed units;
determining computing resource scheduling information of the distributed units according to the load states of the distributed units;
and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
In a fifth aspect, an embodiment of the present invention provides a resource scheduling method, which is applied to a scheduling component in a user state, where the scheduling component is located in a server including multiple virtual base stations, and the multiple virtual base stations include multiple distributed units, where the method includes:
according to the corresponding relation between the vehicle-mounted terminal and the virtual base station, storing a driving data processing task triggered by the vehicle-mounted terminal into a task queue corresponding to a distributed unit of the corresponding virtual base station;
acquiring idle time points corresponding to the distributed units at a target scheduling time, wherein the idle time points correspond to time points when the working threads in the distributed units cannot poll the driving data processing task in the corresponding task queue;
determining the load states of the distributed units according to the time difference between the target scheduling time and the idle time points corresponding to the distributed units;
determining computing resource scheduling information of the distributed units according to the load states of the distributed units;
and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state, so that the plurality of distributed units process the received driving data processing task based on the computing resources after the resource scheduling processing.
The resource scheduling scheme provided by the embodiment of the invention can be used for allocating and scheduling the used computing resources for a plurality of virtual network elements deployed in the server. To implement this scheduling scheme, two main functional modules need to be set in the server: a scheduling component in a user state, and a scheduling class function in a kernel state. The scheduling component is equivalent to a decision maker and is used for determining a resource scheduling result, and the scheduling class function is equivalent to an executor and is used for executing corresponding resource allocation processing according to the resource scheduling result.
Specifically, in the embodiment of the present invention, the scheduling component in the user state may periodically schedule the computing resources corresponding to the plurality of virtual network elements, and first, obtain a scheduling index for performing resource scheduling at a target scheduling time, that is, an idle time point corresponding to each of the plurality of virtual network elements. The idle time point corresponds to a time point when the work thread in the virtual network element cannot poll the load task, and the plurality of virtual network elements may include the same type of delay-sensitive virtual network elements with different implementation manners, such as: virtual base stations provided by different vendors. Different virtual network elements may have some commonality, for example, the virtual network elements all work by polling task queues (e.g., one virtual network element has one task queue) by multiple task threads, and similar processing is performed when no load task is polled. Based on these commonalities, in the embodiment of the present invention, a function of recording a corresponding time point as an idle time point when a work thread in any virtual network element fails to poll a load task is implemented in the scheduling component, and based on this function, the scheduling component can sense the load state of each virtual network element without modifying the program code of each virtual network element, which is simple to implement and has a high degree of universality. In addition, the scheduling component can periodically poll the load state of each virtual network element, the scheduling component and the virtual network elements are in a user state as application programs, the interaction speed is high, and the interaction information is idle time points corresponding to the virtual network elements respectively during interaction, and the information amount is small, so that the communication overhead and the calculation overhead of the scheduling component during the scheduling process are small, efficient scheduling processing can be realized, the calculation resources can be scheduled in a smaller time granularity, and the utilization rate of the calculation resources in a server can be improved.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on the drawings without creative efforts.
Fig. 1 is a flowchart of a resource scheduling method according to an embodiment of the present invention;
fig. 2 is a schematic structural diagram of a server according to an embodiment of the present invention;
fig. 3 is a flowchart of another resource scheduling method according to an embodiment of the present invention;
fig. 4 is a flowchart of another resource scheduling method according to an embodiment of the present invention;
fig. 5 is a schematic diagram of a plurality of virtual network elements and a scheduling component according to an embodiment of the present invention;
fig. 6 is a flowchart of another resource scheduling method according to an embodiment of the present invention;
fig. 7 is a schematic structural diagram of a virtual base station according to an embodiment of the present invention;
fig. 8 is a flowchart of another resource scheduling method according to an embodiment of the present invention;
fig. 9 is a schematic view of a scenario of a resource scheduling method according to an embodiment of the present invention;
fig. 10 is a schematic structural diagram of a resource scheduling apparatus according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Some embodiments of the invention are described in detail below with reference to the accompanying drawings. The features of the embodiments and examples described below may be combined with each other without conflict between the embodiments.
In addition, the sequence of steps in each method embodiment described below is only an example and is not strictly limited.
With the development of Network Function Virtualization (NFV for short), more and more communication Network elements are deployed in a server in the form of software programs, which not only can reduce hardware cost, but also can implement flexible deployment, and provide services meeting the requirements of users. Among the virtual network elements deployed in the server, there are some virtual network elements that are sensitive to delay, such as: in order to meet the requirement of the virtual base station on the delay, when deployed, these virtual network elements usually exclusively use a large number of computing resources (such as CPUs) to ensure that they have sufficient computing power to process the delay-sensitive load task in time, but this may result in a low utilization rate of their corresponding computing resources. Therefore, it is necessary to schedule the computing resources corresponding to a plurality of delay-sensitive virtual network elements.
For convenience of understanding, the present embodiment takes the computing resource as a CPU for explanation, and in practical applications, the computing resource may also be a GPU, an FPGA, various computing chips, and other computing resources, which is not limited in this embodiment.
It should be noted that, in this embodiment, the multiple delay-sensitive virtual network elements (hereinafter referred to as multiple virtual network elements) refer to virtual network elements that are operated in a server and have the same or different implementation manners and the same function, for example, multiple virtual base stations provided by different manufacturers, and different implementation manners are mainly embodied as different program codes of the virtual base stations provided by different manufacturers.
In practical applications, due to differences in implementation manners of the multiple virtual network elements, it is difficult to perform unified scheduling on CPUs corresponding to the multiple virtual network elements. Specifically, when resource scheduling is performed, if virtual network elements with different implementation modes are uniformly scheduled based on scheduling indexes of coarse time granularity (such as CPU utilization rate), the real-time load condition of the virtual network elements is difficult to reflect by the indexes due to the large time granularity corresponding to the scheduling indexes, so that the real-time performance of resource scheduling of the virtual network elements is poor, and the improvement of the utilization rate of computing resources is not facilitated. And fine time granularity scheduling indicators, such as: the queue length, the task time, the task duration, and the like, which can be obtained only by modifying the application program of the virtual network element, but the corresponding contents to be modified are different for the virtual network elements with different implementation manners, so that a certain resource scheduling scheme is usually for the virtual network element with a certain implementation manner, is difficult to migrate to the virtual network elements with other implementation manners, and does not have universality (or poor compatibility).
However, it is understood that, although there is a variety of implementations, there are some commonalities in actual operations, such as: each virtual network element corresponds to a plurality of working threads during operation; each working thread circularly polls a load task from a task queue corresponding to the virtual network element; when a worker thread is not polled from the task queue to a load task, the worker thread may call some system call function to free up occupied computing resources, and so on.
In the embodiment of the present invention, based on the commonality of the plurality of virtual network elements in the implementation manner, a new scheme for scheduling CPUs corresponding to the plurality of virtual network elements is determined, and a new scheduling index is introduced into the scheme: and idle time points corresponding to the plurality of virtual network elements respectively. Wherein, from the conceptual meaning, the idle time point corresponds to the time point when the work thread in the virtual network element cannot poll the load task.
For the idle time point, based on the actual operation mode development of the virtual network element: suppose that a virtual network element a of a manufacturer a has two corresponding work threads, i.e., a work thread 1 and a work thread 2, and two load tasks, i.e., a load task 1 and a load task 2, are currently in a task queue a corresponding to the virtual network element a. Assume that at time t1, worker thread 1 has polled to load task 1 and worker thread 2 has polled to load task 2, and then worker thread 1 executes load task 1 using occupied CPU-1 and worker thread 2 executes load task 2 using occupied CPU-2.
Assuming that at time t2, worker thread 1 finishes executing load task 1 and worker thread 2 still executes load task 2, at this time, worker thread 1 will poll task queue a again, and if no new load task is added to task queue a between time t1 and time t2, worker thread 1 will not poll the load task. In this embodiment, a time point when the worker thread does not poll the load task is referred to as an idle time point, and the virtual network element a has an idle time point t 2.
Assuming that at the time t3, the worker thread 2 completes executing the load task 2, similar to the worker thread 1, the worker thread 2 will poll the task queue a again, and if no new load task is added in the task queue a between the time t2 and the time t3, the worker thread 2 will not poll the load task, and the virtual network element a has a new idle time point t 3. In this embodiment, the time points when the polling of each worker thread of a certain virtual network element does not reach the load task are collectively referred to as idle time points corresponding to the virtual network element.
Because a plurality of working threads of the virtual network element can circularly poll the load tasks from the task queue of the virtual network element, the virtual network element can continuously generate idle time points according to the load task condition in the task queue in the working process. The idle time point corresponds to a time point when the task cannot be polled by the working thread, and at the idle time point, the CPU corresponding to the working thread does not execute the task and can be safely scheduled without causing program crash.
The purpose of this idle time point is proposed to: the load condition of the virtual network elements can be measured based on the scheduling index in a finer granularity mode, the difference of code implementation levels of different virtual network elements is shielded, and uniform and safe scheduling of the virtual network elements is realized.
For ease of understanding, a difference exhibited by the virtual network elements of different implementations in the code implementation level is described first: when a certain work thread of the virtual network element cannot poll a load task, the virtual network element releases a CPU occupied by the work thread by executing a certain system call function (such as a sleep function, a sem-wait function and the like) written in a program code. However, the virtual network elements of different implementations differ in the implementation of the code of the execution logic, such as different called system call functions. In addition, the delay-sensitive virtual network element does not allow the task to be interrupted when executing the task, and if the task is interrupted forcibly, the program of the virtual network element may not run. On the premise of not modifying the source code, it is difficult to detect whether a certain working thread in the virtual network element executes a load task at a certain time, so how to find a safe scheduling point on the premise of not modifying the code is a necessary but difficult task.
Based on this, in order to implement the instant and unified scheduling of the CPU for the plurality of virtual network elements, it is necessary to ensure that the selected scheduling index (i.e., the idle time point) can be obtained from the outside, i.e., the generation of the idle time point can be sensed without modifying the program code of each virtual network element. The external part, in the embodiment of the present invention, refers to a scheduling component in a user mode.
In summary, the idle time point can be used as a scheduling index for the scheduling component to schedule the CPUs occupied by the plurality of virtual network elements.
Based on the scheduling index of the idle time point, the embodiment provides a resource scheduling method for a virtual network element, which is compatible with multiple implementation modes. It should be noted that the resource scheduling scheme is also applicable to a situation where multiple virtual network elements are implemented in the same manner, and is also applicable to a virtual network element with a low requirement on delay.
The resource scheduling method of the present solution is described in detail below with reference to specific embodiments.
Fig. 1 is a flowchart of a resource scheduling method according to an embodiment of the present invention, and as shown in fig. 1, the method includes the following steps:
101. and acquiring idle time points corresponding to the plurality of virtual network elements at the target scheduling time, wherein the idle time points correspond to the time points when the work threads in the virtual network elements cannot poll the load tasks.
102. And determining the load states of the plurality of virtual network elements according to the time difference between the target scheduling time and the idle time points corresponding to the plurality of virtual network elements.
103. And determining the computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements.
104. And sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
The resource scheduling method provided by this embodiment is applied to a scheduling component in a user state, where the scheduling component is disposed in a server including a plurality of virtual network elements, and the server may be a cloud server in a central cloud or an edge cloud. In practical applications, the server may be deployed with an application program such as a plurality of virtual network elements, and may also be deployed with a third-party application program, where the third-party application program may include an application program that performs other computing processing on data received and sent by the virtual network elements, for example, if the environment or driving data received by the virtual network elements is sensed by the vehicle-mounted terminal, the third-party application program may include an AI application program that is used for performing feature recognition on the environment data.
Fig. 2 is a schematic structural diagram of a server according to an embodiment of the present invention. As shown in fig. 2, the server includes: a scheduling component, a plurality of delay sensitive virtual network elements (virtual network element 1, virtual network element 2, …, virtual network element K), a scheduling class function and a plurality of computing resources (CPU-1, CPU-2, …, CPU-m).
In practical applications, the operating system of the server acts as the basic software running directly on the hardware to directly control and manage the computing resources in the server. Generally, the architecture of a server operating system can be divided into a user mode and a kernel mode (also referred to as a user space and a kernel), wherein the kernel is used for controlling the computing resources of the server and providing a running environment for an application program; various application programs are operated in the user mode, and the application programs can be operated and realize corresponding functions by relying on computing resources provided by the kernel.
As shown in fig. 2, in this embodiment, the scheduling component and the plurality of virtual network elements are in a user mode as an application program, and the scheduling class function is included in the kernel and is in a kernel mode. The scheduling component is equivalent to a decision maker and is used for determining a resource scheduling result, and the scheduling class function is equivalent to an executor and is used for executing corresponding resource allocation processing according to the resource scheduling result.
When the computing resources corresponding to the plurality of virtual network elements are scheduled through the scheduling component, in summary, first, a scheduling index, that is, an idle time point corresponding to each of the plurality of virtual network elements, is to be obtained; then, based on the idle time point, determining the load states of a plurality of virtual network elements; then, a computing resource scheduling scheme matching the load states of the plurality of virtual network elements is determined and executed by the kernel.
Optionally, the idle time points corresponding to the plurality of virtual network elements may be obtained at the target scheduling time according to a preset scheduling period. The scheduling period may be set according to a situation of a virtual network element actually deployed in the server, and the target scheduling time may be understood as a start time of the current scheduling period. In each scheduling period, the scheduling component may poll to obtain the idle time point currently corresponding to each virtual network element.
Optionally, the scheduling period is determined according to the number of the virtual network elements running in the server or the sensitivity of the virtual network elements to the delay. Such as: if the number of the virtual network elements operated in the server is large, a small scheduling period is set, or if the sensitivity of the virtual network elements to time delay is high, a small scheduling period is set, so that computing resources are scheduled for the virtual network elements in time, and large delay of a load task caused by insufficient resources is avoided.
In this embodiment, the idle time point of a certain virtual network element X obtained at the target scheduling time is actually an idle time point close to the target scheduling time determined from the idle time points corresponding to the virtual network element X, and may also be understood as a latest idle time point generated by the virtual network element X.
And at the target scheduling time, the scheduling component acquires the latest idle time points corresponding to the plurality of virtual network elements in a polling mode, a traversing mode and the like, and further determines the load states of the plurality of virtual network elements according to the time difference between the target scheduling time and the latest idle time points corresponding to the plurality of virtual network elements. If the virtual network element is in a high load state, adding computing resources for the virtual network element; and if the virtual network element is in a low-load state, reducing the occupied computing resources, thereby determining the computing resource scheduling information of the plurality of virtual network elements.
And then, sending the computing resource scheduling information to the server kernel. The kernel of the server comprises a scheduling function, the scheduling function can convert the computing resource scheduling information into kernel executable information, and the kernel schedules the computing resources for a plurality of virtual network elements according to the executable information.
In summary, in the embodiment, a function of recording a corresponding time point as an idle time point when the work thread in any virtual network element does not poll the load task is implemented in the scheduling component, based on the function, the scheduling component can sense the load state of each virtual network element without modifying the program code of each virtual network element, and the implementation is simple and the universality is high. In addition, the dispatching component can periodically poll the load state of each virtual network element, the dispatching component and the virtual network elements are in a user state as application programs, the interaction speed is high, the interaction information is idle time points corresponding to the virtual network elements respectively when interaction is carried out, and the information amount is small, so that the communication overhead and the calculation overhead of the dispatching component in the dispatching process are small, efficient dispatching processing can be realized, the calculation resources can be dispatched on a smaller time granularity, and the utilization rate of the calculation resources in the server can be improved.
Fig. 3 is a flowchart of another resource scheduling method provided in an embodiment of the present invention, which is applied to a scheduling component in a server shown in fig. 2, and as shown in fig. 3, the method includes the following steps:
301. aiming at a target virtual network element in a plurality of virtual network elements, mapping a first system calling function into a second system calling function realized in a scheduling component through a set instruction according to the first system calling function in the target virtual network element, so that the second system calling function is called when a working thread in the target virtual network element cannot poll a load task; the target virtual network element is any one of a plurality of virtual network elements.
302. Recording an idle time point through the second system call function in response to the second system call function being called; and at the target scheduling time, determining an idle time point close to the target scheduling time from the recorded idle time points corresponding to the target virtual network element.
303. And determining the load states of the plurality of virtual network elements according to the target scheduling time and the time difference of the idle time points which are close to the target scheduling time and respectively correspond to the plurality of virtual network elements.
304. And determining the computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements.
305. And sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through the scheduling class function in the kernel state.
In this embodiment, based on steps 301 and 302, a process of acquiring, by a scheduling component, an idle time point close to a target scheduling time corresponding to each of a plurality of virtual network elements at the target scheduling time is described in detail. The specific processes in step 303 to step 305 may refer to the foregoing embodiments, and in this embodiment, detailed description is not repeated.
In practical applications, the process of acquiring the idle time point close to the target scheduling time corresponding to any virtual network element in the plurality of virtual network elements is similar, and in this embodiment, a virtual network element (i.e., a target virtual network element) in the plurality of virtual network elements is taken as an example for description.
In step 301, the first system call function may be understood as a system call function originally set in the target virtual network element, that is, a system call function (internal system call function) that is described in the above-mentioned program code of the virtual network element and is scheduled when the worker thread does not poll the load task, and any worker thread in the target virtual network element calls the first system call function when the worker thread does not poll the load task.
Alternatively, the mapping of the first system call function to the setting instruction of the second system call function (external system call function) implemented in the scheduling component may be implemented based on the environment variable LD _ load, which is not limited to this. Specifically, the link of the first system call function called when the worker thread does not poll the load task is redirected (i.e., mapped) to the second system call function based on the LD _ load, so that the worker thread in the target virtual network element calls the second system call function implemented in the scheduling component based on the link instead of the first system call function originally set in the target virtual network element when the worker thread does not poll the load task.
For convenience of understanding, for example, it is assumed that at time t1, the worker thread i corresponding to the virtual network element X in the plurality of virtual network elements is not polled from the task queue X of the virtual network element X to a load task. Based on the original setting of the virtual network element X, at time t1, the worker thread i may invoke a system call function (i.e., a first system call function) in the virtual network element X. However, since the first system call function is mapped to the second system call function implemented in the scheduling component by the setting instruction in the present embodiment, the worker thread i actually calls the second system call function at time t 1. Since the second calling function is implemented in the scheduling component, the scheduling component may record an idle time point of the virtual network element X (in this example, the idle time point is generated by the worker thread i) through the second calling function.
In addition, for the second system call function, optionally, assuming that the first system call function is a sleep function, that is, named sleep, the function name of the second system call function may still be sleep, except that the function body is different from the first system call function. In the function body of the second system call function, a system call function with a self-defined setting can be written, and the function can suspend the working thread generating the idle time point and release the function of the CPU occupied by the working thread. The suspension of the working thread is equivalent to the suspension of the use of the working thread, and the working thread is not allowed to continue to empty the polling task queue.
It will be appreciated that the scheduling component will record the idle time point of the virtual network element X whenever there is a worker thread in the virtual network element X that cannot poll the load task. During the operation of the virtual network element X, the scheduling component may record a plurality of idle time points of the virtual network element X, such as: and the idle time point t1 corresponding to the case that the work thread i does not poll the load task, the idle time point t3 corresponding to the case that the work thread j does not poll the load task, the idle time point t5 corresponding to the case that the work thread k does not poll the load task and the like.
In this embodiment, if the target scheduling time is t6 and t5 is the nearest idle time point from t6, the idle time point t5 corresponding to the virtual network element X is obtained at the target scheduling time t 6.
In practical application, system call functions in virtual network elements of different implementation manners may have differences, and for a plurality of virtual network elements in a server, a mapping relationship between an internal system call function of each virtual network element and a second system call function implemented in a scheduling component may be determined by setting an instruction, so that the scheduling component is compatible with the plurality of virtual network elements, and idle time points of the plurality of virtual network elements can be obtained.
In addition, because the scheduling component is in a user mode, even if the virtual network element in the server changes, the new virtual network element can be compatible by modifying the setting instruction in the scheduling component, the modification does not affect the kernel of the server, and the method is easy to implement and convenient to debug.
It can be understood that, in the working process of the virtual network element, each thread occupies a corresponding computing resource, for example: the working thread 1 of the virtual network element A occupies the CPU-1, the working thread 2 of the virtual network element A occupies the CPU-2, and the like. As described above, if the computing resources corresponding to a plurality of virtual network elements are to be scheduled, the computing resources need to be in a state that can be scheduled, that is, an unoccupied state.
Optionally, after the scheduling component records the idle time point of the target virtual network element through the second system call function, the method further includes: and suspending the working thread generating the idle time point in the target virtual network element, and releasing the computing resources occupied by the working thread. Thus, the computing resources occupied by the worker threads that generate the idle time point are made to be in a state that can be scheduled.
In this embodiment, the second system call function implemented in the scheduling component can obtain the scheduling index, that is, the idle time point generated when each virtual network element does not poll the load task, without modifying the program code of each virtual network element, and further determine the load states of the plurality of virtual network elements and the scheduling information of the computing resource.
Fig. 4 is a flowchart of another resource scheduling method provided in an embodiment of the present invention, which is applied to a scheduling component in a server shown in fig. 2, and as shown in fig. 4, the method includes the following steps:
401. and acquiring idle time points corresponding to the plurality of virtual network elements at the target scheduling time, wherein the idle time points correspond to the time points when the work threads in the virtual network elements cannot poll the load tasks.
402. Aiming at a target virtual network element in the plurality of virtual network elements, if the time difference between the target scheduling time and the idle time point corresponding to the target virtual network element is less than a set threshold value, determining that the target virtual network element is in a low-load state; if the time difference between the target scheduling time and the idle time point corresponding to the target virtual network element is greater than or equal to a set threshold, determining that the target virtual network element is in a high-load state; the target virtual network element is any one of a plurality of virtual network elements.
403. If the target virtual network element is in a low load state, determining a first computing resource with a reduced set quantity from the computing resources currently released by the target virtual network element, and writing the reduced first computing resource into an idle computing resource of the server; and if the target virtual network element is in a high-load state, determining to increase a set number of second computing resources for the target virtual network element from the idle computing resources of the server and the computing resources occupied by at least one third-party application program.
404. Determining computing resource scheduling information of a plurality of virtual network elements, wherein the computing resource scheduling information describes computing resource increase and decrease information corresponding to the plurality of virtual network elements.
405. And sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
In this embodiment, based on steps 402 to 404, a detailed description is given to a process of determining the computing resource scheduling information of the plurality of virtual network elements after the scheduling component obtains the respective idle time points corresponding to the plurality of virtual network elements at the target scheduling time. The specific processes in step 401 and step 405 may refer to the foregoing embodiments, and in this embodiment, details are not repeated.
It can be understood that, for any virtual network element (referred to as a target virtual network element) in the plurality of virtual network elements, if the difference between the latest idle time point of the target virtual network element and the target scheduling time is smaller, it indicates that the target virtual network element has at least one worker thread that cannot poll the load task near the target scheduling time, the load tasks in the task queue are fewer, and the load of the target virtual network element is smaller. If the difference value between the latest idle time point of the target virtual network element and the target scheduling time is larger, it is indicated that the target virtual network element is near the target scheduling time, a plurality of working threads in the target virtual network element poll to load tasks, the number of load tasks in the task alignment is larger, and the load of the target virtual network element is larger.
In the implementation process, a set threshold can be customized, such as: and 30 microseconds, after the time difference between the target scheduling time and the latest idle time point corresponding to the target virtual network element is determined, the load state of the target virtual network element is determined according to the size relation between the time difference and the set threshold value.
Optionally, when the user self-defines the set threshold, the set threshold may be determined according to the number of the plurality of virtual network elements (i.e., the total number of the virtual network elements) included in the server, or according to the number of the working threads (i.e., the total number of the working threads) corresponding to the plurality of virtual network elements in the server, where the number of the working threads corresponding to the plurality of virtual network elements may be obtained according to the number of the working threads allowed to be started in each virtual network element and the number of the virtual network elements. The scheduling component may be configured to output the number to a user for reference by the user to set the threshold. Such as: if the total number of the virtual network elements is more, or the total number of the working threads is more, setting a smaller set threshold, for example: 10 microseconds, 20 microseconds; if the total number of the virtual network elements is less, or the total number of the working threads is less, a larger set threshold value is set, for example: 40 microseconds. In fact, the total number of the working threads and the total number of the virtual network elements reflect the overall load condition of the virtual network elements on a coarser granularity level, and higher load sets smaller threshold values, so that the computing resources can be guaranteed to be scheduled more frequently to adapt to the time delay sensitive high-load task situation; conversely, the lower load sets a larger threshold, which can ensure reasonable compromise between timely scheduling of computing resources and scheduling cost overhead.
Then, if a certain virtual network element is in a low load state, the computing resources occupied by the virtual network element are correspondingly required to be reduced; if a virtual network element is in a high load state, the corresponding computing resources need to be added to the virtual network element.
It can be understood that the server includes at least one third-party application program besides the plurality of virtual network elements, and the third-party application programs have low sensitivity to time delay, and can interrupt a task and provide occupied computing resources for the virtual network elements to use in the process of executing the task.
Therefore, in practical applications, when the computing resource scheduling information of the multiple virtual network elements is determined, for any virtual network element (referred to as a target virtual network element) in the multiple virtual network elements, specifically, if the target virtual network element is in a low-load state, determining a first computing resource with a reduced set number from the currently released computing resources of the target virtual network element, and writing the reduced first computing resource into an idle computing resource of the server; and if the target virtual network element is in a high-load state, determining to increase a set number of second computing resources for the target virtual network element from the idle computing resources of the server and the computing resources occupied by at least one third-party application program. When the polling of any worker thread j in the target virtual network element does not reach the load task, the idle time point generated by the worker thread j, the hanging of the worker thread j and the release of the computing resource occupied by the worker thread j are recorded through a second system calling function realized in the scheduling component. Therefore, the scheduling component can know the information of the computing resources currently released by the target virtual network element, and further, when the target virtual network element is in a low load state, the first computing resources with the set number reduced can be determined from the computing resources currently released by the target virtual network element.
The idle computing resources of the server include: the computation resources released by the plurality of virtual network elements at the historical scheduling time and not used any more currently (i.e. the computation resources reduced at the low load state, such as the CPU-x reduced at the low load state of the virtual network element 1, the CPU-y reduced at the low load state of the virtual network element 2, etc.), and the computation resources never used by any virtual network element.
For convenience of description, the computation resources that are released by the plurality of virtual network elements in the historical scheduling time and are not used any more at present are referred to as third computation resources that are released by the plurality of virtual network elements in the historical scheduling time.
As the virtual network element in the computation resource released correspondingly in the historical scheduling time usually contains the cache information of the corresponding virtual network element, such as: the virtual network element 1 correspondingly releases the cache information containing the virtual network element 1 in the CPU-x in the historical scheduling time. It can be understood that, when the CPU-x is added to the virtual network element 1 as an idle computing resource, the time overhead caused by the use of the CPU-x by the virtual network element 1 can be reduced because the cache information of the virtual network element 1 exists in the CPU-x; however, when the CPU-x is added to the virtual network element 2 as an idle computing resource, since the cache information of the virtual network element 1 exists in the CPU-x, the virtual network element 2 needs to clear the cache information first and then perform the relevant configuration, and the corresponding time overhead is large.
Therefore, in an optional embodiment, when a set number of second computing resources are added to the target virtual network element, the second computing resources are added in the following order: third computing resources released by the target virtual network element at the historical scheduling time, computing resources never used by any virtual network element, and computing resources occupied by third party applications. Alternatively, the set number is a set value such as 1, 2, or the like.
Specifically, if a third computing resource released by the target virtual network element in the historical scheduling time exists in the idle computing resources of the server, it is determined that the second computing resource added for the target virtual network element includes the third computing resource. If the free computing resources of the server are insufficient to provide the second computing resource, the second computing resource is determined from the computing resources occupied by the at least one third-party application.
For deployment, if the number of the third computing resources in the idle computing resources of the server is greater than or equal to the set number, the set number of computing resources is determined from the third computing resources as the second computing resources, and the second computing resources are added to the target virtual network element. And if the number of the third computing resources in the idle computing resources of the server is less than the set number, adding the third computing resources and i computing resources which are not used by any virtual network element to the target virtual network element, wherein the sum of the number of the third computing resources and i is equal to the set number. If the number of the idle computing resources of the server (including the third computing resources and the computing resources not used by any virtual network element) is less than the set number, that is, is not enough to provide the second computing resources, the computing resources occupied by the idle computing resources of the server and j third-party applications are added to the target virtual network element, wherein the sum of the idle computing resources of the server and j is equal to the set number.
It is understood that the server includes a large amount of computing resources, and the number of the virtual network elements included in the server and the number of the working threads in each virtual network element are limited. Therefore, in practical applications, generally, for a certain virtual network element Y, the third computing resource released by the virtual network element Y at the historical scheduling time and the computing resource never used by any virtual network element in the idle computing resources of the server can provide the set amount of second computing resource for the virtual network element Y in the high load state, and it is not necessary to call the computing resource occupied by the third-party application program or call the computing resource released by other virtual network elements except the virtual network element Y at the historical scheduling time.
The following describes a process of reducing or increasing computing resources by using the virtual network element Z as an example.
It is assumed that the available computing resource information corresponding to Z virtual network elements maintained in the scheduling component before the target scheduling time T is as shown in table 1.
Table 1 available computing resource information corresponding to Z virtual network elements
Figure DEST_PATH_IMAGE001
As shown in table 1, the virtual network element Z occupies 3 CPUs, which are CPU-a, CPU-b, and CPU-c, respectively. Suppose that CPU-a is occupied by a working thread 1 of a virtual network element Z, CPU-b is occupied by a working thread 2 of the virtual network element Z, and CPU-c is occupied by a working thread 3 of the virtual network element Z.
Assuming that the set threshold for judging the load state of the virtual network element is 30 microseconds, the set number of reducing the first computing resource or increasing the second computing resource for the virtual network element is 1 (in practical applications, the set number of reducing or increasing the computing resource may be different), and at the target scheduling time T, obtaining an idle time point T1 corresponding to the virtual network element Z, where the idle time point T1 is generated when the working thread 3 of the virtual network element Z does not poll the load task.
First, a process of reducing the first computing resource by the set amount by the virtual network element Z will be described.
If the time difference between the target scheduling time T and the idle time point T1 is less than 30 microseconds, it indicates that the virtual network element Z is in a low-load state, 1 CPU needs to be reduced from the currently released CPUs of the virtual network element Z, and the reduced 1 CPU needs to be written into the idle computing resource of the server.
In this embodiment, the idle time point of the virtual network element Z obtained at the target scheduling time T is the latest idle time point corresponding to the virtual network element Z, and actually, in a certain time period, there may be more than one working thread that has not been polled to a load task, and the CPU is released. Such as: the working thread 2 of the virtual network element Z does not poll to the load task at the time T0, an idle time point T0 is generated, and the CPU-b is released, but the idle time point T0 is earlier than the idle time point T1, and the idle time point acquired by the scheduling component at the target scheduling time T is the idle time point T1, but actually, the CPU-b and the CPU-c are both released.
Therefore, based on the above assumptions, if the CPU currently released by the virtual network element Z is only CPU-c, the scheduling component reduces CPU-c and writes CPU-c into the idle computing resources of the server. If 2 CPUs currently released by the virtual network element Z are respectively CPU-b and CPU-c, the scheduling component reduces one CPU from CPU-b and CPU-c, for example: and reducing the CPU-c and writing the CPU-c into the idle computing resources of the server. At the next target scheduling time T1, if the time difference between the idle time points of the virtual network element Z acquired at the target scheduling time T1 and T1 is still less than 30 microseconds, one CPU, i.e., CPU-b, is subtracted, and the CPU-b is written into the idle computing resources of the server.
And in a target scheduling time Tm after the target scheduling time T, if the time difference between the target scheduling time Tm and the idle time point of the virtual network element Z obtained at the Tm moment is less than 30 microseconds, but the virtual network element Z does not have a released CPU currently, the operation of reducing the CPU of the virtual network element Z is not executed any more in the target scheduling time Tm.
It can be understood that, if a new idle time point is not generated by the virtual network element Z between the target scheduling time T and the target scheduling time Tn, the obtained idle time points of the virtual network element Z at the target scheduling time T, the target scheduling times T1, …, and the target scheduling time Tn are all idle time points T1. It can be understood that, as the target scheduling time changes, the difference between the target scheduling time and the idle time point t1 gradually increases, and when the difference between the target scheduling time and the idle time point is greater than 30 microseconds, it indicates that the virtual network element Z is in a high load state, and a set amount of second computing resources needs to be increased.
The following describes a process of adding a set number of second computing resources to the virtual network element Z.
If the time difference between the target scheduling time T and the idle time point T1 is greater than or equal to 30 microseconds, it indicates that the virtual network element Z is in a high-load state, and it is determined that 1 CPU needs to be added to the virtual network element Z from CPUs occupied by idle computing resources of the server and at least one third-party application program.
Suppose that CPU-1 is a computing resource released by the virtual network element 1 at the target scheduling time T, CPU-10 is a computing resource released by the virtual network element 2 at the historical scheduling time, CPU-d is a computing resource released by the virtual network element Z at the historical scheduling time, CPU-0 is a computing resource never used by any virtual network element, and CPU' is a computing resource occupied by a third party application.
Based on the assumption that the set number is 1, if the idle resources of the server include: CPU-1, CPU-10, CPU-d, CPU-0, then add CPU-d to virtual network element Z. If the idle resources of the server comprise: CPU-1, CPU-10 and CPU-0, then adding CPU-0 to virtual network element Z. If the idle resources of the server comprise: and the CPU-1 and the CPU-10 occupy the CPU 'by the third party application program, and the CPU' is added to the virtual network element Z.
In practical applications, optionally, the set number of the second computing resources added by the virtual network element may be set based on a difference degree between a time difference between the target scheduling time and the idle time point of the virtual network element and the set threshold. Such as: if the time difference between the target scheduling time T and the idle time point T1 of the virtual network element Z is much greater than 30 microseconds, for example, 3 times of 30 microseconds, the set number may be set to 3, that is, 3 CPUs are added to the virtual network element Z at a time. If the idle resources of the server excessively comprise: and the CPU-1, the CPU-10, the CPU-d and the CPU-0 are added to the virtual network element Z if the CPU occupied by the third party application program is the CPU'.
It should be noted that, because the number of the working threads included in the virtual network element is actually limited, and each working thread occupies one CPU, when a set number of CPUs are added to the virtual network element, the CPU is not added to a certain virtual network element without limitation because the difference between the target scheduling time and the idle time is greater than the set threshold. When the number of the CPUs occupied by the virtual network elements is matched with the number of the working threads contained in the virtual network elements, even if the difference value between the target scheduling time and the idle time point is larger than the set threshold value, the CPUs are not added to the target scheduling time and the idle time point.
And then, determining the computing resource scheduling information of the virtual network elements based on the computing resource increase and decrease information corresponding to the virtual network elements.
In an optional embodiment, the scheduling component in the foregoing embodiment is further configured to schedule a resource for at least one third-party application included in the server.
Optionally, after the computing resource scheduling information of the plurality of virtual network elements is determined, if an idle computing resource exists in the server, determining a computing resource newly added for at least one third-party application program from the idle computing resource of the server.
Specifically, the newly added computing resource for the at least one third-party application program is determined in the idle computing resources of the server according to the load of the at least one third-party application program.
Optionally, if the number of tasks waiting for processing and/or the amount of data waiting for processing, which correspond to the third-party application program, are greater than or equal to the set load threshold, it is determined that a new computing resource is added for at least one third-party application program in the idle computing resources of the server.
Optionally, determining a target number of computing resources newly added for at least one third-party application program from the idle computing resources of the server according to the number of tasks waiting for processing corresponding to the third-party application program and/or the degree that the amount of data waiting for processing exceeds a set load threshold; a target amount of computing resources determined from the idle computing resources of the server is added to the corresponding third party application.
And then, the calculation resource increase and decrease information of the virtual network elements and the calculation resource increase information of the at least one third-party application program are jointly used as calculation resource scheduling information and sent to a kernel of the server, so that resource scheduling processing corresponding to the calculation resource scheduling information is completed through a scheduling class function in a kernel state.
In this embodiment, at the current scheduling time, the idle computing resources in the server can be scheduled to be used by the third-party application program, where the idle computing resources in the server include computing resources reduced (i.e., released) by the virtual network element in a low load state. That is to say, the resource scheduling method provided in this embodiment breaks through the limitation that the original virtual network element needs to exclusively use the computing resource, and the computing resource corresponding to the virtual network element can be shared with the third-party application program. The computing resource sharing between the virtual network element and the third-party application program can improve the utilization rate of the computing resource in the server to a greater extent.
In another optional embodiment, another resource scheduling method is further provided, where the method is applied to a scheduling component in a user state, where the scheduling component is located in a server including a plurality of virtual network elements, and the scheduling component includes: and the detection programs respectively corresponding to the virtual network elements and the scheduling programs shared by the virtual network elements.
Fig. 5 is a schematic diagram of a plurality of virtual network elements and a scheduling component according to an embodiment of the present invention. As shown in fig. 5, each virtual network element has a detection program corresponding thereto, such as: the virtual network element 1 corresponds to the detection program 1, the virtual network element 2 corresponds to the detection programs 2 and …, the virtual network element k corresponds to the detection program k, and the k detection programs share one scheduling program.
And the k detection programs are all provided with second system call functions. The second system call function is configured to record a time point when the polling of the worker thread in the virtual network element does not reach the load task, that is, an idle time point, and a specific implementation process of the second system call function may refer to the foregoing embodiment, which is not described herein again. It should be noted that the second system call functions included in the k detection programs are not necessarily the same, because the first system call functions implemented in the corresponding different virtual network elements are different, the second system call functions that are redirection results of the different first system call functions are also different.
The scheduling program is used for determining a scheduling scheme of computing resources (CPU-1, CPU-2, …, CPU-m) corresponding to the virtual network elements based on the idle time points of the virtual network elements recorded by the k detection programs.
Fig. 6 is a flowchart of another resource scheduling method according to an embodiment of the present invention, which is applied to the scheduling component shown in fig. 6, and as shown in fig. 6, the method includes the following steps:
601. and in response to the second system calling function being called, the target detection program records the idle time point of the target virtual network element through the second system calling function, sends the idle time point to the scheduling program, suspends the working thread generating the idle time point in the target virtual network element, and releases the computing resources occupied by the working thread.
The target virtual network element is any one of a plurality of virtual network elements, and the target detection program is a detection program corresponding to the target virtual network element.
602. And at the target scheduling time, the scheduling program determines an idle time point close to the target scheduling time from the idle time points corresponding to the received target virtual network elements.
603. And the scheduling program determines the load states of the virtual network elements according to the target scheduling time and the time difference of the idle time points close to the target scheduling time, which are respectively corresponding to the virtual network elements.
604. And the scheduling program determines the computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements.
605. And the scheduling program sends the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through the scheduling class function in the kernel state.
For ease of understanding, fig. 5 and 6 are combined, by way of example.
Assuming that at the time t1, the worker thread 1 in the virtual network element 1 does not poll to the load task and invokes the second system call function in the detection program 1, in response to the second system call function being invoked, the detection program 1 records the idle time point t1 of the virtual network element 1 through the second system call function implemented therein and sends the idle time point t1 to the scheduler.
Thereafter, assuming that at time t2, the worker thread a in the virtual network element 1 does not poll to the load task either, and the second system call function in the detection program 1 is called, in response to the second system call function being called, the detection program 1 records the idle time point t2 of the virtual network element 1 through the second system call function implemented therein, and sends the idle time point t2 to the scheduler.
Assuming that the target scheduling time is T, and T2 is closer to the target scheduling time T before the target scheduling time T by T1 and T2, at the target scheduling time T, the scheduler determines an idle time point T2 close to the target scheduling time T from the idle time points (the idle time point T1 and the idle time point T2) corresponding to the received virtual network element 1.
Similarly to the above process, the detection program 2 records the idle time points of the virtual network element 2 and sends them to the scheduler, and the scheduler determines, at the target scheduling time T, an idle time point close to the target scheduling time T from the received idle time points corresponding to the virtual network element 2. And the detection program k records the idle time points of the virtual network element k and sends the idle time points to the scheduling program, and the scheduling program determines the idle time points close to the target scheduling time T from the received idle time points corresponding to the virtual network element k at the target scheduling time T.
Optionally, in step 601, after recording the idle time point of the target virtual network element, the target detection program stores the idle time point of the target virtual network element. Then, at the target scheduling time, responding to an idle time point acquisition request sent by a scheduling component, and sending at least one idle time point corresponding to the stored target virtual network element to a scheduling program, so that the scheduling program determines an idle time point close to the target scheduling time from the received idle time points corresponding to the target virtual network element; or, sending an idle time point close to the target scheduling time in at least one idle time point corresponding to the stored target virtual network element to the scheduler.
And then, the scheduling program determines a resource scheduling scheme based on the target scheduling time and the determined idle time point close to the target scheduling time corresponding to each of the k virtual network elements. The specific implementation process of steps 603 to 605 in the embodiment shown in fig. 6 can refer to the foregoing embodiment, and is not repeated in this embodiment.
It should be noted that, in the specific implementation process, step 604 involves determining, by the scheduler, to reduce the set number of the first computing resources from the computing resources currently released by the target virtual network element when the target virtual network element is in a low load state.
In this embodiment, the second system call function is implemented in the detection program, and the detection program suspends the working thread that generates the idle time point in the virtual network element and releases the computing resource occupied by the working thread, so that the detection program can know the computing resource information currently released by the target virtual network element, but the scheduler does not know the computing resource information currently released by the target virtual network element. Therefore, before determining to reduce the first computing resource by the set amount from the computing resources currently released by the target virtual network element, the scheduler needs to obtain the computing resource information currently released by the target virtual network element. It can be understood that, after recording that a certain worker thread is not polled to the idle time point generated by the load task, the monitoring program suspends the worker thread and releases the execution of the computing resource occupied by the worker thread, which is implemented by means of the kernel, so that, in fact, the kernel knows the working state of each computing resource, i.e. whether the computing resource is occupied by the worker thread of the virtual network element. Optionally, the scheduler may obtain information on the computational resources currently released by the target virtual network element by interacting with the kernel, and further determine the first computational resources with the reduced set number from the computational resources currently released by the target virtual network element.
The resource scheduling method provided by the embodiment of the present invention is described below by taking a virtual network element as a distributed unit in a virtual base station as an example.
Fig. 7 is a schematic structural diagram of a virtual base station according to an embodiment of the present invention. As shown in fig. 7, the virtual base station includes a Baseband processing Unit (BBU), and the BBU may be divided into a Centralized Unit (CU) and at least one Distributed Unit (DU). The CU and DU contain multiple worker threads, respectively, for performing different load tasks. The load task correspondingly executed by the CU is a load task with a low real-time requirement, for example: transmitting entertainment audio and video data and the like; the load task executed by the DU is a load task with high real-time requirement, for example: transmitting vehicle navigation data, etc. Since the CU does not have high requirements for real-time transmission, the CU can be considered as a special third party application.
Fig. 8 is a flowchart of another resource scheduling method according to an embodiment of the present invention, which is applied to a scheduling component in a user state, where the scheduling component is disposed in a server including a plurality of virtual base stations, where the plurality of virtual base stations include a plurality of distributed units. As shown in fig. 8, the method includes the steps of:
801. and acquiring idle time points corresponding to the distributed units at the target scheduling time, wherein the idle time points correspond to the time points when the work threads in the distributed units cannot poll the load tasks.
802. And determining the load states of the plurality of distributed units according to the time difference between the target scheduling time and the idle time points corresponding to the plurality of distributed units.
803. And determining the computing resource scheduling information of the distributed units according to the load states of the distributed units.
804. And sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
The distributed units in steps 801 to 804 are delay-sensitive virtual network elements, and the specific implementation process thereof may refer to the foregoing embodiments, which are not described in detail in this embodiment.
The resource scheduling method provided by the embodiment of the invention can be compatible with a plurality of virtual base stations with different implementation modes, can immediately schedule the computing resources for the distributed units sensitive to the time delay in the virtual base stations, and improves the utilization rate of the computing resources in the server.
Optionally, the resource scheduling method in this embodiment may also be used to perform resource scheduling for the CUs in the virtual base station.
Optionally, after the computing resource scheduling information of the plurality of DUs is determined, if there is an idle computing resource in the server, determining a computing resource newly added for the CU from the idle computing resource of the server.
Specifically, according to the load of the CUs, the computing resources newly added for the CUs are determined in the idle computing resources of the server.
Optionally, if the number of tasks waiting for processing and/or the amount of data waiting for processing corresponding to the CU is greater than or equal to the set load threshold, determining that a new computing resource is added to the CU from the idle computing resources of the server.
Optionally, determining a target number of computing resources newly added for the CU from the idle computing resources of the server according to the number of tasks waiting for processing corresponding to the CU and/or the degree that the amount of data waiting for processing exceeds a set load threshold; a target number of computing resources determined from the free computing resources of the server is added to the corresponding CU.
And then, sending the calculation resource increase and decrease information of the DUs and the calculation resource increase information of the CUs together as calculation resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the calculation resource scheduling information through a scheduling class function in a kernel state.
For convenience of understanding, a resource scheduling method according to the embodiment of fig. 8 is exemplarily described by taking a scenario in which a vehicle-mounted terminal performs travel data transmission with a virtual base station as an example.
Fig. 9 is a scene schematic diagram of a resource scheduling method according to an embodiment of the present invention. In the scenario of the internet of vehicles, the vehicle-mounted terminal generally needs the virtual base station to perform some tasks of transmitting vehicle driving data, such as: and forwarding the vehicle driving data to an application server corresponding to the vehicle-mounted terminal. Wherein the vehicle travel data includes: vehicle travel speed, vehicle travel direction, etc.
After the server receives the driving data processing task q sent by the vehicle-mounted terminal, firstly, the virtual base station corresponding to the driving data processing task q is determined according to the position of the vehicle-mounted terminal, and the driving data processing task q triggered by the vehicle-mounted terminal is stored in a task queue corresponding to a distributed unit of the corresponding virtual base station. Different virtual base stations are configured to cover different geographical areas.
With reference to fig. 7, it is assumed that the server includes K virtual base stations, and each virtual base station includes M distributed units (in practical applications, the number of distributed units in different virtual base stations may be different).
And then, acquiring idle time points corresponding to the (K M) distributed units at the target scheduling time T, and determining the load states of the (K M) distributed units according to the time difference between the target scheduling time T and the idle time points corresponding to the (K M) distributed units. Then, according to the load states of the (K × M) distributed units, the computing resource scheduling information of the (K × M) distributed units is determined, and the computing resource scheduling information is sent to the kernel of the server of the virtual base station including K, and the resource scheduling processing corresponding to the computing resource scheduling information is completed through the scheduling class function in the kernel state.
And finally, processing the received driving data processing task q by the (K M) distributed units based on the computing resources after the resource scheduling processing.
Specifically, it is assumed that the driving data processing task q is stored in a task queue corresponding to the distributed unit 1 of the virtual base station 1, and after the resource scheduling processing, in the distributed unit 1 of the virtual network element 1, the worker thread 1 is allocated to the CPU-1, the worker thread 2 is allocated to the CPU-2, …, and the worker thread n is allocated to the CPU-n. When n worker threads in the distributed unit 1 poll the job task from the task queue of the distributed unit 1, assuming that the worker thread 2 polls the travel data processing task q, the worker thread 2 processes the travel data processing task q by using the CPU-2, for example: and forwarding the driving data in the driving data processing task q to an application server to finish the transmission of the driving data.
Fig. 10 is a schematic structural diagram of a resource scheduling apparatus according to an embodiment of the present invention, and as shown in fig. 10, the apparatus is disposed in a scheduling component in a user state, and the scheduling component is disposed in a server including a plurality of virtual network elements. The device comprises: an acquisition module 11, a processing module 12 and a sending module 13.
An obtaining module 11, configured to obtain, at a target scheduling time, idle time points corresponding to the multiple virtual network elements, where the idle time points correspond to time points at which the work threads in the virtual network elements cannot poll the load task.
A processing module 12, configured to determine load states of the multiple virtual network elements according to time differences between the target scheduling time and idle time points corresponding to the multiple virtual network elements respectively; and determining the computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements.
A sending module 13, configured to send the computing resource scheduling information to a kernel of the server, so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
Optionally, the obtaining module 11 is specifically configured to, for a target virtual network element in the multiple virtual network elements, map, according to a first system call function in the target virtual network element, the first system call function to a second system call function implemented in the scheduling component by using a setting instruction, so that the second system call function is called when the work thread in the target virtual network element does not poll the load task; wherein the target virtual network element is any one of the plurality of virtual network elements; recording the idle time point through the second system call function in response to the second system call function being called; and determining an idle time point close to the target scheduling time from the recorded idle time points corresponding to the target virtual network element at the target scheduling time.
Optionally, the obtaining module 11 is further specifically configured to suspend the working thread that generates the idle time point in the target virtual network element, and release the computing resource occupied by the working thread.
Optionally, the scheduling component includes a detection program corresponding to each of the plurality of virtual network elements and a scheduler shared by the plurality of virtual network elements; wherein the second system call function corresponding to the target virtual network element is implemented in a target detection program corresponding to the target virtual network element. The obtaining module 11 is specifically further configured to record the idle time point through the second system call function in the target detection program in response to the second system call function being called, and send the idle time point to the scheduling program; and determining an idle time point close to the target scheduling time from the received idle time points corresponding to the target virtual network element through the scheduling program at the target scheduling time.
Optionally, the processing module 12 is specifically configured to, for a target virtual network element in the multiple virtual network elements, determine that the target virtual network element is in a low-load state if a time difference between the target scheduling time and an idle time point corresponding to the target virtual network element is smaller than a set threshold; and if the time difference between the target scheduling time and the idle time point corresponding to the target virtual network element is greater than or equal to the set threshold, determining that the target virtual network element is in a high-load state.
Optionally, the processing module 12 is further configured to output the number of the plurality of virtual network elements, or output the number of the working threads corresponding to the plurality of virtual network elements according to the number of the working threads allowed to be started in each virtual network element; and receiving the set threshold value set by the user according to the number.
Optionally, the server comprises at least one third party application. The processing module 12 is further specifically configured to determine, if the target virtual network element is in a low-load state, to reduce a set number of first computing resources from the computing resources currently released by the target virtual network element, and write the reduced first computing resources into the idle computing resources of the server; if the target virtual network element is in a high-load state, determining to increase a set number of second computing resources for the target virtual network element from idle computing resources of the server and computing resources occupied by the at least one third-party application program; the computing resource scheduling information describes the increasing and decreasing information of the computing resources corresponding to the plurality of virtual network elements.
Optionally, the processing module 12 is further specifically configured to determine, according to the load of the at least one third-party application program, a newly added computing resource for the at least one third-party application program from among the idle computing resources of the server; the computing resource scheduling information also describes computing resource adding information of the at least one third-party application program.
Optionally, the processing module 12 is further specifically configured to determine that the second computing resource added to the target virtual network element includes a third computing resource, if the third computing resource released by the target virtual network element in the historical scheduling time exists in the idle computing resources of the server; and if the free computing resources of the server are not enough to provide the second computing resources, determining the second computing resources from the computing resources occupied by the at least one third-party application program.
The communication device shown in fig. 10 may perform each step performed by the communication system in the foregoing embodiment, and portions not described in detail in this embodiment may refer to the related description of the foregoing embodiment, which is not described again here.
The above described embodiments of the apparatus are merely illustrative, wherein the network elements illustrated as separate components may or may not be physically separate. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment. One of ordinary skill in the art can understand and implement it without inventive effort.
Through the above description of the embodiments, those skilled in the art will clearly understand that each embodiment may be implemented by a necessary general hardware platform, and may also be implemented by a combination of hardware and software. With this understanding in mind, the above-described aspects and portions thereof contributing to the prior art may be embodied in the form of a computer program product, which may be embodied on one or more computer-free storage media having computer-free program code embodied therein, including but not limited to disk storage, CD-ROM, optical storage, and the like.
Finally, it should be noted that: the above examples are only intended to illustrate the technical solution of the present invention, but not to limit it; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (13)

1. A resource scheduling method is applied to a scheduling component in a user mode, wherein the scheduling component is arranged in a server comprising a plurality of virtual network elements, and the method comprises the following steps:
acquiring idle time points corresponding to the virtual network elements at a target scheduling time, wherein the idle time points correspond to time points when the work threads in the virtual network elements cannot poll the load tasks;
determining the load states of the plurality of virtual network elements according to the time difference between the target scheduling time and the idle time points corresponding to the plurality of virtual network elements;
determining computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements;
and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
2. The method of claim 1, wherein the obtaining the idle time points corresponding to the plurality of virtual network elements at the target scheduling time comprises:
aiming at a target virtual network element in the plurality of virtual network elements, mapping a first system call function into a second system call function realized in the scheduling component through a set instruction according to the first system call function in the target virtual network element, so that the second system call function is called when the work thread in the target virtual network element does not poll a load task; wherein the target virtual network element is any one of the plurality of virtual network elements;
recording the idle time point through the second system call function in response to the second system call function being called;
and determining an idle time point close to the target scheduling time from the recorded idle time points corresponding to the target virtual network element at the target scheduling time.
3. The method of claim 2, wherein after the recording the idle time point by the second system call function, further comprising:
and suspending the working thread generating the idle time point in the target virtual network element, and releasing the computing resources occupied by the working thread.
4. The method of claim 2, wherein the scheduling component comprises a detection program corresponding to each of the plurality of virtual network elements and a scheduler shared by the plurality of virtual network elements; wherein the second system call function corresponding to the target virtual network element is implemented in a target detection program corresponding to the target virtual network element;
the recording the idle time point by the second system call function in response to the second system call function being called, comprising:
responding to the second system calling function being called, recording the idle time point through the second system calling function in the target detection program, and sending the idle time point to the scheduling program;
determining, at the target scheduling time, an idle time point close to the target scheduling time from the recorded idle time points corresponding to the target virtual network element, including:
and determining an idle time point close to the target scheduling time from the received idle time points corresponding to the target virtual network element through the scheduling program at the target scheduling time.
5. The method according to any one of claims 1 to 4, wherein the determining the load statuses of the plurality of virtual network elements according to the time differences between the target scheduling time and the idle time points corresponding to the plurality of virtual network elements respectively comprises:
for a target virtual network element in the plurality of virtual network elements, if the time difference between the target scheduling time and the idle time point corresponding to the target virtual network element is less than a set threshold, determining that the target virtual network element is in a low-load state;
and if the time difference between the target scheduling time and the idle time point corresponding to the target virtual network element is greater than or equal to the set threshold, determining that the target virtual network element is in a high-load state.
6. The method of claim 5, further comprising:
outputting the number of the plurality of virtual network elements, or outputting the number of the working threads corresponding to the plurality of virtual network elements according to the number of the working threads allowed to be started in each virtual network element;
and receiving the set threshold value set by the user according to the number.
7. The method of claim 5, wherein the server includes at least one third party application; the determining the computing resource scheduling information of the plurality of virtual network elements according to the load states of the plurality of virtual network elements includes:
if the target virtual network element is in a low-load state, determining a first computing resource with a set quantity reduced from the computing resources currently released by the target virtual network element, and writing the reduced first computing resource into the idle computing resources of the server;
if the target virtual network element is in a high-load state, determining to increase a set number of second computing resources for the target virtual network element from idle computing resources of the server and computing resources occupied by the at least one third-party application program;
the computing resource scheduling information describes the increasing and decreasing information of the computing resources corresponding to the plurality of virtual network elements.
8. The method of claim 7, wherein the server includes at least one third-party application, the method further comprising:
determining a newly added computing resource for the at least one third-party application program in the idle computing resources of the server according to the load of the at least one third-party application program; the computing resource scheduling information also describes computing resource adding information of the at least one third-party application program.
9. The method of claim 7, wherein the server includes at least one third-party application, and the determining that a set amount of second computing resources are added to the target virtual network element from the idle computing resources of the server and the computing resources occupied by the at least one third-party application comprises:
if third computing resources released by the target virtual network element in historical scheduling time exist in the idle computing resources of the server, determining that the second computing resources added for the target virtual network element comprise the third computing resources;
determining the second computing resource from the computing resources occupied by the at least one third-party application if the free computing resources of the server are insufficient to provide the second computing resource.
10. The method of claim 1, wherein the plurality of virtual network elements are delay sensitive virtual network elements.
11. A server, comprising: the scheduling component is in a user state, the scheduling class function is in a kernel state, and the virtual network elements and the computing resources are multiple;
the scheduling component is to: acquiring idle time points corresponding to the virtual network elements at a target scheduling time, wherein the idle time points correspond to time points when the work threads in the virtual network elements cannot poll the load tasks; determining the load states of the plurality of virtual network elements according to the time difference between the target scheduling time and the idle time points corresponding to the plurality of virtual network elements; determining computing resource scheduling information of the virtual network elements according to the load states of the virtual network elements; and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through the scheduling class function in a kernel state.
12. A resource scheduling method is applied to a scheduling component in a user mode, the scheduling component is arranged in a server comprising a plurality of virtual base stations, the plurality of virtual base stations comprise a plurality of distributed units, and the method comprises the following steps:
acquiring idle time points corresponding to the distributed units at a target scheduling time, wherein the idle time points correspond to time points when the work threads in the distributed units cannot poll the load tasks;
determining the load states of the distributed units according to the time difference between the target scheduling time and the idle time points corresponding to the distributed units;
determining computing resource scheduling information of the distributed units according to the load states of the distributed units;
and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state.
13. A resource scheduling method is applied to a scheduling component in a user mode, the scheduling component is arranged in a server comprising a plurality of virtual base stations, the plurality of virtual base stations comprise a plurality of distributed units, and the method comprises the following steps:
according to the corresponding relation between the vehicle-mounted terminal and the virtual base station, storing a running data processing task triggered by the vehicle-mounted terminal into a task queue corresponding to a distributed unit of the corresponding virtual base station;
acquiring idle time points corresponding to the distributed units at a target scheduling time, wherein the idle time points correspond to time points when the working threads in the distributed units cannot poll the driving data processing task in the corresponding task queue;
determining the load states of the distributed units according to the time difference between the target scheduling time and the idle time points corresponding to the distributed units;
determining computing resource scheduling information of the distributed units according to the load states of the distributed units;
and sending the computing resource scheduling information to a kernel of the server so as to complete resource scheduling processing corresponding to the computing resource scheduling information through a scheduling class function in a kernel state, so that the plurality of distributed units process the received driving data processing task based on the computing resources after the resource scheduling processing.
CN202210972195.0A 2022-08-15 2022-08-15 Resource scheduling method and server Active CN115048206B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210972195.0A CN115048206B (en) 2022-08-15 2022-08-15 Resource scheduling method and server
US18/171,250 US20240054021A1 (en) 2022-08-15 2023-02-17 Resource scheduling method and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210972195.0A CN115048206B (en) 2022-08-15 2022-08-15 Resource scheduling method and server

Publications (2)

Publication Number Publication Date
CN115048206A true CN115048206A (en) 2022-09-13
CN115048206B CN115048206B (en) 2022-12-27

Family

ID=83167641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210972195.0A Active CN115048206B (en) 2022-08-15 2022-08-15 Resource scheduling method and server

Country Status (2)

Country Link
US (1) US20240054021A1 (en)
CN (1) CN115048206B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617497A (en) * 2022-12-14 2023-01-17 阿里巴巴达摩院(杭州)科技有限公司 Thread processing method, scheduling component, monitoring component, server and storage medium
CN116149867A (en) * 2023-04-12 2023-05-23 阿里巴巴(中国)有限公司 Resource scheduling method and device

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165754A1 (en) * 2001-02-27 2002-11-07 Ming-Chung Tang Method for quality of service controllable real-time scheduling
US20060156306A1 (en) * 2004-12-13 2006-07-13 Infineon Technologies Ag Thread scheduling method, and device to be used with a thread scheduling method
CN1955931A (en) * 2005-09-30 2007-05-02 科威尔公司 Scheduling in a multicore architecture
CN101415023A (en) * 2008-08-08 2009-04-22 西安瑞友信息技术资讯有限公司 Intelligent dynamic load equilibrium technology for server
CN101488098A (en) * 2009-02-13 2009-07-22 华中科技大学 Multi-core computing resource management system based on virtual computing technology
CN101923487A (en) * 2010-08-06 2010-12-22 西华师范大学 A Synthetic Embedded Real-time Periodic Task Scheduling Method
CN104834980A (en) * 2015-05-26 2015-08-12 杭州天宽科技有限公司 Load scheduling method used for optimizing green data center electric charge
US20150282166A1 (en) * 2012-11-14 2015-10-01 China Academy Of Telecommunications Technology Method and device for scheduling slot resources
CN106998340A (en) * 2016-01-22 2017-08-01 大唐移动通信设备有限公司 A kind of load-balancing method and device of board resource
CN108958157A (en) * 2018-07-09 2018-12-07 北京东土科技股份有限公司 Control process control dispatching method, device, computer equipment and storage medium
CN109976917A (en) * 2019-04-08 2019-07-05 科大讯飞股份有限公司 A kind of load dispatching method, device, load dispatcher, storage medium and system
US20210014011A1 (en) * 2019-07-12 2021-01-14 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving signal in a communication system
CN113703906A (en) * 2020-05-20 2021-11-26 阿里巴巴集团控股有限公司 Data processing method, device and system
CN114072737A (en) * 2019-07-03 2022-02-18 欧姆龙株式会社 Control system, setting device, and computer program
CN114706663A (en) * 2022-04-19 2022-07-05 阿里巴巴(中国)有限公司 Computing resource scheduling method, medium and computing device

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165754A1 (en) * 2001-02-27 2002-11-07 Ming-Chung Tang Method for quality of service controllable real-time scheduling
US20060156306A1 (en) * 2004-12-13 2006-07-13 Infineon Technologies Ag Thread scheduling method, and device to be used with a thread scheduling method
CN1955931A (en) * 2005-09-30 2007-05-02 科威尔公司 Scheduling in a multicore architecture
CN101415023A (en) * 2008-08-08 2009-04-22 西安瑞友信息技术资讯有限公司 Intelligent dynamic load equilibrium technology for server
CN101488098A (en) * 2009-02-13 2009-07-22 华中科技大学 Multi-core computing resource management system based on virtual computing technology
CN101923487A (en) * 2010-08-06 2010-12-22 西华师范大学 A Synthetic Embedded Real-time Periodic Task Scheduling Method
US20150282166A1 (en) * 2012-11-14 2015-10-01 China Academy Of Telecommunications Technology Method and device for scheduling slot resources
CN104834980A (en) * 2015-05-26 2015-08-12 杭州天宽科技有限公司 Load scheduling method used for optimizing green data center electric charge
CN106998340A (en) * 2016-01-22 2017-08-01 大唐移动通信设备有限公司 A kind of load-balancing method and device of board resource
CN108958157A (en) * 2018-07-09 2018-12-07 北京东土科技股份有限公司 Control process control dispatching method, device, computer equipment and storage medium
CN109976917A (en) * 2019-04-08 2019-07-05 科大讯飞股份有限公司 A kind of load dispatching method, device, load dispatcher, storage medium and system
CN114072737A (en) * 2019-07-03 2022-02-18 欧姆龙株式会社 Control system, setting device, and computer program
US20210014011A1 (en) * 2019-07-12 2021-01-14 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving signal in a communication system
CN113703906A (en) * 2020-05-20 2021-11-26 阿里巴巴集团控股有限公司 Data processing method, device and system
CN114706663A (en) * 2022-04-19 2022-07-05 阿里巴巴(中国)有限公司 Computing resource scheduling method, medium and computing device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨波等: ""异构云平台中基于多层架构的动态循环调度方案"", 《计算机应用研究》 *
白钊铭等: "基于调度效益最大化的多功能组网认知雷达资源优化调度算法", 《科学技术与工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617497A (en) * 2022-12-14 2023-01-17 阿里巴巴达摩院(杭州)科技有限公司 Thread processing method, scheduling component, monitoring component, server and storage medium
CN115617497B (en) * 2022-12-14 2023-03-31 阿里巴巴达摩院(杭州)科技有限公司 Thread processing method, scheduling component, monitoring component, server and storage medium
CN116149867A (en) * 2023-04-12 2023-05-23 阿里巴巴(中国)有限公司 Resource scheduling method and device

Also Published As

Publication number Publication date
US20240054021A1 (en) 2024-02-15
CN115048206B (en) 2022-12-27

Similar Documents

Publication Publication Date Title
CN114327843B (en) Task scheduling method and device
CA2722670C (en) Scheduler instances in a process
KR102450528B1 (en) System and method of application aware efficient io scheduler
US8424007B1 (en) Prioritizing tasks from virtual machines
US8725913B2 (en) Numa I/O framework
CN109564528B (en) System and method for computing resource allocation in distributed computing
CN110489213A (en) A task processing method, processing device, and computer system
CN1602467A (en) Data processing system having multiple processors, a task scheduler for a data processing system having multiple processors and a corresponding method for task scheduling
HUP0301326A2 (en) Method and system for managing workload in a computing environment, as well as computer program for implementing the method
WO2017070900A1 (en) Method and apparatus for processing task in a multi-core digital signal processing system
US20160127382A1 (en) Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
KR20070083460A (en) How and System to Run Multiple Kernels Simultaneously
WO2023246044A1 (en) Scheduling method and apparatus, chip, electronic device, and storage medium
CN115048206A (en) Resource scheduling method and server
JP2004078322A (en) Task management system, program, recording medium, and control method
CN118939279A (en) A method for optimizing user-mode file system framework FUSE
CN118885307A (en) Method and device for controlling access to shared resources, storage medium and electronic device
EP4607348A1 (en) Preemption in an interrupt driven micro-scheduler technical field
Golchin et al. Tuned pipes: end-to-end throughput and delay guarantees for USB devices
HK40080909A (en) Resource scheduling method and server
CN119960927A (en) A hardware accelerator task scheduling method, system and application
CN116431335B (en) Control group-based container message queue resource quota control method
CN121263780A (en) GPU circuitry is saved from context during context demapping
JP3349547B2 (en) Scheduling system
CN121349478A (en) A method to improve data acquisition/writing stability

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40080909

Country of ref document: HK