【问题标题】:WCF Odata Service w3wp Process Memory CreapWCF Odata 服务 w3wp 进程内存创建
【发布时间】:2012-03-27 01:52:24
【问题描述】:

我对 WCF 服务的内存使用有点困惑。简要概述,我的 wcf 服务是一个 odata 提供程序,它允许我的 ipad 应用程序与我们的 sql server 数据库通信。

问题在于,当客户端(使用客观 c odata 库的 ipad 设备)调用一组简单的数据(例如从数据库中获取所有客户)时,w3wp 进程的内存会增加几 mb,并且永远不会真的回来了。由于客户端想要做的只是一次调用(检索数据集,更新数据集,删除数据集),而不是一旦完成调用,就应该放弃用于执行操作的内存。根本不是这样吗?我收集到有一些缓存正在发生,或者调用实例可能没有被释放。

任何人都可以引导我朝着正确的方向前进,以便 w3wp 精简并在通话完成后将记忆吹走。

提前致谢

【问题讨论】:

  • 与任何托管应用程序一样,除非机器处于内存压力之下,否则进程不会非常积极地释放内存。没有必要。你如何衡量内存消耗?

标签: ios sql-server wcf wcf-data-services odata


【解决方案1】:

您的数据库是否与您的 Web 服务器位于同一台机器上?如果您的索引没有正确应用,您最终将消耗大量资源。如果您使用的是 MS SQL Server,请检查服务器的最小内存设置。一旦达到最小内存限制,MS SQL Server 可能在重新启动之前不会释放它。你还应该看看你的绑定配置。如果您使用状态完全(会话)绑定而不关闭会话,则服务实例将在内存中停留 10 分钟(默认),等待来自同一代理对象的新客户端请求。

【讨论】:

  • 您好 dotnetPr0,感谢您的回复。我对 SQL Server 内存使用感到满意,这与 w3wp 内存消耗是分开的。我没有对状态完全绑定进行任何更改,所以我可能会调查一下。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多