The sas-viya-tuning repo contains a set of tuning parameters designed to improve overall performance for large scale Viya deployments.
This project is broken down into a set of configuration "tunables" for various scenarios SAS Viya users perform on a routine basis. Each scenario represents an action, or a set of actions, users may perform while interacting with SAS Viya web applications, command-line interfaces, scheduled batch jobs, mobile applications, etc.
Which scenarios are applicable will depend on the specific Viya environment and which applications are used. Not all scenarios in this project necessarily need to be included, and administrators can pick and choose which ones pertain to their environment.
In most cases, the tuning parameters for a given scenario can be broken down into the following categories:
- configuration properties - tunings that apply to Viya services (such as Java Heap settings, connection pool settings, etc.) that can be set during initial startup or against a running system using SAS Environment Manager
- kustomization files - Kustomize transformers to apply to various Kubernetes Deployment and StatefulSet resources
For additional details and a description of what each scenario covers, make sure to drill into the respective README files.
It is important to note that the settings contained within this project are not necessarily a one-size-fits-all model. This project is designed to capture configuration changes for many of the core / most-active pods in a Viya deployment and makes a best attempt at tuning these pods based on high concurrent workloads. Depending on the number of users accessing the system or the various workloads themselves, it may be necessary to adjust these parameters, or add additional parameters required for other pods in the system.
And finally, keep in mind that there may be some amount of overlap in the configurations - where one scenario may include changes for a service or application that is also referenced within a different scenario. In these situations, it is important to remember when applying these configurations, values from the last referenced configuration will be applied.
| Scenario | Description |
|---|---|
| platform-common | Recommended tunings that apply to core services contained within the SAS Viya Platform. |
| Scenario | Description |
|---|---|
| analytics-model-building | Tunings specific to SAS Model Studio and building analytical models. |
| analytics-model-management | Tunings specific to SAS Model Manager and administering and publishing analytical models. |
| compute-common | Tunings specific to SAS Launcher and SAS Studio services when a high number of concurrent compute sessions are required. |
As new versions of Viya become available, there is the potential for architectural changes being made within the underlying platform. For example, pods may be added or removed within a deployment, pods may be renamed, etc. Changes of this nature of course have an impact on any corresponding kustomization patches. To accomodate these types of changes, each release of this project will be tagged with the Viya cadence(s) it is compatible with. When a new cadence becomes available, the tunings in this project are verified against that release. If changes to the kustomization patches are required, a new release will be published and then tagged appropriately.
Important: whenever the tunings in this project are applied to a Viya deployment, you must make sure you are using the appropriate version. Follow the instructions in the Getting Started section below to ensure you are referencing the proper version.
| Version | Compatible Viya Release(s) |
|---|---|
| 1.9.0 | 2026.05 |
| 1.8.0 | 2026.02 - 2026.04 |
| 1.7.0 | 2025.12 - 2026.01 |
| 1.6.0 | 2025.09 - 2025.11 |
| 1.5.1 | 2025.06 - 2025.08 |
| 1.4.0 | 2025.04 - 2025.05 |
| 1.3.1 | 2025.01 - 2025.03 |
| 1.2.0 | 2024.08 - 2024.12 |
| 1.1.0 | 2024.03 - 2024.07 |
Follow these steps for integrating the tuning parameters into a new or existing Viya deployment.
-
Clone the project using the appropriate Viya release and Git repository location:
git clone --branch <viya-release> <repository-location>/sas-viya-tuning.gitFor example:
git clone --branch 2024.07 <repository-location>/sas-viya-tuning.gitNot specifying the branch/tag name during the clone operation will fetch the most recent version of the repo. If you have previously cloned this project from a previous release, you can switch to a newer release using the following commands:
git fetch origingit checkout tags/<viya-release> -
Copy the contents of this project to the
site-configlocation within the deployment directory used to install/configure Viyacp -R sas-viya-tuning {deploy-dir}/site-config -
In your deployment's main
kustomization.yamlfile, add the following line within thetransformerssection to include the appropriate tuning resources:transformers: - site-config/sas-viya-tuning/configurations
For more information on the initial
kustomization.yamlfile, see the SAS Viya Platform Administration guide. -
Review the individual
README.mdfiles for each scenario for information on what specific tunings are covered. Keep in mind that further customizations may be required for each scenario - either by adjusting the default values or adding new configurations - depending on your workload needs. For each applicable scenario, add the appropriate reference to thesas-viya-tuning/configurations/kustomization.yamlfile as needed. Note, theplatform-commonscenario is applied by default and is recommended for all environments. For example:resources: - analytics-model-building - analytics-model-management - compute-common - platform-common
-
Once the transformers are in place, follow the steps below to complete the setup, depending on if your'e dealing with a new Viya deployment, or one that already exists and needs to be updated.
For new Viya deployments
-
Certain scenarios contain their own custom
sitedefault.yamlfile, each consisting of additional tunings to be applied when the Viya services/applications are deployed. If a customsitedefault.yamlfile does exist for a scenario, copy and merge the contents of the file into your deployment's mainsitedefault.yamlfile. For more information on using a sitedefault file, see Add a sitedefault File to Your Deployment in the SAS Viya Administration guide. -
Follow the instructions in the Deployment section of the SAS Viya Administration guide to deploy the software.
For existing Viya deployments
-
Certain scenarios contain their own custom
sitedefault.yamlfile, each consisting of additional tunings to be applied when the Viya services/applications are deployed. However, because the sitedefault file is only processed during the initial installation of the software, these configurations will have to be applied using one of two approaches:- SAS Environment Manager
- sas-bootstrap-config
For this documentation, we will describe how to apply the necessary changes using SAS Environment Manager only.
💡 Tip: If a sitedefault file was initially used for the deployment, even though it won't be used to process these updates, it is still recommended to modify that file so that it contains the configurations in this project in case you need to re-deploy the system. To do so, merge in the properties from the various
sitedefault.yamlfiles for each applicable scenario into your deployment's existing sitedefault file. -
Using SAS Environment Manager, follow these steps:
-
Navigate to the Configuration view
-
Select the appropriate service under the "All services" list
-
Check if a configuration exists that matches the property within the sitedefault file. For example, all "java_option_xxxx" properties should be added under the "jvm" configuration for a service. If a configuration does exist, click on the Edit link. If a configuration does not exist, click on the New Configuration link.
-
Update the configuration with the appropriate values. When updating the Xmx (Java Heap) setting for a service, the property can be set as:
java_option_xmx: -XX:MaxRAMPercentage=75
-
Note, some properties require a restart of the service to take effect. This restart will occur in the following step when the services are re-deployed.
-
-
Follow the instructions in the Modifying Existing Customizations in a Deployment section of the SAS Viya Platform Administration guide to update the software.
We welcome your contributions! Please read CONTRIBUTING.md for details about submitting contributions to this project.
This project (including historical versions) is licensed under the Apache 2.0 License.