IP Library Granted Patent US 12681743
Granted Patent B2
US 12681743 · App. 17/876,931 · Granted Jul 14, 2026

Virtual machine managing system using snapshot

Inventors: Shuai Ye (Nanjing, CN); Ke Xu (Nanjing, CN); Jian Luo (Nanjing, CN); Cheng Zhang (Nanjing, CN)
G06F9/45558G06N20/00G06F2009/4557
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 12681743
App. No.
17/876,931
Granted
Jul 14, 2026
Kind
B2
Abstract

Methods and systems for managing virtual machines are described herein. A virtualization computing platform may host a plurality of virtual machines comprising. The platform may detect that the first user device is disconnected from the first virtual machine and determine, using a machine learning model, that the first virtual machine, during a time period while the user device is disconnected, is in an idle state. The platform may obtain, based on the determination that the first virtual machine is in the idle state, a snapshot of the first virtual machine and cease hosting the first virtual machine. If the platform receives a request from a second user device associated with the same user account to continuing using the virtual application executed previously by the first virtual machine, the platform may establish a second virtual machine and load, to memory of the second virtual machine, information associated with the snapshot.

Claims (273)

1 . A method comprising:

hosting, by a virtualization computing platform, a plurality of virtual machines comprising a first virtual machine, wherein the first virtual machine is connected with a first user device associated with a user account;

detecting that the first user device is disconnected from the first virtual machine;

determining, using a machine learning model and based on computing resource usage, of the first virtual machine, during a time period while the user device is disconnected, that the first virtual machine is in an idle state;

obtaining, based on the determination that the first virtual machine is in the idle state, a snapshot of the first virtual machine;

ceasing hosting the first virtual machine;

establishing, based on a request from a second user device, a second virtual machine, wherein the second user device is associated with the user account; and

loading, to memory of the second virtual machine, information associated with the snapshot;

training, using training data comprising a plurality of input items each comprising information associated with computing resource usage of a virtual machine, the machine learning model to output a determination, corresponding to each input item, of whether the respective virtual machine is in the idle state or not;

receiving a plurality of user responses each indicating whether the determined idle state of a corresponding virtual machine is correct or not; and

updating, based on the plurality of user responses, the machine learning model; wherein the training of the machine learning model is according to the following formula:

Loss

N

(

θ

)

=

1

N

i

{

-

[

y

i

*

log

(

p

i

θ

)

+

(

1

-

y

i

)

+

log

(

1

-

p

i

θ

)

]

×

t

i

λ

+

t

i

}

wherein:

N=a total number of samples;

yi=expected idle/busy state of the ith sample;

θ=parameters of the machine learning;

pi_θ=prediction result made by the machine learning with parameters θ;

ti=disconnection time period of the ith sample;

λ=a non-trainable hyperparameter; and

wherein a training goal is to adjust the parameters θ to minimize the Loss N (θ) by leveraging Stochastic Gradient Descent optimizer

D

ˇ

=

arg

min

θ

Loss

N

.

2 . The method of claim 1 , wherein the computing resource usage comprises at least one of:

processor usage;

memory usage; or

network usage.

3 . The method of claim 1 , further comprises:

sending, after the determination that the first virtual machine is in the idle state, before the ceasing hosting of the first virtual machine, and to a third user device associated with the user account, a notification that the hosting of the first virtual machine is to be ceased; and

wherein the ceasing hosting the first virtual machine is further based on a determination that a declination to ceasing hosting the first virtual machine is not received during a second time period.

4 . The method of claim 1 , wherein the plurality of virtual machines further comprises a third virtual machine connected with a third user device, and wherein the method further comprises:

determining that the third virtual machine is in the idle state;

sending, after the determination that the third virtual machine is in the idle state, a notification that the hosting of the third virtual machine is to be ceased;

receiving a response, to the notification, that declines to cease hosting the third virtual machine; and

determining, based on the response, that the third virtual machine is in a busy state.

5 . The method of claim 1 , wherein the first virtual machine is managed by a virtual delivery agent (VDA).

6 . The method of claim 1 , further comprises:

determining that utilization of one or more computing resources associated with the virtual computing platform exceeds a threshold, and wherein the ceasing of hosting the first virtual machine is further based on the determination.

7 . An apparatus, comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

host a plurality of virtual machines comprising a first virtual machine, wherein the first virtual machine is connected with a first user device associated with a user account;

detect that the first user device is disconnected from the first virtual machine;

determine, using a machine learning model and based on computing resource usage, of the first virtual machine, during a time period while the user device is disconnected, that the first virtual machine is in an idle state;

obtain, based on the determination that the first virtual machine is in the idle state, a snapshot of the first virtual machine;

cease hosting the first virtual machine;

establish, based on a request from a second user device, a second virtual machine, wherein the second user device is associated with the user account; and

