Scheduling method and system, service equipment, computer program product and storage medium
By filtering and allocating appropriate user-mode processes in kernel mode, the problem of user-mode process congestion was solved, resulting in more efficient service device performance and resource utilization.
Patent Information
- Application Number
- CN202410725033.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-05
- Publication Date
- 2025-12-05
AI Technical Summary
The existing service equipment's kernel-mode scheduling mechanism causes congestion issues for requests carried by user-mode processes, impacting performance.
The kernel obtains the process list of the target application, filters out candidate processes that meet the preset filtering requirements, and assigns target processes to connection requests based on hash values or other strategies. Through the collaborative work of kernel-mode components and user-mode components, reasonable scheduling is achieved.
By rationally scheduling and balancing the running status of user-mode processes, the performance and resource utilization of service equipment are improved.
Smart Images

Figure CN121070533A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of cloud computing, and in particular to a scheduling method and system, a service device, a computer program product and a storage medium. BACKGROUND
[0002] At present, more and more service devices begin to support multi-process design to improve work throughput. For example, a service device acting as a relay node in an application load balancer (ALB) system can fully utilize its multiple cores to start multiple user-mode processes to forward messages sent by clients to appropriate servers in the back end.
[0003] In such a service device, multiple user-mode processes listen on the same port in the transport layer of the seven-layer network model. To avoid waking up multiple user-mode processes due to receiving a request, the service device schedules user-mode processes in the kernel mode to schedule the received request to one of the user-mode processes for processing.
[0004] The scheduling mechanism used in the kernel mode is usually to divide the received requests equally among multiple user-mode processes. However, since the processing time required by different requests may be different, this scheduling mechanism often leads to congestion of requests carried by some user-mode processes, affecting the performance of the service device. SUMMARY
[0005] Aspects of the present application provide a scheduling method, system, service device, computer program product and storage medium to more reasonably schedule connection requests in the transport layer to improve the performance of the service device.
[0006] Embodiments of the present application provide a scheduling method applicable to an operating system of a service device, the operating system including a kernel mode and a user mode, a target application running in the user mode of the operating system, and the method comprising:
[0007] In the kernel mode of the operating system, in response to receiving a connection request for the target application, obtaining a process list corresponding to the target application, the process list containing at least one candidate process selected from multiple user-mode processes started for the target application, the running state of the candidate process meeting a predetermined selection requirement;
[0008] allocating a target process for the connection request from the candidate processes included in the process list;
[0009] Scheduling the connection request to the target process to enable the target process to process the connection request.
[0010] Further, in response to receiving the connection request for the target application, a process list corresponding to the target application is acquired, including:
[0011] In response to receiving the connection request for the target application, the process list passed from the user state is read from the kernel state storage space.
[0012] Further, the method can further include:
[0013] In the user state of the operating system, state parameters respectively provided by the plurality of user state processes to describe the running state are acquired;
[0014] According to the state parameters respectively corresponding to the plurality of user state processes, at least one candidate process meeting the preset filtering requirement is filtered from the plurality of user state processes to generate the process list;
[0015] The process list is passed to the kernel state storage space.
[0016] Further, in the user state of the operating system, state parameters respectively provided by the plurality of user state processes to describe the running state are acquired, including:
[0017] In the user state of the operating system, the state parameters written by the plurality of user state processes are read from the user state storage space corresponding to the target application.
[0018] Further, at least one candidate process meeting the preset filtering requirement is filtered from the plurality of user state processes, including:
[0019] For any user state process in the plurality of user state processes, if each state parameter provided by the user state process meets the filtering threshold in the corresponding description dimension, the user state process is determined to be a candidate process meeting the preset filtering requirement;
[0020] The filtering threshold is calculated according to the acquired state parameter in the corresponding description dimension.
[0021] Further, if each state parameter provided by the user state process meets the filtering threshold in the corresponding description dimension, the user state process is determined to be a candidate process meeting the preset filtering requirement, including:
[0022] If the selected description dimension is multiple, multiple rounds of filtering operations are sequentially started to sequentially use the multiple description dimensions.
[0023] In the first round of screening operation, a first screening threshold is calculated for a first description dimension used by the user state processes in the first round of screening operation according to state parameters provided by the user state processes in the first description dimension; if a state parameter of any user state process in the first description dimension meets the first screening threshold, the user state process is added to a screening list corresponding to the first round of screening operation;
[0024] In the non-first round of screening operation, a second screening threshold is calculated for a second description dimension used by user state processes included in a screening list corresponding to a previous round of screening operation according to state parameters provided by the user state processes in the second description dimension in the non-first round of screening operation; if a state parameter of any user state process in the second description dimension meets the second screening threshold, the user state process is added to a screening list corresponding to the non-first round of screening operation.
[0025] The user state processes in the screening list generated after the last round of screening operation are determined as the candidate processes.
[0026] Further, the method can further include:
[0027] In the user state of the operating system, a bitmap is defined, and a plurality of bits in the bitmap correspond to the plurality of user state processes one by one;
[0028] For the first round of screening operation, the value of the bit corresponding to the user state process meeting the first screening threshold in the bitmap is updated to a first value to represent that the user state process is added to the screening list corresponding to the first round of screening operation.
[0029] For the non-first round of screening operation, the value of the bit corresponding to the user state process meeting the first screening threshold in the bitmap is intersected with the first value.
[0030] If the value of the bit after intersection is still the first value, it represents that the user state process is added to the screening list corresponding to the non-first round of screening operation.
[0031] Further, the state parameters include connection count and / or queue count, the connection count is used to represent the number of established and not released connections, and the queue count is used to represent the number of not completed processing requests.
[0032] Further, the process list is transmitted to the kernel state storage space, including:
[0033] In the user state, an execution engine supporting kernel function extension deployed in the kernel state is called to transmit the process list to the kernel state storage space by using the execution engine.
[0034] Further, the target process is assigned to the connection establishment request from the candidate processes included in the process list, including:
[0035] In the kernel state of the operating system, the connection establishment request is hashed to obtain a hash value corresponding to the connection establishment request;
[0036] Based on the hash value, the target process is assigned to the connection establishment request from the candidate processes included in the process list.
[0037] Further, the method can further include:
[0038] In the kernel state of the operating system, the function logic of the target function for assigning the user state process is loaded as custom function logic by using an execution engine supporting kernel function extension;
[0039] In the case of running to the target function in response to the connection establishment request, the scheduling of the connection establishment request is completed according to the custom function logic;
[0040] The custom function logic includes the operation of obtaining the process list corresponding to the target application and subsequent operations.
[0041] Further, the execution engine includes an extended Berkeley Packet Filter (eBPF).
[0042] Embodiments of the present application also provide a scheduling system deployed in an operating system of a service device, the scheduling system including a kernel state component and a user state component, the kernel state component running in a kernel state of the operating system, and the user state component running in a user state of the operating system, based on the kernel state component and the user state component, the scheduling system is used to execute the aforementioned scheduling method.
[0043] Embodiments of the present application also provide a service device including a memory, a processor and a communication component;
[0044] The memory is used to store one or more computer instructions issued by an operating system;
[0045] The processor is coupled with the memory and the communication component, and is used to execute the one or more computer instructions for executing the aforementioned scheduling method.
[0046] Embodiments of the present application also provide a computer-readable storage medium storing a computer program, when the computer program is executed by one or more processors, the one or more processors are caused to execute the aforementioned scheduling method.
[0047] The embodiment of the present application further provides a computer program product comprising a computer program which, when executed by one or more processors, causes the one or more processors to perform the foregoing scheduling method.
[0048] In the embodiment of the present application, for a connection establishment request in a transport layer, a new scheduling mechanism is provided in a kernel state of an operating system in a service device. In the kernel state of the operating system, in response to receiving a connection establishment request for a target application, a process list corresponding to the target application can be acquired, wherein the process list contains at least one candidate process determined by preliminary screening according to running states of all user state processes not started for the target application. In this way, through the process list, the kernel state can indirectly perceive the running states of the user state processes as a scheduling basis, and the user state processes whose running states do not meet preset screening requirements can be excluded from the scheduling range. On this basis, in the kernel state, the connection establishment request can be scheduled to a target process in the process list, so as to process the connection establishment request through the target process. Accordingly, in the embodiment of the present application, the connection establishment request can be scheduled to a user state process whose running state is more in line with the requirements of an application scenario in the kernel state, so as to make the running states of the user state processes more balanced, and further improve the performance of the service device. BRIEF DESCRIPTION OF DRAWINGS
[0049] The accompanying drawings, which are included to provide a further understanding of the present application and are incorporated in and constitute a part of this application, illustrate embodiments of the present application and serve to explain the present application. In the drawings:
[0050] Figure 1 A structure schematic diagram of a scheduling system provided for an exemplary embodiment of the present application;
[0051] Figure 2 A flow schematic diagram of a scheduling method provided for an exemplary embodiment of the present application;
[0052] Figure 3 A structure schematic diagram of a preferred implementation of a scheduling system provided for an exemplary embodiment of the present application;
[0053] Figure 4 A flow schematic diagram of another scheduling method provided for an exemplary embodiment of the present application;
[0054] Figure 5 A structure schematic diagram of a service device provided for another exemplary embodiment of the present application. Figure 4 A logic schematic diagram corresponding to the scheduling method provided;
[0055] Figure 6 A structure schematic diagram of a service device provided for another exemplary embodiment of the present application. DETAILED DESCRIPTION
[0056] In order to make the purpose, technical solutions and advantages of the present application clearer, the technical solutions of the present application will be described clearly and completely below in combination with specific embodiments of the present application and corresponding drawings. Obviously, the described embodiments are only some of the embodiments of the present application, not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative labor fall within the scope of protection of the present application.
[0057] Before starting to describe the technical solutions provided by the embodiments of the present application in detail, the following will first explain several technical concepts involved in the present application.
[0063] The operating system is the core software of the computer system, which provides a running environment and basic services for application programs. The kernel of the operating system is the core part of the operating system. The kernel of the operating system is usually responsible for process management, memory management, device management, file system management and network communication management. In addition to the above-mentioned management work, the kernel of the operating system can also be responsible for security management, virtualization management and parallel processing, etc., which will not be described more. The operating system can switch between the kernel state and the user state to protect the security and stability of the operating system kernel.
[0059] In the kernel state, the running in the operating system is the kernel program, and multiple kernel programs constitute the kernel of the operating system. At this time, the operating system can execute privileged instructions or non-privileged instructions. Among them, the privileged instruction is usually an operation instruction that has a significant impact on the computer system and may have an irreparable impact, so it must be issued by the kernel of the operating system, and cannot be issued by the user's application program.
[0060] In the user state, the running in the operating system is the application program, at this time, the operating system can only execute non-privileged instructions.
[0061] The service device can be understood as a device for providing cloud services. When the service device provides services to the outside, it needs to establish a connection with the request end first. For this purpose, the request end needs to initiate a connection request to the service device. After the connection is completed, the request end can send service-related processing requests to the service device to trigger the service device to respond to these processing requests and thus realize the service. Since the connection request usually reaches the service device through network communication, and the network communication management is responsible by the kernel of the operating system, the connection request usually reaches the kernel state of the service device.
[0062] As introduced in the background, more and more service devices begin to support multi-processes, so it is necessary to distribute the connection request among multiple user state processes in the kernel state. Referring to the common scheduling mechanism mentioned in the background, the received connection request is evenly divided into multiple user state processes. Since the processing time required by different requests may be different, this scheduling mechanism often leads to congestion of connection requests carried on some user state processes, affecting the response efficiency of the connection request, and further affecting the performance of the service device such as throughput.
[0063] To this end, an embodiment of the present application proposes a scheduling scheme. For the connection request in the transport layer, a new scheduling mechanism is implemented in the kernel state of the operating system in the service device, so as to more reasonably schedule the received connection request to the appropriate user state process, thereby effectively shortening the waiting time of the connection request and improving the response efficiency of the connection request.
[0064] The technical solutions provided by the embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0065] Figure 1 A structure diagram of a scheduling system provided by an exemplary embodiment of the present application is provided. Referring to Figure 1 The scheduling system is deployed in the operating system of the service device, and the operating system includes a kernel state and a user state. The scheduling system can include a user state component and a kernel state component. The kernel state component runs in the kernel state of the operating system, and the user state component runs in the user state of the operating system. In this embodiment, the kernel state component can be understood as a kernel program responsible for allocating user state processes. The user state component can be understood as a user state program used in cooperation with the kernel state component to support the kernel state component to complete the allocation of user state processes. The user state component in this embodiment can be an independent program running in the user state and located outside the application program in the user state. Of course, it can also be a functional module integrated in the application program, and this embodiment does not limit it.
[0066] It is worth noting that the user state component is a new component added in the scheduling system in this embodiment. As can be known from the traditional scheduling mechanism described in the background, since the user state and the kernel state are information isolated, the kernel state component only relies on the fixed scheduling strategy in itself to perform scheduling, and these fixed scheduling strategies are independent of the user state. In this embodiment, the traditional scheduling mechanism is abandoned, and the user state component is added in the scheduling system. In this embodiment, the user state component can be used to timely feed back the running state of the user state process to the kernel state component, so as to provide new scheduling basis for the kernel state component.
[0067] In this embodiment, the service type provided by the service device is not limited. In some exemplary application scenarios, the service device can be a relay node in an Application Load Balancer (ALB) system mentioned in the background technology, and in such application scenarios, the service type provided by the service device is network forwarding and load balancing. The ALB instance created in the ALB system can run as an application in the running environment provided by the operating system of the service device, that is, the ALB instance runs in the user mode of the operating system and can be requested to connect as a target application. Of course, this is only exemplary, and in other application scenarios, the service type provided by the service device in this embodiment can also be a storage service, a database service, or a WEB service, and the application running in the user mode of the operating system of the service device will also be an application program adapted to the service type, and no more examples are given here.
[0068] Reference Figure 1 In the operating system, a plurality of user mode processes can be started for the target application. The target application runs in the user mode of the operating system, and the target application is an application program for supporting the service device to provide services externally. The user mode process in this embodiment refers to an application process started for the target application in the user mode of the operating system. The user mode process in this embodiment can be a heavy-weight process (Heavy-Weight Process) or a light-weight process (Light-Weight Process), and is not limited here. For a request end that needs to use the service provided by the service device, a connection request can be initiated to the target application.
[0069] It is worth noting that the connection request in this embodiment is located in the fourth layer of the seven-layer network model, that is, the transport layer. In the seven-layer network model, the transport layer is mainly used to manage the end-to-end data transmission in the network. For the service device in this embodiment, the request end that expects to use the service provided by the service device needs to initiate a connection request in the transport layer. Understandably, the connection request is used to request a connection with the target application in the service device, and specifically, the connection request is used to request a connection with the user mode process started for the target application in the service device. In this way, after the service device responds to the connection request, a connection channel can be established between the service device and the request end in the transport layer. Then, in the application layer of the seven-layer network model, the request end can initiate a service-related processing request to the service device in this embodiment based on the established connection channel.
[0070] Therefore, the scheduling method in this embodiment is used to schedule the connection request sent to the service device in the transport layer of the seven-layer network model.
[0071] Continue to refer to Figure 1As mentioned above, the connection request initiated by the request end will reach the kernel state of the operating system in the service device. In this embodiment, based on the kernel state component in the scheduling system, a new scheduling mechanism is implemented in the kernel state to schedule the received connection request to a more suitable user state process.
[0072] Figure 2 A flowchart of a scheduling method provided for an exemplary embodiment of the present application is shown. Referring to Figure 2 The method can be applied to an operating system in a service device, which includes a kernel state and a user state, and in particular can be applied to the above-mentioned scheduling system deployed in the operating system. The method can include:
[0073] Step 200: In the kernel state of the operating system, in response to receiving a connection request for a target application, a process list corresponding to the target application is obtained, the process list containing at least one candidate process selected from a plurality of user state processes started for the target application, the running state of the candidate process meeting a preset filtering requirement;
[0074] Step 201: A target process is assigned to the connection request from the candidate processes contained in the process list;
[0075] Step 202: The connection request is scheduled to the target process to enable the target process to process the connection request.
[0076] In this embodiment, the technical logic in the kernel state can be implemented based on the kernel state component in the scheduling system. As mentioned above, the connection request will reach the kernel state of the operating system in the service device, and the connection request can be received by the kernel state component in the scheduling system in this embodiment. On this basis, referring to Figure 2 In step 200, the kernel state component can obtain a process list corresponding to the target application in response to receiving a connection request for the target application.
[0077] It is worth emphasizing here that the process list in this embodiment does not contain all the user state processes started for the target application, but at least one candidate process determined according to the preliminary filtering of the running states of these user state processes. In this embodiment, the preliminary filtering link can support the on-demand design of the filtering requirement, based on which the user state process with a running state meeting the preset filtering requirement will be confirmed as a candidate process. In other words, the user state process with a running state not meeting the preset filtering requirement will not be contained in the process list in this embodiment. In this embodiment, the process list can define the scheduling range for the kernel state, so that the user state processes not contained in the process list will be excluded from the scheduling range of the kernel state.
[0078] In actual applications, the preset screening requirement in the embodiment can be flexibly adjusted according to different types of application programs, to provide a process list adapted to different application scenario requirements. This makes the scheduling method provided by the embodiment support more flexible expansion, thereby supporting various application scenario requirements. Here, the application scenario requirement can be understood as expecting what aspects of performance balance between the user-mode processes after scheduling, or expecting the request end to obtain better service performance in what aspects, and the like. For example, the first exemplary application scenario requirement can be expecting the queuing delay on each user-mode process to be more balanced, and for example, the second exemplary application scenario requirement can be expecting the request end to use as many idle resources as possible to implement the service. No more examples are made here. The preset screening requirement can be customized in the embodiment to adapt to different application scenario requirements. For example, for the first exemplary application scenario requirement described above, a preset screening requirement can be customized to screen the user-mode processes with short enough queuing delay into the process list; and for the second exemplary application scenario requirement described above, a preset screening requirement can also be customized to screen the user-mode processes with enough idle resources into the process list.
[0079] It should be understood that in the embodiment, the kernel state obtains the process list corresponding to the target application, which is equivalent to indirectly perceiving the running state of the plurality of user-mode processes started for the target application in the kernel state. This is because the process list is screened based on the running state of the user-mode processes, and therefore the running state of the candidate processes contained in the process list all meet the preset screening requirement, which has already reflected the running state of the candidate processes.
[0080] On this basis, continuing to refer to Figure 2 In step 201, the kernel state component can allocate a target process for the connection establishment request from the obtained process list.
[0081] In step 201, the kernel state component can perform re-selection on the basis of the process list to finally determine the target process for the connection establishment request. In the embodiment, the selection strategy can also be designed on demand in the re-selection link.
[0082] In an exemplary re-selection scheme: the connection establishment request can be hashed in the kernel mode to obtain a hash value corresponding to the connection establishment request; and a target process is assigned to the connection establishment request from the process list based on the hash value. In the exemplary re-selection scheme, optionally, the five-tuple (source IP, source port, destination IP, destination port, protocol number) corresponding to the connection establishment request can be hashed to obtain the hash value corresponding to the connection establishment request. After the hash value corresponding to the connection establishment request is obtained, the hash value and the total number of candidate processes in the process list can be subjected to a modulo operation, and the candidate process pointed to by the remainder is the target process. Of course, in addition to this, a consistent hash or other technology can also be used to determine the target process from the process list based on the hash value. In the exemplary re-selection scheme, the assignment manner used when the target process is assigned from the process list based on the hash value is not limited, and no more examples are given here. By using the hash calculation manner, the connection establishment request can be more evenly scheduled to each candidate process, so as to further avoid the congestion problem of some user-mode processes.
[0083] It is worth emphasizing here that in actual application, hash collision or other problems may occur during hash calculation, resulting in that the target process to which the connection establishment request is assigned may be different from the process assigned in the case where no hash collision problem occurs. However, even if such a situation occurs, it will not cause the congestion problem of some user-mode processes in the re-selection scheme. This is because the preliminary screening link described above is also designed in the embodiment, and if the hash collision or other problems occur in the re-selection link, causing too many connection establishment requests to be assigned to a user-mode process, the user-mode process will be excluded from the process list in the preliminary screening link because the running state does not meet the preset screening requirement. The user-mode process will not be assigned more connection establishment requests temporarily, and the temporary busy state of the user-mode process will be relieved. It can be seen that the running states of multiple user-mode processes can be balanced with the cooperation of the preliminary screening link and the re-selection link, and accordingly, the connection establishment request can be responded more quickly.
[0084] It should be understood that the above re-selection scheme is only exemplary, and other re-selection schemes can also be used in the embodiment, for example, a target process can be randomly selected from the process list. The re-selection scheme in the embodiment is not limited thereto, and no more examples are given here.
[0085] After the target process is assigned to the connection establishment request, the target process is notified of the connection establishment request, and the target process is allowed to establish a connection with the connection establishment request. Figure 2In step 202, the kernel component can dispatch the connection establishment request to a target process, so that the target process processes the connection establishment request. For the target process, a connection can be established with the request end that initiates the connection establishment request in response to the connection establishment request. After the target process establishes the connection with the request end, the request end can continue to initiate service-related processing requests to the target process through the connection channel between the two parties, and the target process can respond to the processing requests to implement the service for the request end.
[0086] For example, if the service device is a relay node in the ALB system, the request end can initiate a forwarding request to the target process after establishing the connection with the target process, and the target process can respond to the forwarding request to forward the message in the forwarding request to a server in the back-end server group, thereby implementing the ALB service for the request end.
[0087] For example, if the service device is a storage node in the storage cluster, the request end can initiate a data read / write request to the target process after establishing the connection with the target process, and the target process can respond to the data read / write request to implement the storage service for the request end.
[0088] In summary, in this embodiment, for the connection establishment request sent to the service device in the transport layer, a new scheduling mechanism is provided in the kernel state of the operating system in the service device. In the kernel state, in response to receiving the connection establishment request for the target application, a process list corresponding to the target application can be obtained, wherein the process list contains at least one candidate process determined by preliminary screening according to the running states of all user state processes started for the target application. In this way, through the process list, the kernel state can indirectly perceive the running states of the user state processes as a scheduling basis, and the user state processes whose running states do not meet the preset screening requirements can be excluded from the scheduling range. On this basis, in the kernel state, the connection establishment request can be dispatched to a target process in the process list to process the connection establishment request through the target process. Accordingly, in the embodiment, the connection establishment request can be dispatched to a user state process whose running state is more in line with the application scenario requirements in the kernel state, so that the running states of the user state processes are more balanced, which makes the CPU utilization rate, memory utilization rate, and utilization rate of other resources of the user state processes more balanced, and thus the performance and resource utilization rate of the service device can be effectively improved.
[0089] Figure 3 A structure diagram of a preferred implementation of a scheduling system provided by an exemplary embodiment of the present application is provided. Referring to FIG. 1, in the preferred implementation, the scheduling system further includes an execution engine supporting kernel function extension. The execution engine supporting kernel function extension refers to a type of execution engine that can implement kernel function extension without modifying the kernel code. Referring to FIG. 1, the execution engine supporting kernel function extension includes a kernel function extension module and a kernel function extension execution engine. Figure 3The execution engine can be deployed in a kernel mode of an operating system in the service device.
[0090] Accordingly, in the preferred implementation, the technical logic of the steps 200-202 can be written as custom function logic, and the function logic for assigning the target function of the user mode process can be loaded as the custom function logic by the execution engine in the kernel mode. The execution engine can include an extended Berkeley Packet Filter (eBPF). Therefore, in the embodiment, the eBPF can be deployed in the kernel mode of the operating system in the service device, and before the scheduling method is executed, the custom function logic written in the embodiment can be injected into the target function in the kernel mode component by using the eBPF. Of course, this is only an example, and the embodiment is not limited to the BPF. In addition, the target function in the kernel mode component can be used as a loading point to interact with the kernel by using a hook mechanism based on the principle of the execution engine, so as to load the function logic of the target function as the custom function logic. In this way, in the preferred implementation, the kernel code does not need to be intruded, that is, the original code of the kernel mode component in the service device does not need to be modified, so that the kernel mode component has the ability to implement the scheduling method provided by the embodiment.
[0091] As mentioned above, the kernel mode component in the embodiment is essentially a kernel program. The original code corresponding to the kernel mode component includes calls to a plurality of functions, and the target function for assigning the user mode process is included in the functions. Based on this, after receiving the connection request, the kernel mode component can run according to the original code, and when the target function is reached, the custom function logic provided by the embodiment can be automatically executed, that is, the target process is assigned for the received connection request according to the steps 200-202 of the embodiment. After the target function is executed, the determined target process can be transmitted to the function for performing scheduling in the kernel mode component, so as to trigger the function to schedule the connection request to the target process, thereby completing the scheduling.
[0092] Accordingly, in the preferred implementation, based on the execution engine deployed in the kernel mode to support the extension of the kernel function, the custom function logic written in the embodiment can be loaded into the target function for assigning the user mode process in the kernel mode component without intruding the kernel code, so that when the target function is reached, the kernel mode component can assign the target process for the connection request more reasonably according to the scheduling method provided by the embodiment, and schedule the connection request to the target process while fully considering the actual running state of the user mode process. This makes the scheduling method provided by the embodiment have better deployment convenience, and the new scheduling mechanism proposed by the embodiment can be implemented in the kernel mode without modifying the kernel code of the service device.
[0093] Of course, the above implementation is optional, in the embodiment, other implementation can also be used to enable the kernel mode component to perform the scheduling method provided by the embodiment. For example, the kernel mode component in the kernel mode can be directly modified to have the ability to perform the scheduling method provided by the embodiment, etc. The embodiment is not limited thereto, and no more examples are given here.
[0094] Figure 4 The flowchart of another scheduling method provided by an exemplary embodiment of the present application is provided. Referring to Figure 4 , the method can include:
[0095] Step 400, in the kernel mode of the operating system, in response to receiving a connection request for a target application, reading a process list passed from the user mode of the operating system from the kernel mode storage space, the process list containing at least one candidate process selected from a plurality of user mode processes started for the target application, the running state of the candidate process meeting the preset filtering requirement;
[0096] Step 401, assigning a target process for the connection request from the candidate process contained in the process list;
[0097] Step 402, scheduling the connection request to the target process to make the target process process the connection request.
[0098] In the embodiment, steps 401 and 402 can refer to the description of steps 201 and 202 in Figure 1 , which will not be repeated here. In the embodiment, based on step 400, an optional implementation is provided for step 200 in Figure 1 .
[0099] Figure 5 The logic diagram corresponding to the scheduling method provided by Figure 4 is provided. Referring to Figure 5 , in this optional implementation, it is proposed that a process list can be constructed for a target application in the user mode of the operating system, and the process list is passed from the user mode to the kernel mode. Based on this, referring to Figure 4 , in step 400, the kernel mode component can read the process list passed from the user mode from the kernel mode storage space.
[0100] Among them, the operating system can generally divide the memory of the service device into kernel mode storage space and user mode storage space, the kernel mode storage space can be understood as the memory space used in the kernel mode. The user mode storage space can be understood as the memory space used in the user mode. After the user mode passes the process list constructed for the target application to the kernel mode, the process list will be stored in the kernel mode storage space.
[0101] Preferably, the receiving Figure 3 In the user mode, the user mode component can invoke the execution engine deployed in the kernel mode to pass the process list to the kernel mode storage space by using the execution engine. Here, the execution engine is used to pass data between the user mode and the kernel mode, so that the process list in the embodiment can be passed from the user mode to the kernel mode without modifying the kernel code.
[0102] The process of constructing the process list for the target application in the user mode and passing the process list to the kernel mode will be described in detail below.
[0103] As mentioned above, the scheduling system includes a user mode component, and here, the user mode component can be used to construct the process list for the target application and pass the process list to the kernel mode.
[0104] Referring to Figure 5 In the user mode, the user mode component can obtain state parameters provided by each of the plurality of user mode processes started for the target application, and the state parameters are used to describe the running state of the user mode process. The user mode component can also filter at least one candidate process from the plurality of user mode processes according to the state parameters corresponding to each of the plurality of user mode processes to generate a process list corresponding to the target application. The user mode component can also pass the process list to the kernel mode to store the process list in the kernel mode storage space.
[0105] In an exemplary implementation, the plurality of user mode processes started for the target application can actively update the state parameters corresponding to the target application to the user mode storage space. Here, the update frequency is not limited, and in actual applications, the update frequency can be customized, for example, updated every 5 seconds. Based on this, referring to Figure 5 , the user mode component can read the state parameters written by the plurality of user mode processes from the user mode storage space corresponding to the target application. Of course, this is only exemplary, and in the embodiment, other implementation schemes can also be used to support the user mode component to obtain the state parameters provided by each of the plurality of user mode processes. For example, the user mode component can actively monitor the running state of each user mode process to obtain the state parameters corresponding to each user mode process. No more implementation schemes are exemplified here.
[0106] In the embodiment, one or more state parameters in the description dimension can be selected to describe the running state of the user mode process. The selected description dimension can include but is not limited to connection count or queue count. The connection count can be used to represent the number of connections that have been established and not released, and the queue count can be used to represent the number of processing requests that have not been completed.
[0107] In this embodiment, as mentioned above, in the preliminary screening link (i.e., the link of constructing the process list), the preset screening requirement can be flexibly adjusted according to the requirements of different application scenarios. To this end, the selected description dimension can be flexibly set for the preset screening requirement according to the requirements of the application scenario, so that the preset screening requirement is adapted to the requirements of the application scenario. In this way, the user state component can evaluate the running state of the multiple user state processes of the target application from the selected description dimension to screen out the candidate processes that meet the preset screening requirement to form the process list corresponding to the target application. It can be understood that, by reasonably selecting the description dimension, the process list constructed by the user state component for the target application can be adapted to the requirements of the application scenario.
[0108] The following provides an exemplary screening scheme in the preliminary screening link: in the user state, the user state component can determine any user state process in the multiple user state processes as a candidate process that meets the preset screening requirement if each state parameter provided by the user state process meets the screening threshold value under the corresponding description dimension; wherein the screening threshold value is calculated according to the state parameter obtained under the corresponding description dimension.
[0109] For example, if the selected description dimension is the connection count and the busy count in the foregoing example, the user state component can calculate a first screening threshold value for the connection count description dimension and a second screening threshold value for the busy count description dimension according to the connection count and the busy count provided by each of the multiple user state processes. On this basis, the user state component can screen out the user state processes whose connection count exceeds the first screening threshold value and whose busy count exceeds the second screening threshold value from the multiple user state processes corresponding to the target application as candidate processes. Exemplarily, the screening threshold value can be a type of numerical value such as an average value or a median value, which is not limited herein.
[0110] Further, an optional implementation logic is provided for the screening concept in this exemplary screening scheme:
[0111] If the selected description dimension is multiple, multiple rounds of screening operations are sequentially started to sequentially use multiple description dimensions;
[0112] In the first round of screening operation, a first screening threshold value is calculated for the first description dimension used in the first round of screening operation according to the state parameters provided by the multiple user state processes under the first description dimension; if the state parameter of any user state process in the multiple user state processes under the first description dimension meets the first screening threshold value, the user state process is added to the screening list corresponding to the first round of screening operation;
[0113] In the non-first round of screening operation, a second screening threshold is calculated for the second description dimension according to the state parameter provided by the user-mode process contained in the screening list corresponding to the last round of screening operation in the non-first round of screening operation under the second description dimension; if the state parameter of any user-mode process in the screening list corresponding to the last round of screening operation under the second description dimension meets the second screening threshold, the user-mode process is added to the screening list corresponding to the non-first round of screening operation;
[0114] The user-mode process in the screening list generated after the last round of screening operation is determined as a candidate process.
[0115] It can be understood that in the optional implementation logic, the screening list can be narrowed down round by round, and the user-mode process contained in the screening list generated after the last round of screening operation meets the screening threshold of each state parameter under the corresponding description dimension. Accordingly, the screening list generated after the last round of screening operation can be used as the process list corresponding to the target application in this embodiment.
[0116] For this optional implementation logic, an exemplary engineering implementation can be:
[0117] In the user mode, a bitmap is defined, and a plurality of bits in the bitmap correspond to a plurality of user-mode processes one by one.
[0118] For the first round of screening operation, the value of the bit corresponding to the user-mode process meeting the first screening threshold in the bitmap is updated to a first value to represent that the user-mode process is added to the screening list corresponding to the first round of screening operation.
[0119] For the non-first round of screening operation, the value of the bit corresponding to the user-mode process meeting the first screening threshold in the bitmap is intersected with the first value.
[0120] If the value of the bit after intersection is still the first value, it represents that the user-mode process is added to the screening list corresponding to the non-first round of screening operation.
[0121] It can be understood that in this engineering implementation, a bitmap is maintained for the target application. Here, bitmap is the abbreviation of bitmap, and bitmap is to store a certain state in each bit. The bitmap can contain a plurality of bits, and the value of each bit can be 0 or 1 to identify the different states of the object. In this engineering implementation, the user-mode process is taken as the object pointed by the bit in the bitmap, and the value of the bit is used to represent whether the user-mode process is retained in the round of screening operation.
[0122] In the engineering implementation, the first value is 1. In this way, after the last round of screening operations is completed, if the value of any bit is still 1, it is determined that each state parameter provided by the user-mode process indicated by the bit meets the screening threshold in the corresponding description dimension, and the user-mode process can be added to the process list as a candidate process.
[0123] In this way, the bitmap can represent the candidate processes that should be included in the process list of the target application. On this basis, the user-mode component can provide the bitmap to an execution engine in the kernel mode for supporting the extension of kernel functions. The execution engine can load the bitmap into the kernel-mode storage space through a mapping mechanism supported by the execution engine. An exemplary mapping mechanism can be a key-value mechanism, in which the value in the mapping mechanism corresponds to the bitmap.
[0124] It should be noted that the engineering implementation described above is exemplary only, and other engineering implementations can also be used to record the user-mode processes retained in each round. For example, an array for recording the numbers corresponding to the user-mode processes retained in each round can be set for each round of screening operations, so that the user-mode processes retained in each round can be recorded through the array. No more examples are provided herein.
[0125] It should be noted that the implementation logic provided for the screening concept described above is also exemplary, and other implementation logics can also be used to determine whether each state parameter provided by a user-mode process meets the screening threshold in the corresponding description dimension. For example, the screening threshold for each description dimension can be calculated based on the state parameters provided by multiple user-mode processes, and then it can be determined whether each state parameter provided by each user-mode process meets the screening threshold in the description dimension. If yes, the user-mode process can be added to the process list. That is, instead of gradually narrowing the evaluation range as in the implementation logic provided for the screening concept described above, each user-mode process is evaluated with a uniform and unchanged screening threshold in each description dimension. No more examples are provided herein.
[0126] It should be noted that the screening scheme provided for the preliminary screening link described above is also exemplary only, and other exemplary screening schemes can also be used to implement the screening of the process list for the target application by the user-mode component. For example, if any state parameter provided by a user-mode process meets the screening threshold in the corresponding description dimension, the user-mode process can be added to the process list. That is, it is no longer required that each state parameter provided by the user-mode process meets the corresponding screening threshold as in the exemplary screening scheme described above. No more examples are provided herein.
[0127] In summary, reference can be made to Figure 5In the embodiment, the user mode component can be responsible for constructing the process list for the target application and delivering the process list to the kernel mode. Moreover, the process of constructing the process list by the user mode component can be independent of the scheduling process in the kernel mode component. The user mode component can update the process list corresponding to the target application in real time and deliver it to the kernel mode in real time according to a self-defined frequency, so as to ensure the freshness of the process list used in the kernel mode and improve the scheduling effect in the kernel mode.
[0128] Of course, in addition to the deployment mode of deploying the process list construction link in the user mode as proposed in the embodiments of the present application Figure 4 and Figure 5 , other deployment modes can also be used to deploy the process list construction link. For example, the sub-link of obtaining the state parameters provided by the plurality of user mode components can be deployed in the user mode, and the sub-link of filtering the process list for the target application based on the state parameters can be deployed in the kernel mode. In this regard, no more examples of deployment modes are given, and the embodiments of the present application do not limit the deployment modes. The inventors have found in the research process that the cost of extending the functions of the operating system in the user mode is relatively low. Therefore, deploying the process list construction link that needs to adapt to the diversity of application scene requirements in the user mode can better support the flexible extension of the process list construction link, so that the scheduling method provided by the embodiments of the present application can adapt to different application scene requirements more quickly.
[0129] It should be noted that in some of the processes described in the above embodiments and the accompanying drawings, a plurality of operations appear in a specific order, but it should be clearly understood that these operations can be executed or in parallel without the order in which they appear in this document. The serial numbers of the operations, such as 201, 202, etc., are only used to distinguish different operations, and the serial numbers themselves do not represent any execution order. In addition, these processes can include more or fewer operations, and the operations can be executed in sequence or in parallel. It should be noted that the "first", "second", etc. described herein are used to distinguish different filtering thresholds, filtering operations, etc. and do not represent the order of precedence. Also, "first" and "second" are not of different types.
[0130] Figure 6 A structural schematic diagram of a service device is provided for another exemplary embodiment of the present application. As shown in Figure 6As shown, the service device can include a memory 60, a processor 61, and a communication component 62. The memory 60 is configured to store one or more computer instructions issued by an operating system of the service device, and the processor 61, coupled with the memory 60 and the communication component 62, is configured to execute the computer instructions in the memory 60. The operating system includes a kernel mode and a user mode, a kernel mode component runs in the kernel mode and a user mode component runs in the user mode, and the kernel mode component and the user mode component issue one or more computer instructions to the memory 60 according to a scheduling scheme provided by the embodiment, so as to make the processor 61 execute the following steps:
[0131] In the kernel mode of the operating system, in response to receiving a connection request for a target application, a process list corresponding to the target application is obtained, the process list includes at least one candidate process selected from a plurality of user mode processes started for the target application, and a running state of the candidate process meets a preset filtering requirement;
[0132] A target process is allocated to the connection request from the candidate process included in the process list;
[0133] The connection request is scheduled to the target process, so that the target process processes the connection request.
[0134] In an optional embodiment, when the processor 61, in the kernel mode of the operating system, in response to receiving a connection request for a target application, obtains a process list corresponding to the target application, the processor 61 can be specifically configured to:
[0135] In the kernel mode of the operating system, in response to receiving a connection request for a target application, the process list is read from a kernel mode storage space, which is transferred from a user mode of the operating system.
[0136] In an optional embodiment, the processor 61 can be further configured to:
[0137] In the user mode of the operating system, state parameters respectively provided by the plurality of user mode processes for describing a running state are obtained;
[0138] According to the state parameters respectively corresponding to the plurality of user mode processes, at least one candidate process meeting the preset filtering requirement is selected from the plurality of user mode processes, so as to generate the process list;
[0139] The process list is transferred to a kernel mode storage space.
[0140] In an optional embodiment, when the processor 61, in the user mode of the operating system, obtains state parameters respectively provided by the plurality of user mode processes for describing a running state, the processor 61 can be specifically configured to:
[0141] reading, from a user space corresponding to the target application, state parameters written by the plurality of user space processes.
[0142] In an optional embodiment, the processor 61, when filtering out at least one candidate process from the plurality of user space processes that meets the preset filtering requirement, can be specifically configured to:
[0143] For any user space process in the plurality of user space processes, if each state parameter provided by the user space process meets the filtering threshold in the corresponding description dimension, the user space process is determined as a candidate process that meets the preset filtering requirement.
[0144] The filtering threshold is calculated according to the obtained state parameter in the corresponding description dimension.
[0145] In an optional embodiment, when the processor 61 determines that each state parameter provided by the user space process meets the filtering threshold in the corresponding description dimension, the processor 61 can be specifically configured to:
[0146] If the description dimension used is multiple, a plurality of rounds of filtering operations are sequentially started to sequentially use the plurality of description dimensions.
[0147] In the first round of filtering operation, a first filtering threshold is calculated for a first description dimension used in the first round of filtering operation according to state parameters provided by the plurality of user space processes in the first description dimension; if a state parameter in the first description dimension of any user space process in the plurality of user space processes meets the first filtering threshold, the user space process is added to a filtering list corresponding to the first round of filtering operation.
[0148] In a non-first round of filtering operation, a second filtering threshold is calculated for a second description dimension used in the non-first round of filtering operation according to state parameters provided by user space processes included in a filtering list corresponding to a previous round of filtering operation in the second description dimension; if a state parameter in the second description dimension of any user space process in the filtering list corresponding to the previous round of filtering operation meets the second filtering threshold, the user space process is added to a filtering list corresponding to the non-first round of filtering operation.
[0149] The user space processes in the filtering list generated after the last round of filtering operation are determined as the candidate processes.
[0150] In an optional embodiment, the processor 61 can also be configured to:
[0151] In the user mode of the operating system, a bitmap is defined, and a plurality of bits in the bitmap correspond to the plurality of user mode processes one by one;
[0152] For the first round of screening operations, the user mode process meeting the first screening threshold is updated to a first value at the bit corresponding to the user mode process in the bitmap, to represent that the user mode process is added to the screening list corresponding to the first round of screening operations;
[0153] For the non-first round of screening operations, the value of the bit corresponding to the user mode process in the bitmap is intersected with the first value;
[0154] If the value of the bit after intersection is still the first value, it represents that the user mode process is added to the screening list corresponding to the non-first round of screening operations.
[0155] In an optional embodiment, the state parameter includes a connection count and / or a queue count, the connection count is used to represent the number of connections that have been established and have not been released, and the queue count is used to represent the number of processing requests that have not been completed.
[0156] In an optional embodiment, the processor 61 can be specifically used for:
[0157] In the user mode of the operating system, an execution engine supporting the extension of the kernel function deployed in the kernel mode is called to pass the process list to the kernel mode storage space by using the execution engine.
[0158] In an optional embodiment, the processor 61 can be specifically used for:
[0159] In the kernel mode of the operating system, the connection establishment request is subjected to hash calculation to obtain a hash value corresponding to the connection establishment request;
[0160] Based on the hash value, the target process is allocated to the connection establishment request from the process list.
[0161] In an optional embodiment, the processor 61 can be further used for:
[0162] In the kernel mode, the function logic of the target function for allocating the user mode process is loaded as custom function logic by using the execution engine supporting the extension of the kernel function;
[0163] In the case of running to the target function in response to the connection establishment request, the scheduling of the connection establishment request is completed according to the custom function logic;
[0164] The custom function logic includes the operation of obtaining the process list corresponding to the target application and subsequent operations.
[0165] In an optional embodiment, the execution engine includes an extended Berkeley Packet Filter (eBPF).
[0166] Further, as shown in Figure 6 the service device also includes a power supply component 63 and other components. Figure 6 Some components are only schematically shown in the figure, and it does not mean that the service device only includes Figure 6 the components shown in the figure.
[0167] It is worth noting that the above technical details about the service device in each embodiment can refer to the above-mentioned related descriptions about the user mode component and the kernel mode component of the scheduling system in the system embodiment and the method embodiment. For the sake of brevity, they will not be repeated here, but this should not cause the loss of the protection scope of the present application.
[0168] Correspondingly, the embodiments of the present application also provide a computer readable storage medium storing a computer program, which can implement each step in the above method embodiments when executed.
[0169] Correspondingly, the embodiments of the present application also provide a computer program product, which includes a computer program that can implement each step in the above method embodiments when executed.
[0170] The above Figure 6 memory is used to store computer programs and can be configured to store other various data to support operations on the computing platform. Examples of these data include instructions of any application or method for operating on the computing platform, contact data, phonebook data, messages, pictures, videos, etc. The memory can be realized by any type of volatile or non-volatile storage device or their combination, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.
[0171] The above Figure 6The communication component is configured to facilitate wired or wireless communication between the device containing the communication component and other devices. The device containing the communication component can access wireless networks based on communication standards, such as WiFi, 2G, 3G, 4G / LTE, 5G, or combinations thereof. In one exemplary embodiment, the communication component receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, the communication component further includes a Near Field Communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on Radio Frequency Identification (RFID), Infrared Data Association (IrDA) technology, Ultra-Wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
[0172] The above Figure 6 The power supply component provides power to the various components of the device in which it resides. The power supply component may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which it resides.
[0173] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0174] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0175] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1the function specified in the one or more blocks.
[0176] These computer program instructions can also be loaded into computer or other programmable data processing devices, so that a series of operation steps are performed on the computer or other programmable data processing devices to generate computer-implemented processes, thus the instructions executed on the computer or other programmable data processing devices provide processes for implementing the flows Figure 1 one or more flows and / or blocks Figure 1 the steps of the function specified in the one or more blocks.
[0177] It should also be noted that the terms "comprising", "including", or any other variant thereof are intended to cover non-exclusive inclusion, so that processes, methods, articles or devices including a series of elements not only include those elements, but also include other elements not explicitly listed, or inherent to such processes, methods, articles or devices. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article or device including the element.
[0178] It should be noted that the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or refusal.
[0179] The above only describes the embodiments of the present application and is not intended to limit the present application. For those skilled in the art, the present application can have various modifications and changes. Any modification, equivalent replacement, improvement, etc. within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A scheduling method, characterized by, The application relates to an operating system for a service device, the operating system comprising a kernel mode and a user mode, and a target application running in the user mode of the operating system, and the method comprises the following steps: In the kernel mode of the operating system, a process list corresponding to the target application is acquired in response to receiving a connection request for the target application, the process list comprising at least one candidate process selected from a plurality of user mode processes started for the target application, and the running state of the candidate process meeting preset filtering requirements; A target process is allocated for the connection request from the candidate processes included in the process list; The connection request is dispatched to the target process so that the target process processes the connection request.
2. The method of claim 1, wherein, In response to receiving a connection request for a target application, a process list corresponding to the target application is acquired, comprising: In response to receiving a connection request for a target application, the process list is read from a kernel mode storage space and transmitted from the user mode of the operating system.
3. The method of claim 2, wherein, Further comprising: In the user mode of the operating system, state parameters for describing the running state are acquired from the plurality of user mode processes respectively; At least one candidate process meeting the preset filtering requirements is selected from the plurality of user mode processes according to the state parameters corresponding to the plurality of user mode processes respectively, so as to generate the process list; The process list is transmitted to the kernel mode storage space.
4. The method of claim 3, wherein, In the user mode of the operating system, state parameters for describing the running state are acquired from the plurality of user mode processes respectively, comprising: In the user mode of the operating system, the state parameters written by the plurality of user mode processes are read from the user mode storage space corresponding to the target application.
5. The method of claim 3, wherein, At least one candidate process meeting the preset filtering requirements is selected from the plurality of user mode processes, comprising: For any user mode process in the plurality of user mode processes, if each state parameter provided by the user mode process meets the filtering threshold value in the corresponding description dimension, the user mode process is determined as a candidate process meeting the preset filtering requirements; The filtering threshold value is calculated according to the acquired state parameters in the corresponding description dimension.
6. The method of claim 5, wherein, If each state parameter provided by the user mode process meets the filtering threshold value in the corresponding description dimension, the user mode process is determined as a candidate process meeting the preset filtering requirements, comprising: If the selected description dimension is multiple, a plurality of rounds of filtering operations are sequentially started to sequentially use the plurality of description dimensions; In the first round of filtering operation, a first filtering threshold value is calculated for the first description dimension used in the first round of filtering operation according to the state parameters provided by the plurality of user mode processes in the first description dimension; if the state parameter of any user mode process in the plurality of user mode processes in the first description dimension meets the first filtering threshold value, the user mode process is added to a filtering list corresponding to the first round of filtering operation. In a non-first round of screening operation, a second screening threshold is calculated for a second description dimension based on a state parameter provided by a user-mode process included in a screening list corresponding to a previous round of screening operation in the second description dimension used in the non-first round of screening operation; if the state parameter of any user-mode process in the screening list corresponding to the previous round of screening operation in the second description dimension meets the second screening threshold, the user-mode process is added to the screening list corresponding to the non-first round of screening operation. A user-mode process in the screening list generated after a last round of screening operation is determined as the candidate process.
7. The method of claim 6, wherein, Further comprising: a bitmap is defined in a user mode of the operating system, a plurality of bits in the bitmap correspond to the plurality of user-mode processes one by one; for the first round of screening operation, a value of a bit corresponding to a user-mode process meeting the first screening threshold in the bitmap is updated to a first value to represent that the user-mode process is added to the screening list corresponding to the first round of screening operation; for the non-first round of screening operation, a value of a bit corresponding to a user-mode process meeting the first screening threshold in the bitmap is intersected with the first value; if the value of the bit after intersection is still the first value, it represents that the user-mode process is added to the screening list corresponding to the non-first round of screening operation.
8. The method according to any one of claims 1 to 7, characterized in that, The state parameter includes a connection count and / or a queue count, the connection count is used to represent the number of established and not released connections, and the queue count is used to represent the number of not completed processing requests.
9. The method of claim 3, wherein, The process list is transmitted to a kernel mode storage space, including: in a user mode of the operating system, an execution engine supporting kernel function extension deployed in a kernel mode is called to transmit the process list to the kernel mode storage space by using the execution engine.
10. The method of claim 1, wherein, A target process is assigned to the connection establishment request from a candidate process included in the process list, including: in a kernel mode of the operating system, a hash calculation is performed on the connection establishment request to obtain a hash value corresponding to the connection establishment request; based on the hash value, the target process is assigned to the connection establishment request from the candidate process included in the process list.
11. The method of claim 1, wherein, Further comprising: in a kernel mode of the operating system, function logic of a target function for assigning a user-mode process is loaded as custom function logic by using an execution engine supporting kernel function extension; in a case where the target function is run in response to the connection establishment request, scheduling of the connection establishment request is completed according to the custom function logic; the custom function logic includes the operation of obtaining the process list corresponding to the target application and subsequent operations.
12. The method according to claim 9 or 11, characterized in that, The execution engine includes an extended Berkeley Packet Filter (eBPF).
13. A dispatch system characterized by, The scheduling system includes a kernel mode component and a user mode component, the kernel mode component runs in a kernel mode of the operating system, and the user mode component runs in a user mode of the operating system, based on the kernel mode component and the user mode component, the scheduling system is used to execute the scheduling method in any one of claims 1-12.
14. A service device, characterized by comprising a memory, a processor and a communication component; the memory is configured to store one or more computer instructions issued by an operating system; the processor is coupled to the memory and the communication component, and is configured to execute the one or more computer instructions for performing the scheduling method of any one of claims 1-12.
15. A computer readable storage medium storing a computer program, characterized in that, a computer program which, when executed by one or more processors, causes the one or more processors to perform the scheduling method of any one of claims 1-12.
16. A computer program product, characterised in that, a computer program product comprising a computer program which, when executed by one or more processors, causes the one or more processors to perform the scheduling method of any one of claims 1-12.