Adaptive virtual desktop session placement on host servers via user logoff prediction
Systems and methods are provided for grouping remote desktop sessions on servers in remote desktop environments according to predicted user logoff times so that sessions with similar predicted logoff times can be placed together on the servers, allowing for more efficient utilization of servers. A user can request a virtual desktop session. Once the request is received, a predicted logoff time for the session can be determined and the session can be placed on one of available host servers based on the predicted logoff time. Different logoff time ranges can be assigned to different servers and sessions can be grouped on the servers according to predicted logoff time.
1 . A method of initiating a session on a client device in a remote desktop environment, the method, comprising:
receiving, at a session placement manager over a network, a request from the client device to initiate the session for a user, the session placement manager having historical user session data for the user;
determining, by the session placement manager, one or more buckets by defining a corresponding range of session logoff times for each of the one or more buckets;
assigning the one or more buckets among the plurality of host servers;
executing, by the session placement manager in cooperation with a virtual desktop agent in a host server of a plurality of host servers in the remote desktop environment, the session on the host server, the host server having a virtual desktop with which to execute the session, the virtual desktop executing another session, the session having a predicted logoff time, based on a logon time of the session and the historical user session data, which is within a range of another predicted logoff time of the other session, the host server of the plurality of host servers being assigned the range of a plurality of ranges;
identifying a bucket of the one or more buckets with a corresponding time range that includes the predicted logoff time of the session;
selecting, by the session placement manager, the server of the plurality of servers assigned to the bucket as identified; and
transmitting, by the virtual desktop agent to a virtual desktop client executing on the client device, encoded virtual display information to display the session of the virtual desktop.
2 . The method of claim 1 , wherein a logoff time range is assigned to the determined host server and the session placement manager places sessions with predicted logoff times that fall within the assigned logoff time range onto the determined host server.
3 . The method of claim 1 , wherein the session placement manager predicts the logoff time for the session based on the time that the session is requested and based on historical data about session durations of previous virtual desktop sessions of the user.
4 . The method of claim 1 , wherein the session placement manager determines the one or more buckets based on data about previous session logoff times of a plurality of users.
5 . The method of claim 1 , wherein the session placement manager determines the one or more buckets based on a session placement bucket model, the session placement bucket model comprising the steps of:
determining, based on historical data about previous sessions of a plurality of users, predicted sessions that log off during a predefined modelled period and corresponding predicted logoff times of the predicted sessions; and
determining one or more optimized buckets for placing the predicted sessions during the modelled period based on the predicted session logoff times and based on a maximum number of permitted sessions in each optimized bucket, wherein determining the one or more optimized buckets comprises determining a corresponding range of session logoff times for each of the one or more optimized buckets.
6 . The method of claim 1 , wherein the session placement manager is configured to determine the host server based on a session logoff prediction model, a session placement bucket model, and a placement strategy.
7 . A computing device configured to initiate a session on a client device in a remote desktop environment, comprising:
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:
receiving, at a session placement manager, a request from the client device to initiate the session for a user, the session placement manager having historical user session data for the user;
determining, by the session placement manager, one or more buckets by defining a corresponding range of session logoff times for each of the one or more buckets;
assigning the one or more buckets among the plurality of host servers;
executing, by the session placement manager in cooperation with a virtual desktop agent in a host server of a plurality of host servers in the remote desktop environment, the session on the host server, the host server having a virtual desktop with which to execute the session, the virtual desktop executing another session, the session having a predicted logoff time, based on a logon time of the session and the historical user session data, which is within a range of another predicted logoff time of the other session, the host server of the plurality of host servers being assigned the range of a plurality of ranges;
identifying a bucket of the one or more buckets with a corresponding time range that includes the predicted logoff time of the session;
selecting, by the session placement manager, the server of the plurality of servers assigned to the bucket as identified; and
transmitting, by the virtual desktop agent to a virtual desktop client executing on the client device, encoded virtual display information to display the session of the virtual desktop.
8 . The computing device of claim 7 , wherein a logoff time range is assigned to the determined host server and the session placement manager places sessions with predicted logoff times that fall within the assigned logoff time range onto the determined host server.
9 . The computing device of claim 7 , wherein the session placement manager predicts the logoff time for the session based on the time that the session is requested and based on historical data about session durations of previous virtual desktop sessions of the user.
10 . The computing device of claim 7 , wherein the session placement manager determines the one or more buckets based on data about previous session logoff times of a plurality of users.
11 . The computing device of claim 7 , wherein the session placement manager determines the one or more buckets based on a session placement bucket model, the session placement bucket model comprising the steps of:
determining, based on historical data about previous sessions of a plurality of users, predicted sessions that log off during a predefined modelled period and corresponding predicted logoff times of the predicted sessions; and
determining one or more optimized buckets for placing the predicted sessions during the modelled period based on the predicted session logoff times and based on a maximum number of permitted sessions in each optimized bucket, wherein determining the one or more optimized buckets comprises determining a corresponding range of session logoff times for each of the one or more optimized buckets.
12 . The computing device of claim 7 , wherein the session placement manager is configured to determine the host server based on a session logoff prediction model, a session placement bucket model, and a placement strategy.
13 . A non-transitory computer readable storage medium for initiating a session on a client device in a remote desktop environment, comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:
receiving, at a session placement manager, a request from the client device to initiate the session for a user, the session placement manager having historical user session data for the user;
determining, by the session placement manager, one or more buckets by defining a corresponding range of session logoff times for each of the one or more buckets;
assigning the one or more buckets among the plurality of host servers;
executing, by the session placement manager in cooperation with a virtual desktop agent in a host server of a plurality of host servers in the remote desktop environment, the session on the host server, the host server having a virtual desktop with which to execute the session, the virtual desktop executing another session, the session having a predicted logoff time, based on a logon time of the session and the historical user session data, which is within a range of another predicted logoff time of the other session, the host server of the plurality of host servers being assigned the range of a plurality of ranges; and
identifying a bucket of the one or more buckets with a corresponding time range that includes the predicted logoff time of the session;
selecting, by the session placement manager, the server of the plurality of servers assigned to the bucket as identified; and
transmitting, by the virtual desktop agent to a virtual desktop client executing on the client device, encoded virtual display information to display the session of the virtual desktop.
14 . The non-transitory computer readable storage medium of claim 13 , wherein a logoff time range is assigned to the determined host server and the session placement manager places sessions with predicted logoff times that fall within the assigned logoff time range onto the determined host server.
15 . The non-transitory computer readable storage medium of claim 13 , wherein the session placement manager predicts the logoff time for the session based on the time that the session is requested and based on historical data about session durations of previous virtual desktop sessions of the user.
16 . The non-transitory computer readable storage medium of claim 13 , wherein the session placement manager determines the one or more buckets based on data about previous session logoff times of a plurality of users.
17 . The non-transitory computer readable storage medium of claim 13 , wherein the session placement manager determines the one or more buckets based on a session placement bucket model, the session placement bucket model comprising the steps of:
determining, based on historical data about previous sessions of a plurality of users, predicted sessions that log off during a predefined modelled period and corresponding predicted logoff times of the predicted sessions; and
determining one or more optimized buckets for placing the predicted sessions during the modelled period based on the predicted session logoff times and based on a maximum number of permitted sessions in each optimized bucket, wherein determining the one or more optimized buckets comprises determining a corresponding range of session logoff times for each of the one or more optimized buckets.