科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux操作系统硬件稳定性指南(下) (3)

Linux操作系统硬件稳定性指南(下) (3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Linux 之所以声誉卓著是它拥有非凡的稳定性。但如果硬件有缺陷或配置不当,即便是世界上最稳定的操作系统,也不能发挥其优越之处。

作者:Daniel Robbins 来源:IBM 2007年10月19日

关键字: 稳定性 硬件 操作系统 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

解决一个问题,发现另一个

一段时间后,我发现禁用 AGP 可以使 NVIDIA 驱动程序运行正常,但有一点慢。尽管不想这样做,但目前驱动程序的版本允许关闭 AGP,这可以在 XF86Config 中简单地添加一行来实现。关闭 AGP,我将视频的内存带宽降低了 4x,但是相当慢的 3D 仍然比根本无硬件 3D 加速快很多。在禁用 AGP 后,终于有了一个稳定的系统!然而,这种临时解决方案又造成另一个问题。每当运行 3D OpenGL 动画,声音回放会变得极端扭曲并且断断续续。唷!

幸运的是,能够找到解决声音问题的方案。用 setpci 实用程序为 PCI 设备设置较理想的等待时间。过一会儿,我会向您演示具体的解决方案 -但首先介绍一些背景知识。

您可能知道,PCI 总线是共享资源 - 所有 PCI 卡通过总线轮流进行通信,通常情况下,一切都正常。但由于 PCI 总线是具有有限带宽(虽然通常情况下足够)的共享资源,某个 PCI 卡可能会对系统中的其它 PCI 卡产生负面影响。例如,如果 PCI 卡 A 正在通过总线发送数据,同时,PCI 卡 B 也想发送数据,这会发生什么情况?卡 A 是优雅地让出总线,还是继续进行数据传输 -如果这样,要多长时间?

PCI 等待时间计时器

回答这个问题与每个 PCI 设备的配置设置,PCI 总线等待时间计时器,密切相关。通常,Linux 驱动程序为系统中的每个 PCI 设备设置了合适的 PCI 总线等待时间计时器值,大多数情况缺省设置是足够的(如果不是最优),所有设备相处融洽,系统工作正常。PCI 总线等待时间计时器可以取 0~248 之间的值。如果某个设备的设置为 0,那么当另一个设备要传输数据时,它会立即释放总线。如果设备的设置为 248,那么在停止之前会持续使用总线较长时间,而另一个设备等待轮到。

如果所有设备都有相对较高的 PCI 总线等待时间计时器设置,并且有大量数据正在通过总线发送,那么 PCI 卡通常在取得总线控制权且开始发送数据前,会等待较长一段时间。然而,一旦取得总线控制权后,在将总线释放给其它设备之前,它们会通过总线突发传输大量数据。这正是高的 PCI 总线等待时间计时器设置不但增加了等待时间(通过总线发送数据时的延迟)而且也 增加了有效带宽的原因。由于每个设备可以不中断地通过总线突发地传输大量数据,所以可以更加有效地使用 PCI 总线,并且 PCI 设备可以传输更多的数据。

另一方面,如果所有 PCI 设备具有低的 PCI 总线等待时间设置,那么当另一块卡需要传输数据时,它们会很高兴地放弃总线。这导致相当低的数据传输等待时间,因而没有设备会长期控制总线,造成其它设备等待。所有这些的负面影响是当两个或多个 PCI 设备同时要使用总线时,低的 PCI 总线等待时间设置减少了有效的 PCI 总线带宽。这种现象的发生是由于突发的大量数据传输很少发生,而且总线控制权切换频繁,增加了开销。

大多数 Linux 分发版包含称为 pci-utils 的工具,该工具允许您查看和改变 PCI 设备的等待时间设置。要查看当前 PCI 设备的等待时间设置,请输入:

# lspci -v

输入该命令将显示所有 PCI 设备的非常详细的信息。每个设备的 PCI 等待时间设置在第 3 行上列出,正好在 IRQ 设置之前。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章