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