科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

作者:Daniel Robbins 来源:IBM 2007年9月11日

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

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

PCI 等待时间方法

这与扭曲声音的问题有什么联系?唔,扭曲的声音是由于缺省的 PCI 等待时间设置,当运行 3D 加速时,V550 控制了 PCI 总线。这就是原因。V550 是 AGP 2X 卡,当关闭 AGP(以增加稳定性)后,到主存的卡的带宽减少了 75%!现在,当 V550 试图通过较慢的 PCI 总线获取与原来同样数量的数据时,几乎 100% 占用 PCI 总线,这是造成声音设备有问题的原因。由于音频设备的数据缓冲区通常较小,需要及时地将音频数据发送给它们以避免缓冲区欠载运行,因而它们特别易受 PCI 等待时间问题的影响。使用当前设置,V550 使用如此之多的 PCI 带宽,以至于没有留给声卡足够带宽用来传输数据,所以缓冲区欠载运行造成声音扭曲。

对于这个问题有两种可能的解决方案。第一种也是最明显的方案,使用 setpci 命令减少 V550 的 PCI 等待时间。这使得能够迅速地共享 PCI 总线,其它设备以较短的等待时间就可以传输它们的数据。我使用 setpci 命令来尝试这种解决方案,它起作用了。然而,我不准备采用这种方法,因为我想 最大化已经受到影响的 3D 图形性能,而不是进一步降低其性能。

我决定尝试第二种方案,该方案较之第一种,性能有所提高。不是减少 V550 PCI 总线等待时间,而是将所有设备的 PCI 等待时间都提高到相对较高的值 - 176(通常设备的缺省值大约是 32,除了 V550 缺省设为 200 以上)。然后,将对易受等待时间影响的设备的 PCI 总线等待时间设置成最大值 - 248。正如我希望的,声卡通过总线以相对较大的数据块突发传送数据,从而解决了这个问题。同时,其它设备也可以传输大块的数据,数据恰好小到不独占总线,大到能有效地使用总线。因为可以解决声音问题,同时又增加了机器 PCI 总线的有效带宽,所以我非常满意这种解决方案。下面是实现该诀窍的系统启动脚本摘录:

#"open up" the PCI bus by allowing fairly long 
bursts for all devices, increasing performance
setpci -v -d *:* latency_timer=b0

#maximize latency timers for network and audio, 
allowing them to transmit
#more data per burst, preventing buffer over/underrun conditions

setpci -v -s 00:0f.0 latency_timer=ff
setpci -v -s 00:0e.0 latency_timer=ff

在第一行,-d *:* 选项告诉 setpci 将这个设置应用到所有 PCI 设备。latency_timer=b0 选项将计时器设置为 176("b0" 是 176 的十六进制表示。)。最后两行的 -s 选项指定按照 PCI 总线/插槽和功能而不是按厂商和设备 ID 来设 PCI 设备。也就是当您输入 lspci 命令时,列出的第一串数字。ff 值指定了等待时间计时器设置为 256,它会由 setpci 取整到 248。如果碰到相关 PCI 等待时间计时器相关问题,可以用 lspci 和 setpci 来尝试查找您系统的最优值。如果硬件能自己处理它,最好将计时器的值设置较大一些。

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

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

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