Managing computing resource consumption of software applications using control groups to facilitate safety compliance
A system can be provided for managing computing resource consumption of user loaded software applications using control groups to facilitate safety compliance. For example, the system can detect an interference event between a user application executing within safety management system and a functional safety application executing within the safety management system. In response to detecting the interference event, the system can generate a control group for the user application. The control group can specify a portion of system resources of the safety management system to allocate to the user application. The system can then migrate the user application to the control group to allocate the portion of the system resources to the user application. In doing so, reoccurrence of the interference event can be prevented.
1 . A system comprising:
a processing device; and
a memory device that includes instructions executable by the processing device for causing the processing device to perform operations comprising:
detecting an interference event between a user application executing within a safety management system and a functional safety application executing within the safety management system, the interference event being associated with a system resource of the safety management system used by the functional safety application and the user application, the system resource of the safety management system comprising central processing unit (CPU), memory, and disk input/output (I/O) bandwidth;
in response to detecting the interference event:
determining a first portion of the system resource required for executing the functional safety application, the first portion of the system resource comprising a first portion of the CPU, a first portion of the memory, and a first portion of the disk I/O bandwidth;
determining a second portion of the system resource that is separate from the first portion of the system resource, the second portion of the system resource comprising a second portion of the CPU, a second portion of the memory, and a second portion of the disk I/O bandwidth that are separate from the first portion of the CPU, the first portion of the memory, and the first portion of the disk I/O bandwidth; and
generating a control group for the user application, the control group being a kernel-level mechanism usable to associate the user application with the second portion of the system resource; and
migrating the user application to the control group, wherein migrating the user application to the control group allocates the second portion of the system resource to the user application and limits access by the user application to the second portion of the system resource to prevent reoccurrence of the interference event.
2 . The system of claim 1 , wherein the interference event comprises a memory allocation collision event.
3 . The system of claim 1 , wherein the interference event is related to central processing unit (CPU) usage.
4 . The system of claim 1 , wherein the interference event is related to disk input/output (I/O) bandwidth usage.
5 . The system of claim 1 , wherein the operations further comprise, subsequent to detecting the interference event, identifying the user application by accessing a running application list comprising an indication that that user application was executing at a time corresponding to the interference event.
6 . The system of claim 1 , wherein the interference event is detected based on a diagnostic log file that is generated by the functional safety application.
7 . A method comprising:
detecting, by a processing device, an interference event between a user application executing within a safety management system and a functional safety application executing within the safety management system, the interference event being associated with a system resource of the safety management system used by the functional safety application and the user application, the system resource of the safety management system comprising central processing unit (CPU), memory, and disk input/output (I/O) bandwidth;
in response to detecting the interference event:
determining, by the processing device, a first portion of the system resource required for executing the functional safety application, the first portion of the system resource comprising a first portion of the CPU, a first portion of the memory, and a first portion of the disk I/O bandwidth;
determining, by the processing device, a second portion of the system resource that is separate from the first portion of the system resource, the second portion of the system resource comprising a second portion of the CPU, a second portion of the memory, and a second portion of the disk I/O bandwidth that are separate from the first portion of the CPU, the first portion of the memory, and the first portion of the disk I/O bandwidth; and
generating, by the processing device, a control group for the user application, the control group being a kernel-level mechanism usable to associate the user application with the second portion of the system resource; and
migrating, by the processing device, the user application to the control group, wherein migrating the user application to the control group allocates the second portion of the system resource to the user application and limits access by the user application to second portion of the system resource to prevent reoccurrence of the interference event.
8 . The method of claim 7 , wherein the interference event comprises a memory allocation collision event.
9 . The method of claim 7 , wherein the interference event is related to central processing unit (CPU) usage.
10 . The method of claim 7 , wherein the interference event is related to disk input/output (I/O) bandwidth usage.
11 . The method of claim 7 , further comprising, subsequent to detecting the interference event, identifying the user application by accessing a running application list comprising an indication that that user application was executing at a time corresponding to the interference event.
12 . The method of claim 7 , wherein the interference event is detected based on a diagnostic log file that is generated by the functional safety application.
13 . A non-transitory computer-readable medium comprising instructions that are executable by a processing device for causing the processing device to perform operations comprising:
detecting an interference event between a user application executing within a safety management system and a functional safety application executing within the safety management system, the interference event being associated with a system resource of the safety management system used by the functional safety application and the user application, the system resource of the safety management system comprising central processing unit (CPU), memory, and disk input/output (I/O) bandwidth;
in response to detecting the interference event:
determining a first portion of the system resource required for executing the functional safety application, the first portion of the system resource comprising a first portion of the CPU, a first portion of the memory, and a first portion of the disk I/O bandwidth;
determining a second portion of the system resource that is separate from the first portion of the system resource, the second portion of the system resource comprising a second portion of the CPU, a second portion of the memory, and a second portion of the disk I/O bandwidth that are separate from the first portion of the CPU, the first portion of the memory, and the first portion of the disk I/O bandwidth; and
generating a control group for the user application, the control group being a kernel-level mechanism usable to associate the user application with the second portion of the system resource; and
migrating the user application to the control group, wherein migrating the user application to the control group allocates the second portion of the system resource to the user application and limits access by the user application to second portion of the system resource to prevent reoccurrence of the interference event.
14 . The non-transitory computer-readable medium of claim 13 , wherein the interference event comprises a memory allocation collision event.
15 . The non-transitory computer-readable medium of claim 13 , wherein the interference event is related to central processing unit (CPU) usage.
16 . The non-transitory computer-readable medium of claim 13 , wherein the interference event is related to disk input/output (I/O) bandwidth usage.
17 . The non-transitory computer-readable medium of claim 13 , wherein the operations further comprise, subsequent to detecting the interference event, identifying the user application by accessing a running application list comprising an indication that that user application was executing at a time corresponding to the interference event.