Sybase ASE 12.5.2 高磁盘队列长度

Sybase ASE 12.5.2 高磁盘队列长度

我有一台在 Windows 2003 上运行的 Sybase ASE 12.5.2 服务器,对于大多数选择查询来说,它的速度非常慢。该系统是 2 x 双核 Xeon、4GB 内存和 200GB Raid5(10k SAS 磁盘),用于在具有 128MB 缓存 + BBU 的 LSI megaraid 控制器上存储数据。

服务器上唯一值得注意的迹象是 perfmon 中的“磁盘读取队列长度”为 100。通常这表示磁盘存在问题,但看起来磁盘没有任何问题。

有什么想法可以让我找出问题所在吗?我还应该说,我对 Solaris 上的 Sybase 比 Windows 上的 Sybase 更熟悉。

以下是屏幕截图:

替代文本 http://img.skitch.com/20090722-t4sgfxd5fb2ck7bbsdjei38uu6.png

这是 40 分钟的 sp_sysmon 输出。

编辑:显然,sp_sysmon 输出对于 serverfault 问题文本区域来说太大了。以下是完整输出的链接:[http://pastie.org/private/t5xqd0vamhz7ynnjuo3cxq][2]

编辑:我将屏幕截图更改为能够更好地反映当前情况的屏幕截图。

答案1

查看 sysmon,您正在尝试执行 964.2 IOPS,

Total Requested Disk I/Os 964.2 2373.5 2314183

其中 99.2% 由此设备占用,其他所有设备都只占很小一部分。所有设备都位于同一个物理阵列 (D:) 上,但如果它们什么都不做,那就不是问题。

设备:
D:\DTCLASS\ads\ads_data01
ads_data01 每秒每个 xact 计数占总数的百分比


Reads                                                                       
  APF                           459.9        1132.0     1103670      48.1 %
  Non-APF                       495.8        1220.3     1189821      51.8 %
Writes                            0.8           2.0        1978       0.1 %

总输入/输出 956.4 2354.3 2295469 99.2%

950 IOPS 应该在 10 个磁盘阵列 5 的能力范围内,特别是因为这些都是读取操作。如果我们保守估计每个主轴 100IOPS,那么我们估计这个阵列有 1000 IOPS。编辑:但是,我似乎误读了您的原始帖子,假设有 10 个磁盘!请告诉我们这个阵列中有多少个磁盘。

Cache Search Summary Total Cache Hits 1283.3 3158.8 3079829 71.9 % Total Cache Misses 502.2 1236.3 1205348 28.1 %

您遇到了相当多的缓存未命中。这让我怀疑您是否为 ASE 分配了足够的内存。在装有 ASE 12.5 的 Windows 上,ASE 的内存限制为大约 2.6 GB(无论是在 64 位还是 32 位 Windows 上)。您能否让我们看看 sp_configure 'memory' 的输出。我对这一行特别感兴趣:

max memory 33792 2950000 1475000 1475000 memory pages(2k) dynamic

有可能您为 ASE 分配了足够的内存,但您尚未将其添加到数据缓存中。您也可以让我们看看 sp_cacheconfig 的输出。

从 sysmon 输出的开始你就可以看到,你的 CPU 大部分时间都在处理 IO:

引擎繁忙利用率 CPU 繁忙 I/O 繁忙空闲
引擎 0 2.4 % 79.9 % 17.7 %
引擎 1 2.0 % 75.2 % 22.8 %

您还只能为 ASE 分配 2 个引擎,如果这是一台专用服务器,则在双核双核上最多可以分配 4 个引擎。虽然您的许可可能不允许这样做,因为 ASE 是经过许可的每个核心

答案2

在我看来,您的实际平均磁盘队列长度为 3.554。比例设置为以该值的 100 倍绘制图表。

当该数字大于 RAID 组中主轴的数量时,通常会出现问题。

我将首先使用 sysinternals 中的 procmon 来确定磁盘使用情况。然后,我将研究特定于数据库的工具来监控查询(抱歉 - 对 sybase 了解不多)

答案3

你可以尝试这个优化工具为了帮助追踪和解决问题,它有 14 天的试用期。

相关内容