Providing visibility and recommendations for batch processing
Techniques implemented by batch-processing service to provide users with visibility around execution metrics for their batch jobs, and determine more optimal scheduling policies and/or scaling algorithms for executing batch jobs. The batch-processing service may collect telemetry data for batch jobs, and analyze the telemetry data to generate execution metrics for the batch jobs. The batch-processing service uses these execution metrics to generate various visualizations that may be presented to users to provide the users with more visibility into the performance of their batch jobs. Additionally, the batch-processing service may analyze the execution metrics, and determine more optimized scheduling policies and/or scaling algorithms to use for running the batch jobs. In this way, the batch-processing service can increase the visibility given to users around the performance of their batch jobs, and can also identify modifications to scheduling and scaling in order to improve the performance of the batch jobs.
1 . A method executed at least partly by a batch-processing service of a service provider network, the method comprising:
receiving, via a job queue of the batch-processing service, a request to execute a batch job on behalf of a user account registered with the batch-processing service;
executing, according to a first scheduling policy of the user account, the batch job on a plurality of virtual compute instances managed by the batch-processing service;
receiving telemetry data associated with the executing of the batch job on the plurality of virtual compute instances, wherein the telemetry data is based on amounts of computing resources utilized by the batch job during the executing;
generating a visualization that includes a graphical representation of a plurality of execution metrics over time for the batch job, wherein the plurality of execution metrics is based on the telemetry data, represent overall performance of the executing of the batch job on the plurality of virtual compute instances, and comprise a job duration metric and a queue depth metric indicating an average number of jobs in the job queue over time;
outputting a second scheduling policy by the batch-processing service utilizing one or more models and the plurality of execution metrics, wherein the one or more models have been trained using training data for batch jobs executing on the plurality of virtual compute instances with an average run time less than a permissible threshold;
automatically executing at least one subsequent batch job on the plurality of virtual compute instances on behalf of the user account using the second scheduling policy, wherein the second scheduling policy is more optimized than the first scheduling policy to schedule subsequent batch jobs on behalf of the user account; and
providing the user account with access to the second scheduling policy and the visualization of the plurality of execution metrics.
2 . The method of claim 1 , wherein the telemetry data is associated with the executing of a plurality of batch jobs including the batch job, and the visualization of the plurality of execution metrics depicts one or more of:
first amounts of time between when executions for each of the plurality of batch jobs were requested and when the executions for each of the plurality of batch jobs were started;
second amounts of time between when executions for each of the plurality of batch jobs were started and when the executions for each of the plurality of batch jobs were completed;
a first number of the plurality of batch jobs that were submitted over a period of time;
a second number of the plurality of batch jobs for which execution was completed;
a third number of the plurality of batch jobs that failed to be executed; or
a fourth number of the plurality of batch jobs in the job queue over a period of time.
3 . The method of claim 1 , further comprising:
receiving a subsequent request to execute a subsequent batch job that at least partially corresponds to the batch job; and
using a modified scaling algorithm or a second scaling algorithm, executing the subsequent batch job on a number of the plurality of virtual compute instances managed by the batch-processing service, wherein:
the number is based on a first scaling algorithm,
the modified scaling algorithm is based on a modification of the first scaling algorithm using the plurality of execution metrics, and
the second scaling algorithm is based on the plurality of execution metrics.
4 . A system comprising:
one or more processors; and
one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to execute operations comprising:
causing execution of a batch job on a plurality of virtual compute instances associated with a batch-processing service according to a first scheduling policy of a user account associated with the batch job;
receiving telemetry data associated with the execution of the batch job on the plurality of virtual compute instances, wherein the telemetry data is based on amounts of computing resources utilized by the batch job during the execution;
generating a visualization that includes a graphical representation of a plurality of execution metrics over time for the batch job, wherein the plurality of execution metrics is based on the telemetry data, represent overall performance of the executing of the batch job on the plurality of virtual compute instances, and comprise a job duration metric and a queue depth metric indicating an average number of jobs in the job queue over time;
outputting a second scheduling policy by the batch-processing service utilizing one or more models and the plurality of execution metrics, wherein the one or more models have been trained using training data for batch jobs executing on the plurality of virtual compute instances with an average run time less than a permissible threshold;
automatically executing at least one subsequent batch job on the plurality of virtual compute instances on behalf of the user account using the second scheduling policy, wherein the second scheduling policy is more optimized than the first scheduling policy to schedule subsequent batch jobs on behalf of the user account; and
providing the user account with access to the second scheduling policy and the visualization of the plurality of execution metrics.
5 . The system of claim 4 , the operations further comprising:
executing, using the batch-processing service, the batch job at a first time, wherein the first time is based on the first scheduling policy associated with the user account; and
storing an association between the user account and the second scheduling policy such that the second scheduling policy is used to schedule execution of the at least one subsequent batch job.
6 . The system of claim 4 , the operations further comprising:
receiving a request to execute the at least one subsequent batch job on behalf of the user account; and
using a modified scaling algorithm or a second scaling algorithm different from a first scaling algorithm, executing the at least one subsequent batch job on a second number of virtual compute instances managed by the batch-processing service, wherein:
a first number of virtual compute instances is based on the first scaling algorithm,
the modified scaling algorithm is based on a modification of the first scaling algorithm using the plurality of execution metrics or another execution metric, and
the second scaling algorithm is based on the plurality of execution metrics or another execution metric.
7 . The system of claim 4 , the operations further comprising: causing, by the batch-processing service, execution of the at least one subsequent batch job on behalf of the user account over a period of time.
8 . The system of claim 4 , wherein the visualization that includes the graphical representation of the plurality of execution metrics includes one or more of:
first amounts of time between when execution of the at least one subsequent batch job was submitted and when the execution of the at least one subsequent batch job was started; or
second amounts of time between when execution of the at least one subsequent batch job was started and when the execution of the at least one subsequent batch job was completed.
9 . The system of claim 4 , wherein the visualization that includes the graphical representation of the plurality of execution metrics includes one or more of:
a first number of the at least one subsequent batch job that was submitted over a period of time;
a second number of the at least one subsequent batch job for which execution was completed;
a third number of the at least one subsequent batch job that failed to be executed; or
a fourth number of the at least one subsequent batch job in a job queue over a period of time.
10 . The system of claim 4 , wherein the visualization that includes the graphical representation of the plurality of execution metrics includes one or more of:
a virtual instance type of the virtual compute instances, wherein the batch-processing service offers a plurality of virtual instance types on which to execute batch jobs;
a primary computing resource type utilized during execution of the batch job;
an amount of a particular computing resource type utilized during execution of the batch job; or
a total amount of computing resources utilized during execution of the batch job.
11 . The system of claim 4 , the operations further comprising:
receiving input from the user account indicating a threshold indicating a minimum performance metric for the execution of the batch job; and
responsive to a specific execution metric violating the threshold indicating the minimum performance metric, sending an alert to the user account indicating that the specific execution metric for the batch job violated the threshold indicating the minimum performance metric.
12 . The system of claim 4 , the operations further comprising:
prior to a time at which execution of the batch job is to be executed, scaling up a portion of the virtual compute instances used to execute the batch job, wherein the time is based on a historical execution pattern according to which the batch job is executed during a period of time, and wherein the historical execution pattern is based on the telemetry data.
13 . The system of claim 4 , the operations further comprising:
scaling up the virtual compute instances according to a first scaling algorithm to use for executing the batch job;
scaling up second virtual compute instances according to a modified scaling algorithm or a second scaling algorithm that differs from the first scaling algorithm to use for executing the at least one subsequent batch job; and
executing the at least one subsequent batch job on behalf of the user account, wherein:
the modified scaling algorithm is based on a modification of the first scaling algorithm using the plurality of execution metrics or another execution metric, and
the second scaling algorithm is based on the plurality of execution metrics or another execution metric.
14 . The system of claim 4 , wherein: the plurality of execution metrics indicates a number of idle virtual compute instances of the virtual compute instances; and the visualization depicts the number of the idle virtual compute instances.
15 . A method comprising:
receiving, at a batch-processing service, a request to execute a batch job on behalf of a user account registered with the batch-processing service;
causing execution of the batch job on a plurality of virtual compute instances associated with the batch-processing service according to a first scheduling policy of the user account;
receiving telemetry data associated with the execution of the batch job on the plurality of virtual compute instances, wherein the telemetry data is based on amounts of computing resources utilized by the batch job during the execution;
generating a visualization that includes a graphical representation of a plurality of execution metrics over time for the batch job, wherein the plurality of execution metrics is based on the telemetry data, represent overall performance of the executing of the batch job on the plurality of virtual compute instances, and comprise a job duration metric and a queue depth metric indicating an average number of jobs in the job queue over time;
outputting a second scheduling policy by the batch-processing service utilizing one or more models and the plurality of execution metrics, wherein the one or more models have been trained using training data for batch jobs executing on the plurality of virtual compute instances with an average run time less than a permissible threshold;
automatically executing at least one subsequent batch job on the plurality of virtual compute instances on behalf of the user account using the second scheduling policy, wherein the second scheduling policy is more optimized than the first scheduling policy to schedule a plurality of subsequent batch jobs on behalf of the user account; and
providing the user account with access to the second scheduling policy and the visualization of the plurality of execution metrics.
16 . The method of claim 15 , further comprising: receiving input from the user account indicating another request to use the second scheduling policy to schedule the plurality of subsequent batch jobs.
17 . The method of claim 15 , further comprising:
receiving a request to execute the subsequent batch job on behalf of the user account; and
using a modified scaling algorithm or a second scaling algorithm, executing the batch job on a second number of virtual compute instances managed by the batch-processing service, wherein:
a first number of virtual compute instances is based on the first scaling algorithm,
the modified scaling algorithm is based on a modification of the first scaling algorithm using the plurality of execution metrics or another execution metric, and
the second scaling algorithm is based on the plurality of execution metrics or another execution metric.
18 . The method of claim 15 , further comprising: causing, by the batch-processing service, execution of a plurality of batch jobs on behalf of the user account over a period of time.
19 . The method of claim 18 , wherein the visualization that includes the graphical representation of the plurality of execution metrics includes one or more of:
first amounts of time between when executions for each of the plurality of batch jobs were submitted and when the executions for each of the plurality of batch jobs were started; or
second amounts of time between when executions for each of the plurality of batch jobs were started and when the executions for each of the plurality of batch jobs were completed.
20 . The method of claim 18 , wherein the visualization that includes the graphical representation of the plurality of execution metrics includes one or more of:
a first number of the plurality of batch jobs that were submitted over a period of time;
a second number of the plurality of batch jobs for which execution was completed;
a third number of the plurality of batch jobs that failed to be executed; or
a fourth number of the plurality of batch jobs in a job queue over a period of time.