load, to memory of the second virtual machine, information associated with the snapshot;

train, using training data comprising a plurality of input items each comprising information associated with computing resource usage of a virtual machine, the machine learning model to output a determination, corresponding to each input item, of whether the respective virtual machine is in the idle state or not:

receive a plurality of user responses each indicating whether the determined idle state of a corresponding virtual machine is correct or not; and

update, based on the plurality of user responses, the machine learning model;

wherein training the machine learning model comprises training the machine learning model according to the following formula:

Loss

N

(

θ

)

=

1

N

i

{

-

[

y

i

*

log

(

p

i

θ

)

+

(

1

-

y

i

)

+

log

(

1

-

p

i

θ

)

]

×

t

i

λ

+

t

i

}

wherein

N=a total number of samples;

yi=expected idle/busy state of the ith sample;

θ=parameters of the machine learning;

pi_θ=prediction result made by the machine learning with parameters θ;

ti=disconnection time period of the ith sample;

λ=a non-trainable hyperparameter; and

wherein a training goal is to adjust the parameters θ to minimize the Loss N (θ) by leveraging Stochastic Gradient Descent optimizer

D

ˇ

=

arg

min

θ

Loss

N

.

8 . The apparatus of claim 7 , wherein the computing resource usage comprises at least one of:

processor usage;

memory usage; or

network usage.

9 . The apparatus of claim 7 , wherein the instructions, when executed by the one or more processors, cause the apparatus further to:

send, after the determination that the first virtual machine is in the idle state, before the ceasing hosting of the first virtual machine, and to a third user device associated with the user account, a notification that the hosting of the first virtual machine is to be ceased; and

wherein the ceasing hosting the first virtual machine is further based on a determination that a declination to ceasing hosting the first virtual machine is not received during a second time period.

10 . The apparatus of claim 7 , wherein the plurality of virtual machines further comprises a third virtual machine connected with a third user device, and wherein the instructions, when executed by the one or more processors, cause the apparatus further to:

determine that the third virtual machine is in the idle state;

send, after the determination that the third virtual machine is in the idle state, a notification that the hosting of the third virtual machine is to be ceased;

receive a response, to the notification, that declines to cease hosting the third virtual machine; and

determine, based on the response, that the third virtual machine is in a busy state.

11 . The apparatus of claim 7 , wherein the first virtual machine is managed by a virtual delivery agent (VDA).

12 . The apparatus of claim 7 , wherein the instructions, when executed by the one or more processors, cause the apparatus further to:

determine that utilization of one or more computing resources associated with the virtual computing platform exceeds a threshold, and wherein the ceasing of hosting the first virtual machine is further based on the determination.

13 . A non-transitory computer-readable medium storing computer instruction that, when executed by one or more processors of a computing device, cause:

hosting a plurality of virtual machines comprising a first virtual machine, wherein the first virtual machine is connected with a first user device associated with a user account;

detecting that the first user device is disconnected from the first virtual machine;

determining, using a machine learning model and based on computing resource usage, of the first virtual machine, during a time period while the user device is disconnected, that the first virtual machine is in an idle state;

obtaining, based on the determination that the first virtual machine is in the idle state, a snapshot of the first virtual machine;

ceasing hosting the first virtual machine;

establishing, based on a request from a second user device, a second virtual machine, wherein the second user device is associated with the user account; and

loading, to memory of the second virtual machine, information associated with the snapshot;

wherein the instructions, when executed by the one or more processors, cause the computing device to train the machine learning model according to the following formula:

Loss

N

(

θ

)

=

1

N

i

{

-

[

y

i

*

log

(

p

i

θ

)

+

(

1

-

y

i

)

+

log

(

1

-

p

i

θ

)

]

×

t

i

λ

+

t

i

}

wherein:

N=a total number of samples;

yi=expected idle/busy state of the ith sample;

θ=parameters of the machine learning;

pi_θ=prediction result made by the machine learning with parameters θ;

ti=disconnection time period of the ith sample;

λ=a non-trainable hyperparameter; and

wherein a training goal is to adjust the parameters θ to minimize the Loss N (θ) by leveraging Stochastic Gradient Descent optimizer

D

ˇ

=

arg

min

θ

Loss

N

.

14 . The non-transitory computer-readable medium of claim 13 , wherein the computing resource usage comprises at least one of:

processor usage;

memory usage; or

network usage.

15 . The non-transitory computer-readable medium of claim 13 , wherein the instructions, when executed by the one or more processors, cause the computing device further to perform actions comprising:

training, using training data comprising a plurality of input items each comprising information associated with computing resource usage of a virtual machine, the machine learning model to output a determination, corresponding to each input item, of whether the respective virtual machine is in the idle state or not;

receiving a plurality of user responses each indicating whether the determined idle state of a corresponding virtual machine is correct or not; and

updating, based on the plurality of user responses, the machine learning model.