我们在 Windows server 2008 上使用远程桌面将应用程序作为远程应用程序运行,并且我们遇到以下情况(在我们有大约 40 人登录后)服务器可能会冻结几秒钟(例如 20 秒) )。
看起来问题不是由缺少处理器或内存不足引起的。该应用程序的磁盘很重,但我们已将驱动器从 Raided SATA 更改为更快的 SSD 磁盘,但没有任何改进。
该应用程序是在 64 位环境和 8GB RAM 中运行的 32 位应用程序。
该应用程序在 Windows Server 2000 中的 RDP 上运行良好(最多 100 个用户)(尽管由于服务器内存不足,它开始变慢)
查看各种监视器,在冻结时处理器和网络使用量达到峰值,尽管这似乎与服务器在解冻后喘气有关。
我们认为这可能与用户登录时卸载/加载 Hives 有关,但这是一个猜测。
我的问题是...... - 我如何找出可能导致此错误的原因?- 其他人遇到过这样的问题 - 你是如何解决的?
谢谢。
根据我的经验,冻结是由以下任一原因引起的:
请注意,这是一个从最有可能到最不可能的列表。I/O 经常成为瓶颈。您可以使用性能监视器对此进行诊断。
我已经看到了这个并提出了一个相关的问题(how-do-you-diagnose-a-server-temporarily-freezing)。
看看下面的文章。http://support.microsoft.com/kb/934330,它可能会有所帮助,但我仍然不知道到底发生了什么。
过去,我在我的环境边缘运行大型终端服务器来控制使用我们系统的人的访问。从我使用 Windows 2000 终端服务器开始,我们就遇到了这个问题。我发现问题是当人们登录和注销时,它会“冻结”所有相关人员的服务器。随着越来越多的人使用服务器,“冻结”会变得更糟。
我总是将开销归咎于 Novell 的客户端 32,并最终使用旧的零管理工具包从用户登录会话中剥离功能,直到它们运行得尽可能精简。
后来我有一个使用 2003 的终端服务器,没有 Novell,也有同样的问题。我发现漫游配置文件是问题所在。“冻结”会发生在它试图通过网络加载新用户配置文件时。现在它发生在我们从家庭驱动器同步离线文件时。
你如何解决它?
检查并查看您是否有正在运行的东西同时进行大量磁盘访问。就在上周,MySQL 5.0 出现问题,无缘无故彻底摧毁了 2008 终端服务器,将 MSSQL 放在那里,它就可以工作了。
(我不是 M$ 巨魔,而且我没有亲自这样做,我的晚餐做到了。我只是无意中听到他用头撞墙几天,后来他告诉我这是他“修复”它的方式)
您的客户端是否在 Vista 上运行?我在功能非常强大的 Windows Server 2003 和 2008 机器上遇到了类似的问题,它们几乎没有负载(当时我是唯一使用它们的人)。
事实证明,Vista 的 TCP/IP 堆栈有一些接收窗口优化,这些优化实际上会导致某些路由器的性能不佳,用于 RDP 等应用程序。
以下是一些解释此问题的文章:
总结一下,试试这个:
如果这不是您的问题,您可以使用以下方法撤消它: