| CPC G06F 9/4881 (2013.01) [G06F 9/3877 (2013.01); G06F 9/5038 (2013.01); G06F 9/505 (2013.01)] | 9 Claims |

|
1. A method comprising:
allocating a shared portion of a plurality of processor cores in a data storage system, wherein processor cores in the shared portion of the processor cores are shared between a storage system application located in the data storage system and a containerized service also located in the data storage system;
allocating a non-shared portion of the processor cores, wherein processor cores in the non-shared portion of the processor cores are used exclusively by the storage system application;
using, by the storage system application, processor cores in the shared portion of the processor cores to execute background tasks performed by the storage system application, wherein using processor cores in the shared portion of the processor cores to execute the background tasks performed by the storage system application includes:
determining a total number of processor cores currently needed to execute the background tasks performed by the storage system application, and
in response to determining that the total number of processor cores currently needed to execute the background tasks performed by the storage system application is not greater than a total number of processor cores within the shared portion of the processor cores, using only processor cores that are within the shared portion of the processor cores to execute the background tasks performed by the storage system application;
using, by the storage system application, while only processor cores that are within the shared portion of the processor cores are simultaneously being used to execute the background tasks performed by the storage system application, processor cores in the non-shared portion of the processor cores to execute host Input/Output (I/O) request processing performed by the storage system application;
wherein the containerized service provides a file-based data storage service to one or more hosts;
wherein the storage system application provides a block-based data storage service to one or more hosts;
in response to determining that the total number of processor cores currently needed to execute the background tasks performed by the storage system application is currently less than the total number of processor cores within the shared portion of the processor cores, using all processor cores that are within the non-shared portion of the processor cores and at least one processor core within the shared portion of the processor cores that is not currently being used to execute the background tasks performed by the storage system application to execute host I/O request processing performed by the storage system application;
assigning an amount of host I/O request processing to the at least one processor core within the shared portion of the processor cores that is smaller than an amount of host I/O request processing that is assigned to the processor cores within the non-shared portion of the processor cores;
periodically yielding, by the storage system application, at least one of the processor cores in the shared portion of the processor cores for preferred execution of the containerized service with respect to execution of the storage system application, wherein a frequency at which the storage system application yields the at least one processor core in the shared portion of the processor cores for preferred execution of the containerized service with respect to execution of the storage system application is increased in response to detecting a high load on the containerized service; and
whereby using processor cores within the shared portion of the processor cores to execute the background tasks performed by the storage system application and processor cores within the non-shared portion of the processor cores to execute host I/O request processing performed by the storage system application advantageously improves processor core utilization while also avoiding undesirable increases in host I/O request processing latency that would result from execution of host I/O request processing being interrupted by execution of the containerized service on the processor cores within the shared portion of the processor cores.
|