2011-05-02 57 views
2

什么可能会导致计数器页面错误/秒和缓存错误/秒上的值非常高?asp.net应用程序中的高页面错误/秒和缓存错误/秒

计数器页面/秒几乎为零。大约为零,偶尔会在短时间内上升到300。平均约10(随着时间的推移)。

高速缓存故障/秒为零,持续2秒,然后在2-3秒内升至约10000。这一直是重复的。

页面读取/秒很低,约为0-20。

页面错误/秒的25000 avarage偶尔颠簸〜80000

凡在Web应用程序我应该开始寻找?

+0

问:这些asp.net页面错误或内存页面错误?这是两个完全不同的东西。 – NotMe 2011-05-02 19:54:41

+0

这是内存页面错误。 – Patrik 2011-05-03 06:12:47

回答

2

根本的问题是由于大量字符串的GC必须处理的。

例如我们有相当多的字符串转换的数据层中 DataReader的[ “塔”]。的ToString()

此替换为

(串)的DataReader [ “列”] .Tostring()和它帮助了很多。

另一个问题是我们在asp.net缓存中缓存了很多相同的字符串。 我们对此进行了优化,仅将引用缓存到只存储一次字符串的列表。 我们还对缓存进行了优化,以便缓存将在.NET缓存中的所有计算机上重用的内容以及只会重用的内容,但不会保存在我们缓存的另一台服务器上的同一台服务器上,因此不会保留一个参考,因此将释放,所以GC可以释放内存。

1

如果您正在讨论asp.net页面错误,请查看Windows服务器日志以及您可能需要确定发生了什么的任何日志。您应该会看到很多.net错误。

如果您正在讨论MEMORY页面错误和缓存错误,那么这可能是正常行为。内存页面错误很常见,并且基本上是硬件中将数据从虚拟内存转移到物理内存的信号。请参见http://en.wikipedia.org/wiki/Page_fault

降低内存页面错误的最佳方法是增加机器中可用的物理内存量。

你也可能需要阅读:http://blogs.technet.com/b/askperf/archive/2008/06/10/the-basics-of-page-faults.aspx

+0

我正在谈论内存页面错误。我们在机器中有大约7 GB的可用RAM。我们更新了Web应用程序,之后页面错误变得很高。所以我需要输入哪里开始寻找。 – Patrik 2011-05-03 06:14:36