IP Library Granted Patent US 11,714,658
Granted Patent B2
US 11,714,658 · App. 16/556,596 · Granted Aug 1, 2023

Automated idle environment shutdown

Inventors: Richard Gardner (Leesburg, VA); Clayton Myers (Oak Hill, VA); Andrew Smith (Oakton, VA); Timothy Lang (McLean, VA); Hao Shen (Fairfax, VA)
Assignee: MicroStrategy Incorporated
G06F9/4416G06F11/3438G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,714,658
App. No.
16/556,596
Granted
Aug 1, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer-readable media, for automated idle environment shutdown. In some implementations, activity of a server environment is monitored over a period of time. A measure of user-initiated activity of the server environment is determined based on the monitored activity of the server environment over the period of time. The level of user-initiated activity over the period of time is determined to be less than a threshold level. In response to determining that the level of user-initiated activity over the period of time is less than the threshold level, shut down of the server environment is initiated.

Claims (51)

1. A method performed by one or more computers, the method comprising:

monitoring, by the one or more computers, a server environment to detect activity of the server environment over a period of time;

determining, by the one or more computers, an amount of the detected activity that corresponds to user requests or active user sessions over the period of time;

determining, by the one or more computers, that the amount of the detected activity corresponding to user requests or active user sessions is below a first threshold level;

generating, by the one or more computers, a usage prediction regarding an amount of future activity of the server environment predicted to be caused by user requests or active user sessions over a future time period, wherein generating the usage prediction comprises providing information indicating activity of the server environment to a machine learning model trained to provide output indicating a prediction of future user-initiated activity of the server environment, wherein the output of the machine learning model indicates at least one of: a prediction indicating an amount of use predicted to occur over the future time period; a likelihood that future use of at least a minimum level will occur over the future time period; or a predicted time when use is predicted to reach a particular level;

determining, by the one or more computers, that the usage prediction indicates a level of future activity from user requests or active user sessions that is less than a second threshold level, comprising determining that the output of the machine learning model indicates that user-initiated activity of the server environment is likely to be less than the second threshold level for at least a portion of the future time period; and

in response to (i) determining based on the output of the machine learning model that the amount of the detected activity corresponding to user requests or active user sessions over the period of time is below the first threshold level and (ii) determining that the usage prediction indicates a level of future activity from user requests or active user sessions that is less than the second threshold level, initiating, by the one or more computers, shutdown of the server environment.

2. The method of claim 1 , further comprising:

after shutting down the server environment, determining, based at least in part on prior usage of the server environment, that at least a minimum level of user-initiated activity is likely to occur; and

powering on the server environment in response to determining that at least the minimum level of user-initiated activity is likely to occur.

3. The method of claim 2 , comprising storing state information of the server environment, including data for one or more tasks running in the server environment, in non-volatile storage before shutting down the server environment; and

wherein re-starting the server environment comprises loading the state information and resuming the one or more tasks that were running in the server environment before shutting down the server environment.

4. The method of claim 1 , wherein the server environment is a virtual server environment, and shutting down the server environment comprises stopping the virtual server environment.

5. The method of claim 1 , wherein the server environment comprises one or more server computers, and shutting down the server environment comprises powering down the one or more server computers.

6. The method of claim 1 , wherein monitoring the server environment comprises monitoring at least one of: central processing unit utilization, memory usage, an amount of network bandwidth utilized, an amount of input or output operations, a number of tasks running, types of tasks running, priority levels of tasks running, a number of users logged in to the server environment, a number of users actively using the server environment, or a level of interactivity of running tasks.

7. The method of claim 1 , wherein monitoring the server environment comprises measuring utilization of the server environment over the period of time; and

wherein determining the amount of the detected activity that corresponds to user requests or active user sessions over the period of time comprises determining a portion of the measured utilization that supports active user sessions that receive user input at a rate that satisfies a predetermined threshold.

8. A system comprising:

one or more computers; and

one or more computer-readable media storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

monitoring, by the one or more computers, a server environment to detect activity of the server environment over a period of time;

determining, by the one or more computers, an amount of the detected activity that corresponds to user requests or active user sessions over the period of time;

determining, by the one or more computers, that the amount of the detected activity corresponding to user requests or active user sessions is below a first threshold level;

generating, by the one or more computers, a usage prediction regarding an amount of future activity of the server environment predicted to be caused by user requests or active user sessions over a future time period, wherein generating the usage prediction comprises providing information indicating activity of the server environment to a machine learning model trained to provide output indicating a prediction of future user-initiated activity of the server environment, wherein the output of the machine learning model indicates at least one of: a prediction indicating an amount of use predicted to occur over the future time period; a likelihood that future use of at least a minimum level will occur over the future time period; or a predicted time when use is predicted to reach a particular level;

determining, by the one or more computers, that the usage prediction indicates a level of future activity from user requests or active user sessions that is less than a second threshold level, comprising determining that the output of the machine learning model indicates that user-initiated activity of the server environment is likely to be less than the second threshold level for at least a portion of the future time period; and

