【问题标题】:Tips for limit memory machine performance? IIS application限制内存机器性能的技巧? IIS 应用程序
【发布时间】:2011-07-04 05:13:27
【问题描述】:

我们有通过 Web 服务与服务器通信的 WPF 客户端。 在厚安装中,客户端 + 服务器 + sqlserver 都安装在同一台机器上。机器有500M RAM。

我会很乐意提供以下方面的提示:

  1. 很难找到瓶颈,因为您可以在此类机器上的分析器中使用,而不会对结果产生重大影响。由于缺少内存,分析器可能会导致页面错误,并且诊断将显示不相关的结果。
  2. 在任务管理器中,我看到 asp 进程消耗 135M,这太多了。我试图理解为什么它消耗这么多,我看到了面积 - 未定义。它是asp进程本身吗? asp进程有很大的内存开销吗?在这种架构(厚)中,我没有针对服务器的多个客户端。你对它有什么记忆建议吗?
  3. 基准测试结果种类繁多。我认为这是因为页面错误。你有什么建议吗?

非常感谢。我来自java世界,所以我是新手。

【问题讨论】:

  • 太麻烦了,不如多买点便宜的内存。查找所有内容的时间成本大于内存成本。
  • 这适用于拥有数千台此类机器的客户。

标签: c# asp.net performance iis


【解决方案1】:

下载process explorer 看看有什么需要内存的。还可以使用autoruns检查与您的服务器一起启动

现在 500M 对于服务器来说是很小的内存。

根据我的经验,SQL 服务器需要内存,iis 和 asp.net 也需要内存,但是 SQL 需要更多,特别是缓存和速度,以及建立索引等等。 asp.net 运行时不需要太多内存,但这一切都取决于您如何设置系统,您为 asp.net 提供了多少个池(我相信只有一个 500M),有多少站点,有多少您通过网站获得的内存等等。

更多关于

如果可能,将 SQL 移至更好的服务器,然后所有其余计算机都连接到该服务器。 SQL 服务器需要内存。

第二种可能,将 sap.net 会话从内存移动到 sql server。

【讨论】:

  • 在此架构上,服务器仅服务于单个客户端。如何减少asp进程开销?
  • @Avihai 我已经更新了我的问题...移动到单个 sql 服务器并远程连接到它,从内存中删除会话状态并将其移动到 sql。使用自动运行停止不必要的程序在服务器上运行。
  • 对于这个拥有数千个站点(500M RAM)的客户。客户端 + 服务器 + sqlexpress 在同一台机器上运行。我必须处理这个限制。谢谢你。我不在会话中使用。一个客户端对一个服务器。在会话中没有用。
【解决方案2】:

限制iis的内存使用可以通过:

转到 IIS MMC

-> 点击应用程序池

-> 右键单击​​池

-> 选择高级设置

-> 进入回收部分,你会看到有两个设置:

  • 专用内存限制 (KB) 虚拟
  • 内存限制 (KB)

当设置了这两个设置中的任何一个时,如果工作进程超过 私有或虚拟内存配额,IIS 将回收限制该池 内存使用情况。

您可以在 SQL MMC 中限制 SQL Server 内存使用,转到数据库服务器属性

总的来说,我建议将数据库和 iis 服务器分开。 0.5gb 对于服务器来说并不是很多内存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2012-08-02
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    相关资源
    最近更新 更多