|
|
|
发表于:
2015-1-26 10:19:45 |
[全部帖]
[楼主帖]
|
楼主
|
|
| |
|
|
- 禁用APM和其他没用的时钟(包括ACPI?)
- 在单用户模式里面测试。像cron和其他的守护程序会添加干扰。sshd也会造成一些问题,如果也对sshd进行测试,则要禁掉ssh v1的 key regeneration,或者在测试时杀掉sshd守护进程。
- 不要运行ntpd
- 最好不要运行syslogd,需要syslog消息的测试,则使用空的/etc/syslogd.conf文件来运行syslogd。
- 尽量减小磁盘I/O。
- 不要挂载不需要的分区
- 尽可能把/,/usr和其他的文件系统挂载为只读,这会去除atime更新,以减少I/O。
- 在测试之前,使用newfs并且使用tar或dump恢复整个系统,unmount再挂载之后再进行测试。这将得到一个干净、文件连续的系统布局。对于全系统的测试,/usr/obj最好这样做一次。使用dd(i.e.: dd if=myimage of=/dev/ad0s1h bs=1m)来恢复文件系统会得到100%的提升。
- 使用malloc或md的内存盘。
- 每次测试后重启系统,这将使系统更连续。
- 从内核中去掉所有不必要的驱动。例如如果USB不是必须的话,不要把USB放进内核。连接到系统的驱动经常会产生timeout tick。
- 不使用的硬件不要进行配置,如果磁盘在测试中不使用的话,用atacontrol和camcontrol把磁盘卸载掉。
- 如果不测试网络,不要配置它,或者等网络测试完成后再连接其他机器。如果必须测试网络,要注意观察广播和组播流量,即使是难以觉察的流量,也会占用CPU时间。
- 让每个文件系统放在它自己的磁盘上(译注:每个文件分区单独磁盘?),这可以优化磁头的寻道从而减小抖动。
- 通过串行输出或VGA终端来最小化输出。输出到文件会减少抖动。在测试时不要按键盘,即便是space或back-space也不要按。
- 要测试足够长的时间,但是不要太长。测试时间太短则时间戳是个问题。如果太长,测试变化和飘移会影响电脑的时针频率。大致的原则:至少一分钟,但不要超过一小时。
- 尽量保持测试机器的测试,这会影响到时钟晶体和磁盘算法。为了获得稳定的时钟,可以考虑注入其他稳定的时钟,例如使用OCXO + PLL注入到系统中,用来取代主板的xtal。
- 对于“之前”和“之后”的代码,测试至少3次,最后超过20次。尝试在每次测试之间留一定的间歇时间,这会有利于消除交互的环境影响。最好不要间隔1:1,3:3比较合适。
- 用ministat命令来看一下有没有重要的数字。如果你忘记或从来没有学习过标准的偏差和学生t测试,可以考虑买一本“Cartoon guide to statistics” ISBN: 0062731025,
- 如果不测试后台fsck,则不要运行后台的fsck。并且,要在/etc/rc.conf中禁用掉60秒后开始fsck。
- 如果得到了一个很差的测试结果,先要检查中断,看是不是有不明的过高中断源。某些版本的ACPI会产生超高的中断。遇到这种情况,可以用vmstat -i来查找不正常的事情。
- 对于内核和用户态的优化参数一定要小手,比如调试参数。这很容易导致对比条件的改变。
- 除非必要,永远不要在内核中启用WITNESS和INVARIANTS选项。WITNESS会导致400%以上的性能丢失。同样的,用户态的malloc参数在-CURRENT和release版本中也不一样。
|
|
|