我使用 perfmon 来监控包含单个 SQL2005 数据库数据文件的 LUN 上的每秒写入次数。我假设数据库文件仅在检查点期间或由惰性写入器进程写入,这个假设是否正确?当检查点和惰性写入器进程处于非活动状态时,似乎有一些东西正在写入 LUN。
[编辑]
写入似乎每 3 秒左右发生一次,长度为 510 字节?我怀疑它不是写入 LUN 的 SQL,而是一些操作系统进程。
[编辑]
这个写入实际上同时命中了我所有的 LUN——所以不可能是 SQL。
我使用 perfmon 来监控包含单个 SQL2005 数据库数据文件的 LUN 上的每秒写入次数。我假设数据库文件仅在检查点期间或由惰性写入器进程写入,这个假设是否正确?当检查点和惰性写入器进程处于非活动状态时,似乎有一些东西正在写入 LUN。
[编辑]
写入似乎每 3 秒左右发生一次,长度为 510 字节?我怀疑它不是写入 LUN 的 SQL,而是一些操作系统进程。
[编辑]
这个写入实际上同时命中了我所有的 LUN——所以不可能是 SQL。
我的猜测是操作系统更新了数据库文件上的 atime。
你确定这个 LUN 只包含数据文件吗?您的事务日志文件位于何处?写入事务日志时可能发生了日志刷新?这通常发生在提交写入的几毫秒内(当然取决于负载)。
您的恢复间隔设置为多少?这与检查点的频率有关。
[编辑]
也许您可以使用其中一种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 以防止出现这种情况。你可能想检查一下。