Performance 仅在I/O负载较低时运行线程

Performance 仅在I/O负载较低时运行线程,performance,delphi,delphi-2009,backgroundworker,io,Performance,Delphi,Delphi 2009,Backgroundworker,Io,我有一个执行I/O操作的后台线程(使索引保持最新)。但除此之外,还有几个客户端访问服务器的硬盘,我希望这些访问尽可能快。所以我想,如果索引线程只在I/O负载较低时运行,那就太好了 有办法解决这个问题吗 我也愿意接受其他建议。将线程优先级设置为空闲应该足够了 编辑 线程优先级不影响IO优先级这一事实是正确的。 请看下面的详细说明 使用性能计数器获取磁盘的I/O活动。一旦达到阈值的低端,允许线程运行。在决定停止阈值的高端是什么时,不要忘记考虑您自己将要添加的I/O负载。Hi!我一直认为优先级只能控

我有一个执行I/O操作的后台线程(使索引保持最新)。但除此之外,还有几个客户端访问服务器的硬盘,我希望这些访问尽可能快。所以我想,如果索引线程只在I/O负载较低时运行,那就太好了

有办法解决这个问题吗


我也愿意接受其他建议。

将线程优先级设置为空闲应该足够了


编辑

线程优先级不影响IO优先级这一事实是正确的。

请看下面的详细说明

使用性能计数器获取磁盘的I/O活动。一旦达到阈值的低端,允许线程运行。在决定停止阈值的高端是什么时,不要忘记考虑您自己将要添加的I/O负载。

Hi!我一直认为优先级只能控制cpu时间?I/O以何种方式以及在多大程度上影响调度决策?在Vista下,线程优先级较低的进程也具有较低的I/O优先级。那么XP呢?有什么可能的解决方案吗?@Dave Van den Eynde:正如我解释的那样,这可能会导致阻塞一个高优先级线程,等待低优先级线程释放其资源。我想你是在说什么?我必须寻找更多关于这个主题的资源…你有任何链接吗?是的,这个链接是一个开始。我知道你在Delphi,但是如果你碰巧也有VS,打开“服务器资源管理器”看看你可以使用的一些不错的PC。在服务器下面有“性能计数器”——包括给定进程的IO!所以实际上,你甚至可以只关注你关心的过程(如果你知道他们的信息等等)。