Efficient management of virtualized session resources
AssigneeCitrix Systems, Inc.
InventorsPrasanna C. Padmanabhan, Orin D. Lincoln
Life of this patent
Estimating the term…
Abstract
A technique for managing virtualized user sessions in an electronic system generates schedules of expected session usage adaptively, based on actual numbers of user sessions allocated while operating the electronic system, and provides capacity for running user sessions from powered-on servers ready to accept new user sessions. The electronic system allocates user sessions in response to requests and tracks numbers of allocated user sessions. As schedules of expected session usage are adjusted based on actual session usage, schedules tend to become more accurate over time and can adapt to changes in usage patterns.
Claims20
A method of managing virtualized user sessions in an electronic system that provides virtualized session hosting services, the method comprising:
- maintaining a pool of virtualized session capacity available from powered-on compute servers in the electronic system, the pool of virtualized session capacity having a size that varies in response to (i) demand for user sessions and (ii) a schedule, the schedule being initially predetermined and establishing, for each of multiple time intervals extending over a predetermined period of time, a respective minimum session capacity to be kept available during that time interval;
- allocating user sessions from the pool in response to requests for user sessions;
- monitoring, over multiple instances of the predetermined period of time, a number of allocated user sessions during each of the multiple time intervals to generate session usage data for each of the multiple time intervals;
- adjusting the schedule based on the session usage data;
- and
- powering on and off particular compute servers in the electronic system based on changes in at least one of the schedule and the demand for user sessions,
- wherein maintaining the pool of virtualized session capacity is performed by a control loop, the control loop having a first mode in which the control loop maintains the minimum session capacity established by the schedule and a second mode in which the control loop maintains a session capacity based on a current number of allocated user sessions,
- wherein the control loop operates in the first mode when the current number of allocated user sessions is less than the minimum session capacity specified by the schedule for the respective time interval, and
- wherein the control loop operates in the second mode when the current number of allocated user sessions exceeds the minimum session capacity specified by the schedule for the respective time interval.
An electronic system, comprising:
- multiple compute servers, each compute server including a set of processors and memory, and configured to run at least one virtualized user session;
- and
- a control server, the control server constructed and arranged to:
- maintain a pool of virtualized session capacity available from powered-on ones of the compute servers, the pool of virtualized session capacity having a size that varies in response to (i) demand for user sessions and (ii) a schedule, the schedule being initially predetermined and establishing, for each of multiple time intervals extending over a predetermined period of time, a respective minimum session capacity to be kept available during that time interval;
- allocate user sessions from the pool in response to requests for user sessions;
- monitor, over multiple instances of the predetermined period of time, a number of allocated user sessions during each of the multiple time intervals to generate session usage data for each of the multiple time intervals;
- and
- adjust the schedule based on the session usage data;
- and
- power on and off particular compute servers in the electronic system based on changes in at least one of the schedule and the demand for user sessions,
- wherein the control server constructed and arranged to maintain the pool of virtualized session capacity is further constructed and arranged to operate a control loop, the control loop having a first mode in which the control loop maintains the minimum session capacity established by the schedule and a second mode in which the control loop maintains a session capacity based on a current number of allocated user sessions,
- wherein the control server is constructed and arranged to operate the control loop in the first mode when the current number of allocated user sessions is less than the minimum session capacity specified by the schedule for the respective time interval, and
- wherein the control server is constructed and arranged to operate the control loop in the second mode when the number of allocated user sessions exceeds the minimum session capacity specified by the schedule for the respective time interval.
A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by a control server in an electronic system, cause the control server to perform a method for managing virtualized user sessions in an electronic system that provides virtualized session hosting services, the method comprising:
- maintaining a pool of virtualized session capacity available from powered-on compute servers in the electronic system, the pool of virtualized session capacity having a size that varies in response to (i) demand for user sessions and (ii) a schedule, the schedule being initially predetermined and establishing for each of multiple time intervals extending over a predetermined period of time, a respective minimum session capacity to be kept available during that time interval;
- allocating user sessions from the pool in response to requests for user sessions;
- monitoring, over multiple instances of the predetermined period of time, a number of allocated user sessions during each of the multiple time intervals to generate session usage data for each of the multiple time intervals;
- and
- adjusting the schedule based on the session usage data;
- and
- powering on and off particular compute servers in the electronic system based on changes in at least one of the schedule and the demand for user sessions,
- wherein maintaining the pool of virtualized session capacity is performed by a control loop, the control loop having a first mode in which the control loop maintains the minimum session capacity established by the schedule and a second mode in which the control loop maintains a session capacity based on a current number of allocated user sessions,
- wherein the control loop operates in the first mode when the current number of allocated user sessions is less than the minimum session capacity specified by the schedule for the respective time interval, and
- wherein the control loop operates in the second mode when the current number of allocated user sessions exceeds the minimum session capacity specified by the schedule for the respective time interval.
Dependencies are inferred from the claim text.