思杰降低100%的CPU

我们有一个由2个物理和2个虚拟Citrix服务器组成的Citrix PS4.0服务器场。 由于CPU使用率达到100%,其中任何一个在某个点或另一个点最终都会降低性能。 在任何一台VMware服务器上发生这种情况时,我可以看到Virtual Infrastructure Client中的CPU使用率高峰。

这不是一个与用户数量有关的负载问题,因为它随时可能与任何数量的用户发生。

用户正在运行共享桌面,而不是应用程序。 桌面上安装的应用程序是标准的办公应用程序(Word,Excel,Outlook),通过Bluecoat代理和几个行业特定的应用程序访问受限的Internet Explorer。

可以使用哪些工具来排查和诊断问题的根源? 一旦服务器达到100%的CPU,就不可能login,看看哪个进程正在消耗所有的资源。 唯一的办法是硬复位机器。 所有的服务器每天早上凌晨4点按计划重新启动。

注意:我已经使用默认configuration选项和日志logging活动在所有Citrix服务器上安装了ThreadMaster。 日志不会显示问题的根源。

编辑

  • Citrix Presentation Server 4.0企业版
  • 修补程序PSE400W2K3R03
  • Windows 2003 Server标准版Service Pack 1
  • 根据Citrix对文件排除等的build议configurationSymantec Client Security 10.0.0.359。

Windows 2003 SP1在4月份不再支持,所以你的操作系统不再有任何安全补丁。 您需要尽快升级到SP2。

SP2也有很多随机bug修复 – 你的问题可能会消失。

如果你的操作系统具有这样一个补丁级别,那么很可能有一些驱动程序 – 特别是打印驱动程序 – 也可能过时了。 由于司机一般是系统不稳定的重要来源,所以我会尝试检查他们是否都已签名并且是最新的。 有一个狡猾的打印驱动程序将解释为什么它会影响虚拟和物理框,似乎随机发生,无论负载。

哦,仅供参考在09年6月底,Citrix 4将进入EOM(停止维护,不再有错误修复),并将于09年12月底发布EOL(停止使用,不再有安全补丁或任何其他补丁)。你的升级周期!

您可以尝试安排脚本每分钟运行一次,以便将进程列表附加到文件中:

pslist >> whatever.txt 

像这样的东西可能至less会给你一个线索到底是怎么回事。

( pslist自带Sysinternals套件 )

内置的性能日志和警报工具将是一个很好的工具,可以帮助您获得有关正在发生的事情的一些数据。 你将不得不使用一些磁盘空间来生成这些日志,但是如果你一直在删除旧的日志文件,直到问题发生,你应该不会有一个问题/磁盘运行不足。

我会在每台服务器计算机上启动一个计数器日志,将进程处理器对象logging到磁盘(我也可能抓取内存对象)。

  • 开始/运行/ PERFMON

  • 展开“ 性能日志和警报”节点,并突出显示“ 计数器日志”节点。

  • 点击操作新build日志设置 。 按照你的意思命名日志。

  • 单击日志属性窗口中的添加对象…button并添加要logging的对象。

  • 设置一个时间间隔 我可能会select一个60秒或更长的时间间隔。 高分辨率可能是没有必要的,因为这是一个渐进的降级。

  • 在“ 日志文件”选项卡上,使用“ configuration”buttonselect日志文件的位置和基本文件名。 我会select最大日志大小 ,例如5MB – 10MB。 这将产生许多小文件,但是您将能够监视存储文件的path,并删除在发生问题之前堆积的旧文件。

您可以通过右键单击结果窗格中的新日志实例并select“开始”来启动日志。 日志将默认运行,直到您停止或直到重新启动计算机。 (有关启动login启动的信息,请参阅以下问题: 如何将Perfmon设置为Automaticaly在系统启动时启动“警报”? (问题涉及启动警报,但您可以使用相同的命令启动日志。

发生问题后,您可以手动分析这些日志。 您可能想要试用微软的日志性能分析(PAL)工具( http://www.codeplex.com/PAL )。 我对这个工具生成的报告感到满意,而且使用起来相当简单。

如果只有一个vCPU,则尝试向服务器添加额外的虚拟CPU。 如果这是一个单线程的应用程序吃掉了所有的CPU,那么你至less要杀死它而不是重置服务器。

你正在运行什么版本,你有一个SA协议?

你在服务器上运行防病毒软件吗?

此外,您正在为PS4运行什么hotfix(s)/汇总,以及您在Windows上运行的是SP?

每台机器有多less个CPU /内核? 在许多核心上达到100%意味着一个multithreading应用程序将占用所有资源。

你有一个模式(每X小时或每天2点左右的高峰)?

eventlog中的任何内容(如巨大的打印)?

你有SCOM吗?

我们的networking监控软件也有类似的问题,事实certificate,XTE(会话可靠性)进程已经破坏了WinSock库和/或TCP / IP协议栈。 要修复TCP / IP堆栈,请在Citrix服务器上运行命令“netsh winsock reset”,然后重新启动。

PS4上还有3个关卡。 可能要将您的服务器升级到汇总6

您是否考虑升级到WS2003企业版,并利用Windows系统资源pipe理器来包含应用程序资源?

关于我们在Citrix盒子上遇到的唯一问题是打印机驱动程序错误,导致后台打印程序服务完全失效。 具体来说,这归功于HP LaserJet打印机驱动程序,直到去年十二月份,这些驱动程序出现严重的问题,重新修复了修复了大量崩溃问题的底层DLL。 他们的发行说明中的​​更改日志提供了有趣的阅读。

Anyhoo,你也许可以从你的工作站尝试'sc \ servername stop spooler',看看是否可以连接并终止错误服务器上的打印假脱机程序,可能有助于排除打印机驱动程序的问题。

ProcessExplorer(免费)是深入挖掘进程运行的有用工具, 那些通常隐藏的svchost.exe下运行。 我们有一个HP打印机驱动程序(一个常年问题)在一个核心上以100%运行的情况。 ProcessExplorer允许我们a)find用来启动它的命令行(显示它是HP)和b)杀死那个任务。 推荐的…

另外,AppSense性能pipe理器在处理XenApp的CPU负载高峰方面非常有效。 它会推荐它,除了它太贵恕我直言。 每当我们达到我们服务器的容量,我们就去“AppSense或其他服务器?”。 我们总是以1000英镑的价格买走它,只是价格过高而已。 现在更多的情况是我们运行免费的XenServer,并且可以在一个小时内克隆现有的XenApp服务器。

我们的一个客户使用BigBrother,这是服务器的远程监控/健康状态。 在审判的时候,我可以快速地把自己放在一边,但是它也留在了大公司的舞台上。

你可以保持一个会话打开,并自己运行任务pipe理器? 按CPU使用率sorting任务pipe理器,当您看到100%时,查找piggish进程。