数据库服务器上的可用空间不足 10%

数据库服务器上的可用空间不足 10%

两周前,当某个应用程序运行并请求“sqlserver.exe”时,我们的一台 Web 服务器的 CPU 使用率开始出现瓶颈,长时间处于 100% 状态。当该应用程序运行并进行集成(约 5 分钟)时,CPU 会急剧上升并锁定网页。

背景:

  • Qquest 软件时钟服务器版本 1.2.20.0
  • 现成的不受支持版本的应用程序数据库与操作系统和 Sql Server 位于同一分区(数据库大小为 17.19 MB,可用空间为 0.78 MB)
  • SQL Server 版本 8.0
  • MS Server 2003 SP 2(51.01 GB 容量,3.34 GB 可用)
  • 内存 1536 MB
  • 3.00 GHz 英特尔至强 X5365

我至今所做的事情……

  • 刚刚在服务器上添加了一个额外的处理器(现在有 2 个 CPU)
  • 刚刚添加了额外的内存(现在有 192.84 MB)
  • 是的,重启过吗

如果不关闭服务器并将应用程序移至新位置,那么可用空间这么小会不会是我遇到的问题?

升级后问题似乎就解决了,但是用硬件来解决问题并不是解决糟糕系统架构的办法。

所以我想现在的新问题是:如何隔离问题应用程序以避免使用所有系统资源?

答案1

SQL 数据库中的日期时间更新应该很简单,并且最多只持续几毫秒,除非正在更新的表上有很多其他活动。

我将首先获取一些有关物理内存和磁盘 IO 的性能计数器。由于物理内存量极低,您还应该检查以确保 SQL Server 已设置为配置了最大服务器内存的值。请参阅本文有关这方面的信息。除非您告诉 SQL Server 不要这样做,否则它会消耗尽可能多的内存,这对于像您这样的服务器来说是一件非常糟糕的事情,因为服务器的硬件资源极其有限。

答案2

虽然硬件升级解决了您的问题,但糟糕的系统配置、糟糕的应用程序和架构设计可能会导致同样的情况再次发生

因此,建议找到问题的原因,并永久修复它。首先性能监视器(系统监视器)并检查最常见的问题:

• 处理器

• 记忆

• 文件输入/输出

• 锁定、阻塞、死锁

您应该首先考虑以下指标:

  • 处理器时间百分比
  • 内存 – 可用兆字节
  • 处理器队列长度
  • 检查点页数/秒
  • 惰性写入/秒
  • 缓冲区缓存命中率显示
  • 平均磁盘队列长度
  • 平均磁盘秒/读取
  • 平均磁盘秒/写入
  • 磁盘时间百分比
  • 每秒批量请求数
  • SQL 编译/秒
  • SQL 重新编译/秒

您可以在这里找到推荐的值:优化 SQL Server CPU 性能

性能监视器允许您监视每个进程的各种进程指标(处理器时间、页面错误、I/O 数据、读取、写入字节等),这可以帮助您确定使用最多处理器资源的进程

在此处输入图片描述

有关使用 PerfMon 的更多有用信息:SQL Server Perfmon(性能监视器)最佳实践

相关内容