有一个运行 Exchange 的 SBS2011、一个数据库应用程序和一些为 5 个用户服务的其他东西(3 个低使用率,1 个高使用率)。
服务器从未指定用于数据库应用程序,因此它没有我想要的那么强大……只有 12GB RAM。
我们越来越多地发现这台服务器的性能问题,上周它太糟糕了,我什至无法远程连接。
释放一些可用的 RAM(在过去一个月左右):
将Exchange 消息存储限制为 1GB,(到目前为止)没有不良影响。
受限 SQL 数据库(包括SBSMonitoring和Sharepoint/##SSEE(未使用))。
现在我发现 IIS 工作线程正在用完可用内存,而且我(到目前为止)无法找到有关限制它们的很多有用信息。
除了我发现人们使用的 OWA 之外,该服务器不“服务”任何基于 Web 的东西,因为 Outlook 太慢了(再次与服务器性能有关)。
我知道SBS2011 上的 Exchange 旨在耗尽可用资源(并在其他应用程序请求时让步)。但它并没有这样做(或足够快)来满足我们的需求。
从客户端计算机打开数据库应用程序(使用 Postgres)需要 5 分钟以上,并且经常因此超时或崩溃。
重新启动后(在 SQL/Exchange/IIS 数据库非常大/完全缓存之前)我们获得了我们需要和期望的性能。以前一个月重启一次就够了……然后一周一次……现在他们几乎每天都重启!
我四处寻找并找到了有用的信息,这些信息使我能够限制这些 w3wp.exe 进程(IIS 工作程序)。
我使用此处的信息找出最大的 IIS 工作者。您也可以使用 “Process Explorer”来执行此操作。
我无法找到我找到信息的确切页面/站点,但是您可以通过在消耗一定数量的内存后使它们“回收”来限制 IIS 数据库的大小。这些 页面包含相同的信息,但它们不是我阅读的那些。
您可以通过以下方式做到这一点:
IIS Manager
以管理员身份运行Application Pools
Edit Application Pool
”Memory Based Maximums
您希望使用的内存占用量(在我的例子中为 100mb)Next
注意:由于我进一步限制了 WSUS并且没有使用 Sharepoint,所以我将它们的回收率设置得非常低。