# Quick Setup Evaluation Guide

If you would like to discuss the process, [reach out to us for a call.](https://calendly.com/josh-nitrosphere/30min)

{% hint style="info" %}
To reduce the amount of connection restarts, we recommend running a baseline test before installation. [Test query example ->](#test-query)
{% endhint %}

## System Requirements

**Servers**\
Windows Server 2016 or later

**Clients/ Workstations**\
Windows OS 10 or later

**Client-server Applications**\
With default install settings, SQL Server (TDS) & SMB connections are supported and accelerated. \
Additional TCP-based protocols can be added within NitroAccelerator settings.

**Linux**\
It is possible to reduce latency by using a Linux system as an endpoint with NitroAccelerator installed to a Windows system as a proxy. The physically closer the proxy is the the Linux endpoint, the better. Instructions below:

{% file src="<https://1756591877-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGJh55EtnZ2BPxDOrsW%2Fuploads%2FVR72QmhPIRZ5mHbCiehi%2FProxy%20Setup%20for%20Use%20with%20NitroAccelerator.pdf?alt=media&token=9152f10b-736b-4f10-84f6-c54431a347f5>" %}

{% hint style="success" %}
NitroAccelerator improves performance between the endpoints on which it is installed while allowing for mixed connections. If an endpoint equipped with NitroAccelerator connects with a non-Nitro endpoint, the connection and data transmission will function as intended, but without the added benefits of NitroAccelerator's optimization or acceleration.
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=-sPWdlbRZQI>" %}

{% tabs %}
{% tab title="Replication Acceleration" %}
![](https://1756591877-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGJh55EtnZ2BPxDOrsW%2Fuploads%2FZkvr9J1Ji3rkA5KPcCBA%2Freplication%20acceleration.png?alt=media\&token=6ff9dd36-cc44-45e6-b125-697af74ea001)
{% endtab %}

{% tab title="2-Tier Application Acceleration" %}
![](https://1756591877-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGJh55EtnZ2BPxDOrsW%2Fuploads%2FTZODf77gF6VBSo0XthjQ%2F2-tier%20application.png?alt=media\&token=4354f043-ad64-4261-b436-d89fceb4f7b9)
{% endtab %}

{% tab title="3-Tier Application Acceleration" %}
![](https://1756591877-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MGJh55EtnZ2BPxDOrsW%2Fuploads%2FwiCAt64ySb4S2yDg4Bn9%2F3-tier%20application.png?alt=media\&token=32549feb-838f-4955-b05b-5c2d58e5e5d8)
{% endtab %}
{% endtabs %}

## **1. Prepare to Test**

Below are recommendations to improve network performance, with or without NitroAccelerator. Each tip is optional, however, implementing them will add a noticeable boost to Nitro's ability to best accelerate and optimize performance:

* (Optional, but recommended) Increase your network packet size to 32k. If SQL Server Force Encryption is enabled, set the max packet size to 16k.

{% hint style="info" %}
Microsoft documentation [provides instructions to configure packet sizes](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-network-packet-size-server-configuration-option?view=sql-server-ver16#SSMSProcedure) and states that the configuration change should only be made by an 'experienced database administrator or certified SQL Server professional', but it does not dive deep enough into the pros and cons of making those changes.\
\
This configuration change is considered a no-regret action. The packet size negotiation process involves the max size set on both ends of the connection. Opting for a larger packet size won't occur if the other side is incapable of accommodating it.
{% endhint %}

* **Disable MARS** (Optional, but highly recommended) - If your developers are utilizing Multiple Active Result Sets (MARS), we recommend that you have them disable by removing it from the connection string. [For more information, see Tip #4 on our blog post.](https://nitrosphere.com/blog/5-tips-optimize-sql-server-application-performance/)

{% hint style="success" %}
NitroAccelerator automatically accelerates TDS & SMB connections, regardless of port. If a connection cannot be established with NitroAccelerator enabled, the issue will most likely be related to uncommon application connection or encryption settings that can easily be resolved by our team. Click Stop within the NitroAccelerator console on both sides, restart relevant services and applications, and reach out to us to discuss.
{% endhint %}

* **Update .NET** (Optional, but recommended) If you have a .NET SQL Server Application that processes large blocks of data, ensure that you are using the newest available version with asynchronous processing.<br>
* **Testing Time-frame**: (Optional, but recommended) If your goal is to improve application performance, we recommend longer test windows on as many geographically separated endpoints as possible. Impact expands dramatically during peak hours of business operation and when networks experience larger amounts of concurrent traffic. The connections with the highest latency will experience to most immediate benefit.

{% hint style="info" %}
It is common for those testing to ask application users running NitroAccelerator if they notice an improvement. Qualitative data is helpful, but quantitative data allows the ability to gauge and predict long-term and real-world impacts. \
\
Improving query execution time or a few minutes of application usage is less impressive to decision makers than proving the underlying benefits to overall output and productivity. Each use-case has a separate series of goals and the Nitrosphere team is available to share common variables. [Check the PoC page](#proof-of-concept) for more info.
{% endhint %}

## **2. Install**

NitroAccelerator does not need to operate on all endpoints in order to function. Only connections that have NitroAccelerator running on both ends will experience network performance improvements. The positive impact will further increase as more interconnected systems are accelerated.&#x20;

When accelerating old or custom applications, we recommend proving the ability to connect and accelerate between two endpoints before expanding the test to all relevant endpoints.

If you are accelerating Replication that utilizes clustering, NitroAccelerator must be installed to every node within the cluster.\
\
Your free trial countdown will not begin until the time of installation. If the trial window does not fit within your approved testing window, please let us know and we will provide an extension.

{% hint style="warning" %}
NitroAccelerator must be installed while logged into the operating system as Administrator.
{% endhint %}

* As Admin, run the NitroAccelerator install file on the Servers, Application Servers, and/or Clients of your choosing. (If you do not have the install file, [head over to our website to request a copy](https://nitrosphere.com/request-download/).)
* If presented with Windows UAC prompts during installation, click yes - allow. If you accidentally click no, you will need to complete the install process, uninstall, and reboot before retrying.

**You can also install directly from the command line by pointing to the .msi installer file on your system. This method is recommended for wide deployments after preferred settings identified:**

```powershell
msiexec /i NitroTurbo.msi /qn
```

## **3. Activate Acceleration**

Once NitroAccelerator is installed and running on both sides of a connection, it will begin to accelerate and optimize new connections. NitroAccelerator does not allow on-the-fly acceleration of existing connections in order to ensure reliability and security.

Your inbound and outbound connections will display within the NitroAccelerator Console: \
**Tools > Connections**

{% hint style="info" %}
Accelerated connections will show as blue
{% endhint %}

{% hint style="danger" %}
Non-accelerated connections will show as red
{% endhint %}

### **Enabling SQL Server Acceleration**

{% hint style="success" %}
A full Server reboot is not required to restart connections.
{% endhint %}

* To accelerate **SQL Server Replication,** restart your SQL agent(s).
* To accelerate **Client/Server applications,** restart correlated services and/or relaunch your applications.

### **Test Query Example** <a href="#test-query" id="test-query"></a>

A quick and convenient way to test and benchmark the performance impact of acceleration is to run the following test query in SQL Server Management Studio (SSMS) with Nitro disabled on both sides and again with Nitro enabled on both sides. Be sure to restart SSMS after enabling or disabling acceleration within NitroAccelerator to fully activate or deactivate acceleration.

```sql
SET STATISTICS TIME ON
SET STATISTICS IO ON
GO
USE master;
GO
SELECT * FROM sysobjects,sysprocesses;
```

### **Enabling SMB Acceleration**

**Clients experience up to 20x speed improvements in SMB File Transfers and improved SMB Application Performance.**&#x20;

* This feature is on by default and can be disabled within compression settings: **Tools > Compression Settings > Named Pipe Acceleration**&#x20;

{% hint style="info" %}
Keep in mind that **Named Pipe Acceleration** must be enabled to accelerate all types of SQL Server TDS traffic. Leaving this setting as default is recommended.
{% endhint %}

* To enabled SMB acceleration, existing client connections need to be re-established. NitroAccelerator will not interrupt existing connections, but will accelerate newly formed connections. The easiest way to re-establish all SMB connections is a file server reboot. If you are only testing on one server and one client, then rebooting the client only will be sufficient.

### **Enabling .NET Remoting Acceleration**

Applications that leverage .NET Remoting benefit greatly from NitroAccelerator's acceleration. Since developers get to choose the port that their .NET Remoting applications operate on, it is required that you enter that port within NitroAccelerator settings.

* Matching .NET Remoting ports must be added within NitroAccelerator on both sides of the connection in order to locate and accelerate:\
  **Tools > Configure Additional Protocols > Enter Ports > Check 'Enable Acceleration'**

### **Enabling Custom Protocol Acceleration**

If the protocol that you want to accelerate is not mentioned above, but is running on Windows (Oracle, DB2, or other databases), you can add it by port. NitroAccelerator can accelerate any TCP-based protocol, but alterations or special builds may be needed to fit your environment. Please reach out to the Nitrosphere team to discuss.

* Matching ports must be added to both ends of the connection: \
  **Tools > Configure Additional Protocols > Enter Ports > Check 'Enable Acceleration'**

{% hint style="info" %}
Review our [**troubleshooting guide**](https://documentation.nitrosphere.com/resources/troubleshooting) or [**click here to schedule a quick meeting**](https://calendly.com/josh-nitrosphere/30min)**.**
{% endhint %}

## 4. Tuning & Additional Features

The main NitroAccelerator Console shows average compression statistics for Nitro-enabled connections.&#x20;

The two graphs display outbound and inbound traffic. The blue lines represent compressed traffic, while the red lines illustrate the amount of bandwidth that would be transmitted if the traffic were not compressed.

While you may experience immediate improvements in performance, settings can be adjusted to fit your specific environment and goals. Information is below, but if you would like to save time, we can identify and provide suggestions during [a 5-10 minute call](https://calendly.com/josh-nitrosphere/30min).

![](https://1756591877-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MGJh55EtnZ2BPxDOrsW%2F-MIKzB88z0oFjhKrF9Ep%2F-MIKzgCyACuWV0KLOsNg%2Ftools.png?alt=media\&token=44b4131a-9222-41af-a9be-0b5c251d843d)

{% hint style="info" %}
Once your preferred settings have been identified, a member of Nitrosphere can provide direction on bulk deployment options with settings per-configured via CLI or Regedit.
{% endhint %}

### **Compression Settings**

Compression levels allow for modifying compression algorithms and can be configured to tune performance to match your environment, previous latency, or data types. The default setting is recommended 90% of the time as it dynamically adjusts the compression level to maximize performance. We do not recommend altering compression settings unless you are working with extremely low connection speeds, extremely high latency, or combat edge burst transmissions.

{% hint style="info" %}
While testing compression levels, click Reset Stats from the NitroAccelerator console between tests to properly log results.
{% endhint %}

* If the console is reporting a compression rate below 80% for your highest traffic direction, please contact support. The issue could be installation, setup, activation, or data type. Regardless, we can provide benefiting insight.

### **Zero Latency Data Channel (ZLDC)**

{% hint style="warning" %}
The ZLDC feature is recommended only for high speed connections that also have high latency. The server must be able to communicate to the client to use the ZLDC. (For example, the server can ping the client.) Before enabling, we recommend reviewing the [ZLDC Whitepaper](https://nitrosphere.com/wp-content/uploads/2021/01/NitroAccelerator-ZLDC-Whitepaper.pdf) or setting up a [quick call](https://calendly.com/josh-nitrosphere/30min) with our team.
{% endhint %}

ZLDC eliminates latency from the TCP protocol to substantially improve throughput.

* Firewalls between the client and SQL Server need to be open for UDP traffic (default is UDP 6161) for both inbound and outbound traffic.
* NitroAccelerator must be running as admin on both sides. If you see the Windows UAC shield next to the Stop button of the console, click Stop > Yes > Agree to UAC prompt. This will restart the Nitro console as admin and the driver will continue running.
* Enable ZLDC Acceleration: **Tools > Zero Latency Data Channel**&#x20;
* Enable ZLDC on all nodes.
* New connections will now benefit from the standard acceleration, as well as the ZLDC acceleration.
* The identifier 'DC' will display next to ZLDC connections within: **Tools > Connections**

#### **Tuning ZLDC**

* Depending on the number of connections and the compressibility of the data, you may need to make tuning adjustments within: **Tools > ZLDC**
* If you are hitting the cache size on the High Water Mark, resolve by making small adjusted increases to the Packet Cache Size.

#### **Instructions for VPN/VPC use with ZLDC**

* The VPN server must be configured  to allow both sides of the VPN to initiate communication.
* If the VPN client is a router (i.e., the clients don't connect to the VPN because the router has the connection to the VPN server), there needs to be a route between the 2 subnets.

### **HyperCache**

The **HyperCache** is a client-side caching technology that can further improve performance for chatty applications. It works by monitoring each query to determine how stable the results are. When a given query is determined to have stable results, the client will be given results from the cache instead of waiting for the server’s response. The query is still sent on to the server so the cache can be refreshed, and if the results of a query ever change, the query entry is invalidated until the result set is again shown to be stable. Only result sets of 64k or less will be cached, so **HyperCache** will have the biggest impact in environments with smaller repetitive queries. The Cache Size setting in the console determines the total number of queries that can be cached, so this can be adjusted as needed for your environment.

* For small repetitive queries and chatty Applications, we recommend activating this feature. \
  Client side only: \
  **Tools > HyperCache Settings**<br>
* Some applications require that certain queries be executed regardless of the result set and should not be cached. If needed, the Nitrosphere team can block or allow certain queries from being cached.

### **Encryption**

* If you have SQL Server Force Encryption enabled, then no additional setup action needs to be taken. NitroAccelerator honors the encryption negotiated by SQL Server.
* NitroAccelerator’s optional one-click Encryption secures network traffic between endpoints: **Tools > Encryption Settings**
* You have the option to select from our default encryption key or to generate your own.

### **MARS Acceleration**

Multiple Active Result Sets (MARS) is an older protocol feature used by SQL Server to reduce the number of connections required. This feature is not recommended as it often causes large performance bottlenecks.

{% hint style="warning" %}
If possible, it is recommended that developers disable MARS, especially if clients will be accessing their applications beyond the LAN. For more information, [see Tip #4](https://nitrosphere.com/blog/5-tips-optimize-sql-server-application-performance/).&#x20;
{% endhint %}

* MARS Acceleration is disabled by default. However, connections that use MARS are indicated within the connection dialogue of the console: **Tools > Connections**<br>
* If you see MARS connections indicated within the connection dialogue, we recommend enabling this feature: **Tools > Compression Settings**<br>
* NitroAccelerator's MARS Acceleration is beneficial, but the positive impact is often far less than the positive impact of simply disabling MARS.

## **5. Proving NitroAccelerator**

While the statistics on the NitroAccelerator console are helpful in determining operating and statistics for additional tuning, you will want to track other Network Performance measurements and Key Performance Indicators (KPI's) in order to gauge and prove the wide benefits of running NitroAccelerator within and across your environment.

Network monitoring solutions give more insight into impact, but it is important to note that these solutions degrade overall network performance when leveraged too heavily. It is a common advantage for customers to use NitroAccelerator specifically to improve the performance of network monitoring solutions themselves.

### **Proof of Concept**

During your trial, we recommend activating NitroAccelerator on as many relevant endpoints as possible to measure real-world quantitative results over time. Network performance measurements include a series of overlapping variables that vary based on goals and architecture. It is important to note improvements in KPI's and PoC variables across your network.

### **SQL Server Traffic PoC**

For quick testing and advanced tuning, we run a simple `SELECT` statement from within SQL Server Management Studio both with and without NitroAccelerator enabled.

### **SMB Traffic PoC**

To maintain PoC integrity, we recommend running before and after tests of identical file transfers to log the max transmit speed and the time to complete. Keep in mind that when turning acceleration on or off, the connections must be fully closed and re-established to enable or disable NitroAccelerator's SMB acceleration.

* To reduce the number of required connection restarts, we recommend running a baseline file transfer before installing and activating acceleration.
* Next, activate NitroAccelerator and reboot your file server or the client you are testing from to fully re-establish the SMB connection while avoiding any possible connection pooling.
* Open NitroAccelerator and check: **Tools > Connections** to ensure that your connections are showing as blue text, indicating that they are accelerating.
* To maintain testing integrity, be sure to remove the baseline copied file(s) from the destination before running the accelerated test.
* Log and compare results.

### **Common PoC Variables**

* Query Execution Time
* Transactions Per Second (TPS)
* Throughput (MB/sec)
* Replication latency
* Page load time
* Application start time & performance
* File Transfer time
* High-priority IT Support Ticket counts
* Bandwidth usage and cloud fees

{% hint style="info" %}
We have an expanding collection of PoC processes and KPI's provided by customers spanning all industries. They vary wildly based on goals and industry. Reach out to discuss.
{% endhint %}

## **Pricing**

Nitrosphere provides **perpetual licenses** with the first year of support and maintenance included. After the first year, we offer continued support and updates for 20% of the original payment amount. Customers can cancel at any time and if operating systems are being kept up-to-date, yearly renewals are highly recommended.

For a quick quote, send your Server, Backup Server, Application Server, and/or Client count to your person of contact or to: <sales@nitrosphere.com>.

If you would like to discuss your goals, budget, and receive access to our partner or bundle packages, [schedule a quick call](https://calendly.com/josh-nitrosphere/30min).<br>

{% hint style="success" %}
Nitrosphere offers special pricing to Municipalities, Public Utility Companies, *501(c)(3*)'s and Organizations working with Defense, disaster mitigation, or response.
{% endhint %}

## **Purchasing Information**

Invoices are sent via email. We accept Card, ACH, and Check. Online payments are processed by a certified PCI Service Provider Level 1 (the most stringent level of certification) payment gateway.\
\
Reach out to us\
**Email:** <josh@nitrosphere.com>\
**Schedule a meeting:** <https://calendly.com/josh-nitrosphere/30min>
