【问题标题】:How can I improve SQL server mirroring如何改进 SQL Server 镜像
【发布时间】:2009-07-07 15:18:20
【问题描述】:

(如果这个问题更适合 RackOverflow,请告诉我)

我已经设置了 SQL server 镜像,使用 2 个 SQL server 2005 标准版。 当应用程序受到压力时,响应时间会增加 10 倍。我已将其精确定位到镜像,因为暂停镜像显示可接受的响应时间。

有哪些选项可用于实现更好的性能?注意我用的是标准版,所以优秀的High Performance Mode不可用。

服务器在同一个机架中,连接到千兆交换机。

这是用于创建端点的代码:

CREATE ENDPOINT [Mirroring] 
    AUTHORIZATION [sa]
    STATE=STARTED
    AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
    FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE
, ENCRYPTION = REQUIRED ALGORITHM RC4)

【问题讨论】:

    标签: sql-server performance mirroring endpoint


    【解决方案1】:

    首先你需要在镜子上看看你的redo queue,有多大。这是最有可能的罪魁祸首,表明您的镜像机器功率不足。更准确地说,它无法应用和写入日志,因为它从主体接收到的日志足以跟上,导致流控制传播回主体并延迟事务提交。事实上,您应该查看两台机器上Mirroring Object 中的所有计数器。

    除非您找到测量结果来支持对端点设置的怀疑,否则请保持原样。镜像通信带宽很少是罪魁祸首。

    【讨论】:

    • 重做队列非常大。进一步调查得出的结论是,将镜像流量引导到另一个网段解决了我们的问题。
    【解决方案2】:

    鉴于服务器在同一个机架中,您真的需要启用加密吗? RC4是一个比较弱的算法,所以收益低。并且大概 1 Gigabit 网络在服务器之间是私有的?

    ENCRYPTION = DISABLED
    

    回应@Remus Rusanu 的评论:说“RC4 是一种强大的算法”是完全错误的。这就是MSDN page 不得不说的:

    虽然比 AES 快得多, RC4是一个比较弱的算法, 而AES是一个相对强大的 算法。因此,我们推荐 你使用 AES 算法。

    【讨论】:

    • -1(我希望我能做到 -100)RC4 是一个强大的算法。流密码很难正确使用,许多实施由于密钥管理不善而被破坏。现在,除非您知道对镜像端点协议的 RC4 密钥管理的特定攻击,否则我希望您停止传播 FUD。
    • +1 建议关闭专用网络上的加密。我试试看
    • @Remus Rusanu:不确定您从哪里获取信息,但 RC4 是一种相对较弱的算法。你会注意到我提到服务器应该通过专用网络连接。
    • @Mitch:我认为我的评论更像是一种爆发,我应该更温和一些。但我是这样知道的:我是编写 SQL 2k5 中镜像所使用的网络堆栈的人,包括所有安全协议。我不得不在密码学家(可以签署“我是密码学家......”的那种)、安全专家和一个渗透团队面前捍卫算法和密钥交换。所以听到'RC4很弱'有点踩到我的脚趾。对不起。但事实上,RC4 是当今互联网上使用最多的加密,几乎所有 SSL 流量都是加密的 RC4。
    • @Remus Rusanu:也许你应该和负责 MSDN 文档的人谈谈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多