我们最近将我们的生产终端服务器从独立的刀片转移到运行在虚拟服务器上的数据中心(Windows 2003)。
我们开始遇到相当严重的性能问题,其中一个主要的罪魁祸首似乎是 IE7,用户启动了它的多个副本而不是使用新的窗口/选项卡。它占用了相当大的内存占用。
有没有人遇到过我们可以用来阻止他们启动同一应用程序的多个实例的东西?
理想情况下,您可以告诉它要注意什么,当用户尝试打开第二个副本时,它会阻止它发生,并告诉他们原因。
任何人都知道任何事情,请记住它在终端服务器环境中运行,因此需要每个用户工作(每个用户可以打开一个 IE 进程)
干杯卢克
我认为您的解决方案不应该终止用户尝试执行的过程。我确信无论出于何种原因终止 iexplore.exe 进程都会导致比任何事情都更负面的后果。
我会认真考虑查看您分配给虚拟机的资源,并开始填补导致性能问题的空白。现在内存太便宜了,你应该让你的服务器储备充足,以适应你当前和预期的负载。如果最大化您的 RAM 并不能解决您的问题,请开始考虑对机器进行集群以实现负载平衡。
我想不出一种方法来原生地做到这一点。我知道 IE8 有一个新的进程模型,这意味着它必须使用多个进程 - 但有一种重新配置它的方法,以便它只使用一个。但是,如果性能是您主要关心的问题,那么迁移到 IE8 并不是最好的主意。
编写一个解决方案的脚本相对简单,但我认为这是治疗症状,而不是原因。
你确定是IE7的问题吗?因为在 IE 中打开一个新选项卡确实会在进程列表中启动一个新的“iexplore.exe”,所以实际上会在进程列表中显示多个 IE 窗口打开......
我会使用像这里这样的 WMI 脚本或使用 AutoIT 或 AutoHotkey 工具制作的脚本来注意具有相同名称的新窗口并杀死它们。
特定于 Citrix 在这里
http://cwashington.netreach.net/depo/view.asp?Index=992
如果这还不够有用,请告诉我,我可以编写一个 AutoIT 脚本或自定义给定的脚本。
告诉这些人使用 Firefox。眨眼