Dedicated-VM and Shared-VM Service Offerings
Note: This version of Redis for PCF is no longer supported because it has reached the End of General Support phase. To stay up to date with the latest software and security updates, upgrade to a supported version.
Page last updated:
Redis for Pivotal Cloud Foundry (PCF) offers On-Demand, Dedicated-VM, and Shared-VM service plans. This section describes the architecture, lifecycle, and configurations of Dedicated-VM and Shared-VM plans. For similar information for the On-Demand service plan, see On-Demand Service Offering.
Note: As of Redis for PCF v1.11, the on-demand service is at feature parity with the dedicated-VM service. Dedicated-VMs are marked as deprecated in v1.14 and will be removed in v2.0. Pivotal recommends that you migrate to the on-demand service plan.
Redis for PCF includes two pre-provisioned service plans:
An instance of this plan provisions a single Redis process on a single dedicated VM. This plan is suitable for production workloads and workloads that require isolation or dedicated hardware.
An instance of this plan provisions a single Redis process on a single shared VM. This plan is suitable for workloads which do not require dedicated hardware. This plan is not suitable for production purposes.
This diagram shows how the architecture of the service broker and Shared-VM and Dedicated-VM plans and how the user’s app binds to a Redis instance.
For Dedicated-VM and Shared-VM plans, the default Redis configurations cannot be changed.
redis.conf from a Dedicated-VM plan instance is provided here.
Redis is configured with a
no-eviction. This policy means that when the memory is full, the service does not evict any keys or perform any write operations until memory becomes available.
Persistence is configured for both
By default, the maximum number of connections,
maxclients, is set at 10000. Redis might reduce this number when run on a system with a low maximum number of file descriptors. You can retrieve the actual setting on your Redis service instances with the Redis command
CONFIG GET maxclients. You can use the Redis command
CONFIG SET maxclientsto temporarily reduce
maxclients, but you cannot increase it above 10000. There is no way to configure shared and dedicated plans to use a custom limit.
Replication and event notification are not configured.
For this reason, Shared-VM plans do not support using CLI commands with arbitrary parameters to configure service instances.
An instance of this plan, provisions a single Redis process, on a single dedicated VM. This plan is suitable for production workloads and workloads that require isolation or dedicated hardware.
The following Redis commands are enabled:
maxmemoryvalue for the Redis process is set to be 45% of the RAM for that instance.
The persistent disk should be set to be at least the size of the RAM available to the VM or greater, in order to account for the final and temporary RDB file generated by the Redis background save.
This plan deploys the operator-configured number of dedicated Redis VMs alongside a single service broker VM.
These instances are pre-provisioned during the deployment of the tile from Ops Manager into a pool. The VMs are provisioned and configured with a Redis process ready to be used when an instance of the
dedicated-vmplan is requested.
A default deployment provisions
5 instancesof the
dedicated-vmplan into the pool. This number can be increased on the
Resource Configtab in Ops Manager, either in the initial deployment or thereafter. The number of VMs cannot be decreased once deployed.
When a user provisions an instance, it is marked as in use and taken out of the pool.
When a user deprovisions an instance, the instance is cleansed of any data and configuration to restore it to a fresh state and placed back into the pool, ready to be used again.
This plan can be disabled by setting the number of instances of the
Dedicated nodejob in Ops Manager to
The number of Dedicated-VM plan instances available to developers is set by the operator. Configurations of up to 100 Dedicated-VM plan instances have been tested.
You can disable this plan by setting the number of instances of the
Dedicated nodejob in Ops Manager to
Limitations of the
dedicated-vm plan include:
- No ability to change the Redis configuration. The
CONFIGcommand is disabled.
- Cannot scale down the number of VMs on the plan once deployed.
- Cannot scale down the size of VMs on the plan once deployed (this protects against data loss).
An instance of this plan provisions a single Redis process on a single shared VM. This plan is suitable for workloads which do not require dedicated hardware.
This plan deploys a Redis instance in a shared VM and a single service broker VM.
This plan can be disabled by setting the
Max instances limiton the
Shared-VM Plantab in Ops Manager to be
You can increase the maximum number of service instances that can run on a shared VM from five, which is the default, up to 250. There is a hard maximum of 250 shared instances.
If you increase the number of instances that can be run on a VM, consider increasing the resources allocated to the VM, in particular RAM and CPU. Failure to do so might lead to a degradation of performance.
You can also increase the maximum amount of RAM allocated to each Redis process (service instance) that is running on this VM.
If you decrease the service instance limit, any instances that are running where the count is now greater than the limit are not terminated. They are left to be removed naturally, until the total count drops below the new limit you cannot create any new instances.
For example if you had a limit of 10 and all were used and reduced this to 8, the two instances will be left running until you terminate them yourself.
The number of Shared VM instances available to developers is set by the operator. The maximum number of shared VM instances is relative to the memory allocated to each Shared VM instance and the total memory of the Redis service broker. For details, see Configuring Service Plans.
You can enable or disable Lua scripting. Changes to this configuration apply to all existing shared-VM instances. Pivotal recommends that Lua scripting is disabled unless developers need it to be enabled. This is because using it can affect the performance of other service instances on the VM.
Warning: The Steeltoe connector for Redis requires Redis for PCF to support Lua scripting. Check if any of your apps require Lua scripting. By default, Lua scripting is disabled for Redis for PCF, but a PCF operator can change the setting to enable it by selecting the Lua Scripting checkbox in the Shared-VM Plan configuration pane.
Limitations of the
shared-vm plan include:
- It cannot be scaled beyond a single VM.
- The following commands are disabled:
- Constraining CPU and/or disk usage is not supported.
- Because the Shared-VM plan does not manage “noisy neighbor” problems, Pivotal does not recommend it for production apps.
Here is the lifecycle of Redis for PCF, from an operator installing the tile through an app developer using the service then an operator deleting the tile.