我正在使用perfmon来监视包含单个SQL2005数据库数据文件的LUN每秒的写入。 我假设数据库文件只是在检查点或懒惰的写程序过程中写入,这个假设是正确的吗? 因为在检查点和惰性写入程序进程处于非活动状态时,似乎正在写入LUN。
[编辑]
写入似乎每3秒钟发生一次,长度是510字节? 我怀疑这不是SQL写入LUN,而是一些操作系统进程。
[编辑]
这写实际上是所有我的LUN同时 – 所以不能是SQL。
我的猜测是操作系统更新数据库文件的atime。
你确定这个LUN只包含数据文件吗? 你的交易日志文件在哪里? 在写入事务日志时可能发生日志刷新? 这通常发生在提交写入的毫秒内(当然取决于负载)。
你的恢复时间间隔是多less? 这与检查站的频率有关。
[编辑]
也许你可以使用一个sysinternals工具来诊断什么是写入到你的磁盘? 也许perfmon对你撒谎? 🙂
http://sqlinthewild.co.za/index.php/2009/06/26/the-lazy-writer-and-the-checkpoint/
如果SQL在内存压力下,懒惰的作家可能会写很多。 如果两个检查点页面/秒和惰性写入器页面/秒都是0,则不应该发生写入。 当然,看看是否有一个sysinternals工具可以诊断哪个进程正在写入。
编辑:也有一些被称为渴望的作家。 从我记得它与批量操作(bcp,BULK INSERT)
您是否在此LUN上安装了任何分页文件或使用此LUN进行卷影复制的备份软件? 我们有一个情况,即备份软件会进入并利用LUN进行影子复制,所以我们必须明确地排除某些LUN,以防止出现这种情况。 你可能想检查。