Server-level consolidation means the process of finding the right physical hardware or cloud resource for hosting virtual servers. Too much hardware capacity means that the physical server is being underutilized, which is not cost-effective, whereas a lack of capacity means that the virtual servers will experience bottlenecks in performance.
Estimating the virtual servers' capacity needs and finding the right hardware or cloud solution manually can be time consuming. SQL Governor automatizes many of the steps needed in server consolidation. You can use it to find the optimal hardware or cloud host for existing virtual servers or for physical servers you're planning to virtualize.
Creating a server-level consolidation project
- Select Plan > Server consolidation from the navigation menu.
- Select Create new project from the drop-down menu and give the project a name.
- Select the planning scope from the drop-down. This selection determines how far into the future the forecast is calculated.
- Select start date and end date from the calendar controls. These values determine the time period from which monitoring data is used.
- Click the Save button to save the project and generate the source server time series.
Creating a host server
- To create a new server, select the type of server from the drop-down menus called Brand, Series, Line and Model, and then click on the plus (+) button.
To create a Nutanix server, first check the "Create Nutanix template" checkbox and then select a brand from the dropdown.
Once you've clicked on the plus button, the new host server will appear below. For each host server, the number of cores and the server's benchmark is shown in parentheses. - To configure the host, select it and then right-click to bring up the context menu.
The menu options are:
- Optimize server
- Automatically selects the optimal CPU and socket count combination for the host (i.e. one that has the least number of total cores but still fits everything) and, if possible, divides the host's cores among the virtual servers so that all SLAs are at 100%.
- Select CPU
- CPUs can also be selected manually. The list of CPUs available is sorted based on the number of maximum cores and benchmark. Minimizing the number of cores and maximizing the benchmark gives you the best value for money.
- CPUs can also be selected manually. The list of CPUs available is sorted based on the number of maximum cores and benchmark. Minimizing the number of cores and maximizing the benchmark gives you the best value for money.
- Set socket count
- Allows you to change the number of sockets in use on the server. The number of sockets available depends on the selected server. Cloud servers do not have this setting.
- Set OS / CVM cores
- The number of cores reserved for the operating system on the host. The higher this number is, the less processing power is available for the virtual servers under the host. In the case of Nutanix servers, this means the number of cores reserved for the Controller Virtual Machine (CVM). Cloud servers do not have this setting.
- Set OS / CVM RAM (GB)
- The amount of RAM, in gigabytes, reserved for the operating system. For Nutanix servers, this means the amount of RAM reserved for the Controller Virtual Machine. Cloud servers do not have this setting.
- Set RAM amount (GB)
- The amount of RAM, in gigabytes, available on the server. On physical servers, this can be set to less than the maximum installable on the server. Cloud servers do not have this setting.
- Set criticality
- This setting defines the maximum fill levels for CPU and RAM as well as the SLA levels. These values can be changed by going to Settings > Metadata > Criticality.
- Set CPU / RAM / IOPS growth factor
- By default, growth factors are set to zero, but you can override this by choosing another value. Manual values mean a yearly percentage increase. Choosing a manual value on the host level affects all virtualized servers under it.
- Clone server
- Creates 1-10 identical copies of the host server.
- Delete server
- Removes the host server and its virtualized servers from the project. Deleted virtualized servers will appear in the tree on the left again.
- Optimize server
Virtualizing servers
- Drag one or more servers from the tree on the left onto the new host server you created. Note that cloud server templates can only have one virtual server under them, while physical servers and Nutanix servers can have several.
The source servers are now shown as virtual servers under the host. - Click on a host server to see the sum of CPU and RAM usage of all the virtual servers under it.
The blue line shows the predicted values, while the red line shows the threshold limit determined by the server's criticality. If any predicted value is above the threshold, it will reduce the SLA, shown in the header. Depending on your criticality configurations (as set in Settings > Metadata > Criticality), an SLA of less than 100% may be acceptable. - Click on a virtual server to see its own CPU and RAM usage and SLAs.
- Configure the virtual servers from the context menu.
You can set the number and type of cores and the amount of RAM dedicated to the virtual server, as well as the growth factors for CPU, RAM and IOPS. Criticality can also be set separately for hosts and each virtual server, allowing different servers to have different CPU and RAM thresholds.
When you change the number of cores, the charts are updated to reflect the change in relative CPU usage. - Continue consolidation by adding and configuring new hosts and virtual servers. If you need to change the date range or planning scope of the project, change the values and click on Update.
- When you're finished, click on the Process button to calculate the IOPS needs of the new servers. These will be shown in the Server consolidation report.
Using the auto-optimize feature
SQL Governor v16 has a powerful new feature for auto-optimizing host and virtual servers. Instead of manually experimenting to find out the correct type and number of CPUs for the host and the correct number of cores for its virtual servers, you can let the auto-optimize feature to determine the best settings.
To optimize a physical or Nutanix host:
- Select a brand from the dropdown and create a new host server with the model you want.
- Drag one or more source servers to the host.
- Set the criticality for each virtual server and the host.
- Optionally, set growth factors for the virtual servers and OS reserves for the host.
- Select the host and click Optimize.
The engine will select the correct CPU and socket count from the list and assign the correct number of cores and RAM to each virtual server, while keeping SLAs at 100%.
To optimize a cloud host:
- Select Azure from the brand dropdown and create a new cloud server with the series you want.
- Drag one source server to the host.
- Set the criticality for the virtual server and the host.
- Optionally, set growth factors for the virtual servers.
- Select the host and click Optimize.
The engine will pick the correct size with enough cores and RAM from the selected series, while keeping SLAs at 100%.
Viewing the report
- Click Process.
- Navigate to Reports.
- Expand the Capacity planning node.
- Click on Server consolidation results in the report list.
- Select your project from the drop-down list inside the report.
- If your project has more than one host, select a server from the next drop-down list.
- Click on View report.
The top part of the report contains summary information about the whole project.
The next part shows information about the selected server setup and all the virtual servers under it; for example, how many logical/physical cores each virtual server originally had and how many it has under the new architecture.
The graphs below show the CPU and RAM usage of the virtual servers in a stacked area chart. The data is the same as on the server consolidation page.
Under "IOPS and data needs", a list of all the virtual servers is shown along with their read and write data, latency and file sizes. Note that these are forecasted values based on the planning scope you selected and the collected time series.
To drill down and see the IOPS and data file forecasts of individual virtual servers, click on one of the server names. You should see two charts and a list of databases on the server.
You can drill further down to database level by clicking on one of the databases. The database charts will show the forecasted reads, writes, file size and latency of the database.
Navigating back to the main page of the report, at the bottom of the report the volumes are shown. For each virtual server, its volumes and their predicted IOPS values are shown.
For Azure servers, some additional information such as disk type and disk pools and their sizes are shown:
By clicking on a volume name, you can drill-down to a volume latency report. It shows latencies per hour as well as a distribution of latency times.