• SQL Server 系统缓冲区空间不足或队列已满(错误:10055)


    最近数据库连接总隔段时间出现provider: TCP 提供程序, error: 0 - 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。 的错误。但这并不是SQL Server服务本身导致了此问题,实际上是来自 Windows系统,由机器的内存或TCP端口问题导致。我这里是由于连接过多,导致端口耗尽(根据操作系统的报错来排查)。

    已经知道问题根本原因之后,那么解决问题就变得简单了。
    Windows 2008 以后,微软遵从国际标准,动态端口的数量调整为16384个 (从49152起始,到65536结束),如果服务器对外有大量连接,而TCP默认的Time Wait Delay时间为2分钟这可能导致端口耗尽。

    解决方法如下:
    以管理员身份打开CMD,运行如下命令:

    netsh interface ipv4 show tcpstats
    netsh int ipv4 show dynamicport tcp

    查看一下,是否端口耗尽,目前端口数量是多少,如果确认端口耗尽就需要增大端口数量来解决。

    2、 增大动态端口数量

    netsh int ipv4 set dynamicport tcp start=1025 num=60000

    其中1025是起始端口号,num为数量,上述命令意思为从1025开始的60000个端口,到61025结束。

    注:该步骤无需重启机器, 立即生效

    3、 降低Time Wait时间,最低为30秒
    打开注册表,定位到 HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
    新增键值 TcpTimedWaitDelay,类型REG_DWORD , 设置为十进制30
    注:修改后重启生效

    以上是对ipv4下的tcp协议操作,其他协议命令如下:

    netsh int ipv4 show dynamicport tcp
    netsh int ipv4 show dynamicport udp
    netsh int ipv6 show dynamicport tcp
    netsh int ipv6 show dynamicport udp

     

  • 相关阅读:
    Flink 多流转换算子
    Flink 基本算子map、keyBy、sum、reduce
    Scala 调用方法时加不加小括号
    Hive rank函数开窗
    Hive 窗口函数
    Scala 集合Map的基本操作
    LOJ#2402. 「THUPC 2017」天天爱射击 / Shooting 整体二分+树状数组
    LOJ#106. 二逼平衡树 树套树
    LOJ#2340. 「WC2018」州区划分
    LOJ#2304. 「NOI2017」泳池(70pts) dp
  • 原文地址:https://www.cnblogs.com/VicLiu/p/15188789.html
Copyright © 2020-2023  润新知