in response to (i) determining based on the output of the machine learning model that the amount of the detected activity corresponding to user requests or active user sessions over the period of time is below the first threshold level and (ii) determining that the usage prediction indicates a level of future activity from user requests or active user sessions that is less than the second threshold level, initiating, by the one or more computers, shutdown of the server environment.

9. The system of claim 8 , wherein the operations further comprise:

after shutting down the server environment, determining, based at least in part on prior usage of the server environment, that at least a minimum level of user-initiated activity is likely to occur; and

powering on the server environment in response to determining that at least the minimum level of user-initiated activity is likely to occur.

10. The system of claim 9 , comprising storing state information of the server environment, including data for one or more tasks running in the server environment, in non-volatile storage before shutting down the server environment; and

wherein re-starting the server environment comprises loading the state information and resuming the one or more tasks that were running in the server environment before shutting down the server environment.

11. The system of claim 8 , wherein monitoring the server environment comprises measuring utilization of the server environment over the period of time; and

wherein determining the amount of the detected activity that corresponds to user requests or active user sessions over the period of time comprises determining a portion of the measured utilization that supports active user sessions that receive user input at a rate that satisfies a predetermined threshold.

12. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

monitoring, by the one or more computers, a server environment to detect activity of the server environment over a period of time;

determining, by the one or more computers, an amount of the detected activity that corresponds to user requests or active user sessions over the period of time;

determining, by the one or more computers, that the amount of the detected activity corresponding to user requests or active user sessions is below a first threshold level;

generating, by the one or more computers, a usage prediction regarding an amount of future activity of the server environment predicted to be caused by user requests or active user sessions over a future time period, wherein generating the usage prediction comprises providing information indicating activity of the server environment to a machine learning model trained to provide output indicating a prediction of future user-initiated activity of the server environment, wherein the output of the machine learning model indicates at least one of: a prediction indicating an amount of use predicted to occur over the future time period; a likelihood that future use of at least a minimum level will occur over the future time period; or a predicted time when use is predicted to reach a particular level;

determining, by the one or more computers, that the usage prediction indicates a level of future activity from user requests or active user sessions that is less than a second threshold level, comprising determining that the output of the machine learning model indicates that user-initiated activity of the server environment is likely to be less than the second threshold level for at least a portion of the future time period; and

in response to (i) determining based on the output of the machine learning model that the amount of the detected activity corresponding to user requests or active user sessions over the period of time is below the first threshold level and (ii) determining that the usage prediction indicates a level of future activity from user requests or active user sessions that is less than the second threshold level, initiating, by the one or more computers, shutdown of the server environment.

13. The method of claim 1 , wherein the detected activity includes (i) processing performed in response to user requests and (ii) processing that is not performed in response to user requests; and

wherein the amount of the detected activity that corresponds to user requests or active user sessions over the period of time excludes the processing that is not performed in response to user requests.

14. The method of claim 13 , wherein the processing not performed in response to user requests comprises activity of the server environment for performing monitoring, logging, maintenance, or scheduled tasks.

15. The method of claim 1 , wherein a total amount of detected activity for the server environment during the period of time is greater than the first threshold level, wherein the amount of the detected activity determined to correspond to user requests or active user sessions over the period of time is less than the first threshold level, and wherein shutdown of the server environment is initiated even though the total amount of detected activity is greater than the first threshold level.

16. The method of claim 1 , wherein the detected activity of the server environment comprises a set of tasks;

wherein the method comprises classifying a first subset of the tasks as system tasks and classifying a second subset of the tasks as user tasks; and

wherein the amount of the detected activity corresponding to user requests or active user sessions is an amount of activity for the second subset of the tasks.

17. The system of claim 8 , wherein a total amount of detected activity for the server environment during the period of time is greater than the first threshold level, wherein the amount of the detected activity determined to correspond to user requests or active user sessions over the period of time is less than the first threshold level, and wherein shutdown of the server environment is initiated even though the total amount of detected activity is greater than the first threshold level.

18. The system of claim 8 , wherein the system is configured to initiate shutdown of the server environment when the amount of the detected activity determined to correspond to user requests or active user sessions over the period of time is less than the first threshold level even though a total amount of detected activity of the server environment is greater than the first threshold level.

19. The one or more non-transitory computer-readable media of claim 12 , wherein a total amount of detected activity for the server environment during the period of time is greater than the first threshold level, wherein the amount of the detected activity determined to correspond to user requests or active user sessions over the period of time is less than the first threshold level, and wherein shutdown of the server environment is initiated even though the total amount of detected activity is greater than the first threshold level.

20. The one or more non-transitory computer-readable media of claim 12 , wherein the one or more computers are configured to initiate shutdown of the server environment when the amount of the detected activity determined to correspond to user requests or active user sessions over the period of time is less than the first threshold level even though a total amount of detected activity of the server environment is greater than the first threshold level.

Assignments (4)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072974/0529 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2019
From: GARDNER, RICHARD; MYERS, CLAYTON; SMITH, ANDREW; LANG, TIMOTHY; SHEN, HAO
To: MICROSTRATEGY INCORPORATED
Reel/Frame 050914/0935 →
Cited By (1)
US 12,547,943