Network tuning with respect to SQL Server performance is affected by the following:
The throughput of the LAN or WAN is not critical to the tuning of a specific SQL Server. However, when considering remote procedure calls between SQL Servers or data replication, LAN and/or WAN throughput will be an important concern. Thus, this section will deal with tuning issues related to the network interface card and system or SQL Server resources that affect the SQL Server's network performance. Accordingly, the following network bottleneck-monitoring guidelines will deal with these issues.
Action: Determine if any processes or protocols extraneous to the operation of SQL Server are running. If so, stop them.
Action: Determine if any processes or protocols extraneous to the operation of SQL Server are running. If so, stop them.
Action: Look at the number of SQLServer: User Connections and the SQLServer: Net - Command Queue Length. If these values are also high, especially Net - Command Queue Length, then consider increasing the memory allocated to SQL Server. However, you may want to restrict user connections with sp_configure to decrease the workload on the SQL Server. Remember, user connections and worker threads are counted as overhead against the SQL Server memory allocation. Thus, plan accordingly when adjusting these values.
To set the server's default packet size, set network packet size in sp_configure. Packet size can be configured in ISQL/w for the current ISQL/w connection only. Configuring the packet size gives you a choice between responsiveness and overall throughput. Larger packets provide less packet overhead and provide better end-to-end throughput: An entire task completes more quickly with larger packets. Smaller packets are more responsive for those interested in intermediate results. Overall, a smaller packet size provides quicker response time, but usually, an entire task takes longer to complete with smaller packets than with larger packets. For more information about configuring packet size, see SQL Server Books Online.
You can monitor the improvement in network read and write efficiency by viewing the SQLServer: NET - Network Reads/sec and SQLServer: NET - Network Writes/sec counters before and after changing the TDS packet size. Fewer reads and writes should occur after increasing the packet size.
Value name | Default value | Minimum value | Maximum value | |
PulseConcurrency | 20 | 1 | 500 | |
Pulse | 300 (5 minutes) | 60 (1 minute) | 3600 (1 hour) | |
Randomize | 1 (1 second) | 0 (0 seconds) | 120 (2 minutes) |
Netlogon sends pulses to individual BDCs. The BDCs respond by asking for any database changes. To control the maximum load these responses place on the PDC, the PDC will only have PulseConcurrency pulses "pending" at one time. The PDC should be sufficiently powerful to support this many concurrent replication RPC calls (related directly to Server service tuning as well as the amount of memory in the computer).
Increasing PulseConcurrency increases the load on the PDC. Decreasing PulseConcurrency increases the time it takes for a domain with a large number of BDCs to get a SAM/LSA change to all of the BDCs. Consider that the time to replicate a SAM/LSA change to all the BDCs in a domain will be greater than: ((Randomize/2) * NumberOfBDCsInDomain) / PulseConcurrency