Skip to content

sassoftware/sas-viya-tuning

sas-viya-tuning

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.

Supported Scenarios

Platform Scenarios

Scenario Description
platform-common Recommended tunings that apply to core services contained within the SAS Viya Platform.

SAS Application Scenarios

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.

Project Release Information

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.

Compatibility Guide

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

Getting Started

Follow these steps for integrating the tuning parameters into a new or existing Viya deployment.

  1. Clone the project using the appropriate Viya release and Git repository location:

    git clone --branch <viya-release> <repository-location>/sas-viya-tuning.git

    For example:

    git clone --branch 2024.07 <repository-location>/sas-viya-tuning.git

    Not 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 origin

    git checkout tags/<viya-release>

  2. Copy the contents of this project to the site-config location within the deployment directory used to install/configure Viya

    cp -R sas-viya-tuning {deploy-dir}/site-config

  3. In your deployment's main kustomization.yaml file, add the following line within the transformers section to include the appropriate tuning resources:

    transformers:
      - site-config/sas-viya-tuning/configurations

    For more information on the initial kustomization.yaml file, see the SAS Viya Platform Administration guide.

  4. Review the individual README.md files 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 the sas-viya-tuning/configurations/kustomization.yaml file as needed. Note, the platform-common scenario is applied by default and is recommended for all environments. For example:

    resources:
      - analytics-model-building
      - analytics-model-management
      - compute-common
      - platform-common
  5. 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

  1. Certain scenarios contain their own custom sitedefault.yaml file, each consisting of additional tunings to be applied when the Viya services/applications are deployed. If a custom sitedefault.yaml file does exist for a scenario, copy and merge the contents of the file into your deployment's main sitedefault.yaml file. For more information on using a sitedefault file, see Add a sitedefault File to Your Deployment in the SAS Viya Administration guide.

  2. Follow the instructions in the Deployment section of the SAS Viya Administration guide to deploy the software.

For existing Viya deployments

  1. Certain scenarios contain their own custom sitedefault.yaml file, 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.yaml files for each applicable scenario into your deployment's existing sitedefault file.

  2. 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.

  3. Follow the instructions in the Modifying Existing Customizations in a Deployment section of the SAS Viya Platform Administration guide to update the software.

Contributing

We welcome your contributions! Please read CONTRIBUTING.md for details about submitting contributions to this project.

License

This project (including historical versions) is licensed under the Apache 2.0 License.

About

A set of tuning parameters designed to improve overall performance for large scale Viya deployments

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors