SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 原文:SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化 本文是基于上一篇《SQLServer 2012之AlwaysOn —— 指定数据同步链路,消除网络抖动导致的提交延迟问题》的问题继续进行优化;具体背景请参照上文;     前后折腾了一个多月,最近终于把这块难啃的骨头搞定了。
+关注继续查看
原文:SQLSERVER 2012之AlwaysOn -- 同步模式下的网卡性能优化

本文是基于上一篇《SQLServer 2012之AlwaysOn —— 指定数据同步链路,消除网络抖动导致的提交延迟问题》的问题继续进行优化;具体背景请参照上文;

    前后折腾了一个多月,最近终于把这块难啃的骨头搞定了。问题只是出在网卡的高级功能上;

    解决方案:关闭网卡的高级功能Jumbo Mtu和Large Send Offload V2

    问题分析:根据Broadcom Ethernet 网络适配器的解释

Jumbo Mtu

Jumbo Mtu 属性允许网络适配器发送和接收长度大于 1514 字节但小于 9000 字节的超大 Ethernet 帧。此属性要求具有能够处理 Jumbo 帧的交换机。

默认情况下,帧大小设置为 1500 字节。要增加接收帧的大小,可按 500 字节的增量增大字节数量。

Large Send Offload

TCP 分段通常是由协议栈完成。启用 Large Send Offload 属性时,TCP 分段可由网络适配器完成。

Disable: 禁用 Large Send Offload。

Enable (默认值): 启用 Large Send Offload。

    Large Send Offload是网络适配器的高级功能之一,其目的是在网络适配器端进行TCP的分段工作,以此来降低CPU以及其他相关设备的压力;但随着多核CPU的广泛应用,网络适配器的处理能力相较于CPU弱了很多,因此当大量并发请求导致数据频繁更新或大数据量传送时,开启Large Send Offload将严重影响性能;

    在网上搜了一把,此类问题的影响还比较常见

http://www.bitdefender.com/support/Large-Send-Offload-causes-performance-and-slowdown-issues-459.html

http://www.peerwisdom.org/2013/04/03/large-send-offload-and-network-performance/

https://social.technet.microsoft.com/Forums/windowsserver/en-US/bdc40358-45c8-4c4b-883b-a695f382e01a/very-slow-network-performance-with-intel-nic-when-tcp-large-send-offload-is-enabled

    下图是优化前的性能曲线,图中表示方法调用TP99指标在100~300ms之间抖动

yestoday

    下图是优化后的性能曲线,可以看到优化后的方法调用TP99指标在100~150ms范围内,且比较平稳;

today

 

     尽管WSFC不再像Windows Cluster一样要有心跳线,但为了避免大量的数据同步对应用访问链路造成影响,还是建议增加直连线(或专用的数据同步网络),并修改endpoint_url使其生效,具体方法可以参照《SQLServer 2012之AlwaysOn —— 指定数据同步链路,消除网络抖动导致的提交延迟问题》操作;

相关实践学习
使用交互方式创建数据表
本次实验主要介绍如何在RDS-SQLServer数据库中使用交互方式创建数据表。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
XML 存储 关系型数据库
如何将数据从SQLServer同步至AnalyticDB for PostgreSQL
使用DTS,进行Sqlserver -> AnalyticDB for PostgreSQL 数据链路同步,可以很方便的将SQLServer中的分散的业务数据批量/实时导入至AnalyticDB for PostgreSQL, 进行复杂的OLAP查询与分析
3108 0
如何将数据从SQLServer同步至AnalyticDB for PostgreSQL
|
关系型数据库 MySQL 数据库
使用SyncNavigator进行SqlServer或者MYsql数据库的实时、增量同步
SyncNavigator是一款高效的数据库同步工具,支持sqlserver数据库和mysql数据库,采用增量同步的方式实时保存数据库数据。
1801 0
|
SQL 数据库
sql server 备份与恢复系列四 大容量模式下的备份与还原
原文:sql server 备份与恢复系列四 大容量模式下的备份与还原 一. 概述   在sql server 备份与恢复系列的第一篇里,有讲到大容量模式下备份与还原的相关知识。这篇重点来演示在大容量模式下常用的备份与还原模式“完整备份+差异备份+日志备份”。
976 0
|
SQL 缓存 数据库
SqlServer性能优化之获取缓存的查询计划中的聚合性能统计信息
SqlServer性能优化之获取缓存的查询计划中的聚合性能统计信息
4260 0
|
索引
SqlServer性能优化之获取表的数据行数,数据大小,索引大小等
SqlServer性能优化之获取表的数据行数,数据大小,索引大小等
11099 0
|
存储 SQL Go
SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步
原文:SqlServer 禁止架构更改的复制中手动修复使发布和订阅中分别增加的字段同步 由于之前的需要,禁止了复制架构更改,以至在发布中添加一个字段,并不会同步到订阅中,而现在又在订阅中添加了一个同名字段,怎么使这发布和订阅的两个字段建立同步关系呢? 下面就测试更改:此次发布类型为事务复制的可更新订阅,其他类型的发布没有测试。
1066 0
相关产品
云迁移中心
推荐文章
更多