【问题标题】:ASP .Net 2, Classic Pipeline on IIS 8 64 bit scalability issuesASP .Net 2,关于 IIS 8 64 位可扩展性问题的经典管道
【发布时间】:2013-12-31 04:48:12
【问题描述】:

对于这个问题相当笼统的性质表示歉意 - 我只是希望有人可以提供一些建议和/或想法,因为我不知道这两个问题!

背景: 我们运行一个相当大的(3500 万次点击/月,峰值约为 170 个连接/秒)网站,该网站提供免费软件下载(严格合法),并用 ASP .NET 2 (VB .Net :() 编写。我们有 2 个 Web 服务器,位于专用硬件负载平衡器后面,两台服务器都是相当大的机器,Windows Server 2012 Pro 64 位和 IIS 8。我们通过使用自定义 404 页面来提供无扩展 URL,该页面解析出请求的 URL 和 Server.Transfers 适当地。因为这个特殊的组件,我们必须在经典的管道模式下运行。 数据库方面,我们使用 MySQL,并且有两个复制的数据库,读取主要从从属设备完成。数据库访问是通过 DevArt 库进行的,并被广泛缓存。

问题: 我们最近(过去几个月)从运行 Windows 2003 Server 和 IIS6 的旧服务器迁移。在这个过程中,我们还升级了 Devart Component 和 MySql (5.1)。从那以后,我们遇到了间歇性的可扩展性问题,随着我们添加更多内容,这些问题变得更加严重。我们最近将程序数量从 2000 增加到 4000,这导致响应时间从 What is the best way to lock cache in asp.net?),因此可能是某个特定操作需要一段时间并在其后备份请求。

问题是……我找不到!!任何人都可以根据经验提出一些工具或方法吗?我已经尝试加载测试,我已经分析了代码,我已经逐行阅读了它...... NewRelic Pro 为我们做得很好,但试用期已过期并且出于政治原因我们没有购买一个完整的许可证呢。也许 WinDbg 是前进的方向?

期待任何人都可以添加的任何见解:)

【问题讨论】:

    标签: mysql asp.net iis scalability


    【解决方案1】:

    猜测解决方案不是一个好主意。事情可能会很快变得痛苦或昂贵。您确实应该从一些标准/常见的分类技术开始,并做出明智的决定。

    解决数据驱动应用性能问题的标准流程如下:

    1. 查看数据库索引(不太可能)并根据需要进行调整。
    2. 检查资源利用率:CPU、RAM。如果您的 CPU 已用尽,请考虑添加/升级​​ CPU 或优化代码或拆分您的层。如果您的 RAM 已用尽,请考虑添加 RAM 或拆分您的层。我意识到您刚刚购买了新硬件,但您还更改了操作系统和 IIS。所以,所有的赌注都没有了。花 10 分钟时间确认您有足够的 CPU 和 RAM,这样您就可以放心地从列表中删除它们。
    3. 检查 HDD 使用情况:如果您的队列长度经常超过 1(每 10 秒超过一次),请升级磁盘带宽或横向扩展您的磁盘(RAID、多个 MDF/LDF、DB 分区)。在每个 MySql 框上勾选此项。
    4. 检查网络带宽(不太可能,但还是要检查一下)
    5. 代码:a) 考虑升级到 .net 3.5(或更高版本)。它是为更好的可扩展性而设计的,并且有更好的缓存选项。 b) 使用更新/改进的缓存。 c) 挑选用于苛刻查询和数据库使用的代码。我对 RedGate Ants 有过很好的体验,但也差不多。产品也很好用。

    然后事情变得更加具体到您的架构、代码和平台。

    Application 变量也有一些锁定机制,但它们很少会导致锁定。

    您可能需要密切关注您的池回收统计信息。如果您有内存泄漏(或连接泄漏等),IIS 可能会在池满并重新启动时冻结。

    【讨论】:

    • 感谢 cmets,他们当然有道理 - 第 1-4 点已经涵盖,但绝对值得再试一次!重新使用分析器 - 您如何看待在生产服务器上使用 ANTS?到目前为止,我们将其限制为开发/登台,但收效甚微。
    • 我只在生产服务器上配置文件作为最后的手段。您可以使用快照工具为您的产品服务器创建一个 VM,并在 VM 主机(VPC 或 HyperV)上对其进行测试。 (通常称为“暂存”服务器)。任何其他层级也是如此。当然,除非您使用像 WCAT 这样的流量生成器,否则很难确认争用问题。 iis.net/search?searchterm=wcat
    • 再次感谢,我们在本地使用了 WCAT,但又没有什么好处 - 看起来我们将在本地尝试更多负载并在产品服务器上尝试 WinDbg。
    猜你喜欢
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2011-06-10
    • 2021-11-01
    相关资源
    最近更新 更多