博览会:
我们使用我通过终端服务提供的内置 MS Access 的程序。我刚刚在 RAID 0 中安装了一个带有四核 2.6GHz Xeon、8GB RAM 和 4 个 SATA 驱动器的新 TS 服务器。在安装的 Server 2008 R2(显然是 64 位)中。它的唯一作用是TS。
问题:
只有几个会话(10 次以下),我开始在每个会话中收到频繁的 Not Responding 消息。当它发生时,用户并没有做任何特别费力的事情,只是表单导航和简单的插入查询。
我可以忍受一些摊位,但是在 WS08 中它在视觉上很刺眼,因为屏幕变灰了,并且它显示了一个对话框,提供等待或关闭一些其他选项。
问题:
- 对提高性能和减少挂起有什么建议吗?
- 是否可以禁用对话框(总是等待)和屏幕变灰?
听起来您需要一些基本的性能分析,以了解您的瓶颈所在。您从此图表中获得的数字将使您对从哪里开始寻找性能问题有一个非常粗略的了解。
我会启动性能监视器(开始/性能监视器),导航到“性能监视器”节点,并使用工具栏中的“+”图标,将以下计数器添加到图表中:
Memory - Pages / sec - 这将显示导致性能不佳的内存分页活动(它也可以显示与性能不佳无关的分页活动)。如果您看到高分页,那么您可能会遇到 RAM 容量的瓶颈。这也可能表现为磁盘瓶颈(因为读取/写入页面文件),所以要小心。
物理磁盘 - 平均 磁盘队列长度 - 选择与 Access 数据库文件所在的驱动器对应的实例(假设它们在服务器计算机的本地磁盘上) - 此数字不应大于 2 x RAID 中的轴数音量作为一个非常非常普遍的经验法则。如果看起来您遇到了磁盘瓶颈,您可以更深入地研究磁盘计数器。
Network Interface - Bytes Total / sec - 选择与客户端访问服务器的 NIC 对应的实例。如果 Access 数据库文件托管在网络共享上,请为服务器用来访问该网络共享的 NIC 添加一个实例(假设它不是客户端访问共享所通过的同一个 NIC)。- 这将为您提供网络接口上移动的字节/秒的总数。您可以使用负载测试工具WSTTCP来衡量服务器和客户端计算机之间的最大带宽利用率。将该数字与该数字进行比较。
Perfmon 将自动为机器中所有处理器的“总数”添加一个“% Processor Time”计数器。我将删除它并为机器中的每个处理器实例单独添加一个处理器 - % 处理器时间计数器。Microsoft Access 主要是单线程的,如果您请求单个处理器实例,“_Total”% 处理器时间计数器可能仅显示 25%(如果您的处理器上有超线程,则为 12.5%)。
这涵盖了潜在的瓶颈——磁盘、RAM、网络和 CPU。您可以使用该图表来了解盒子的总体性能。然后,您可以开始深入研究特定的瓶颈并了解罪魁祸首。
我的一位客户在运行 Windows Server 2008 的终端服务器上部署了他们在办公室使用了几年的“小型 Access 应用程序”,并对它的性能如此糟糕感到震惊。它在台式机上“运行良好”,他们希望它在终端服务器上也一样。事实证明,当用户同时打开应用程序时,他们会很快耗尽终端服务器上的所有 RAM。在他们的一台带有 1 或 2GB RAM 的台式机上打开数据库并不是什么大问题,但是 15 个人试图在终端服务器上共享它太多了。(如果你能相信的话,数据库中有存储为 OLE 对象的大型 PDF 文件......难以置信但真实。MDB 文件超过 300MB......)
顺便说一句:RAID 0?在服务器上?您通过使用 RAID-0 来增加失败的几率,因为它具有“零”冗余。如果您正在寻找或高性能,您最好使用 RAID-10 并以可靠性的名义牺牲一些磁盘空间。我无法想象您在运行 Microsoft Office 类型应用程序的终端服务器机器上需要 RAID-0 的原始 IO 性能。