1.1常用建议
1.1.1记大量的笔记(记录所有的事情)
在做性能调优问题的时候很重要的一个操作就是记录下所有的事情,包括每一个输出、执行的结果。可以新建一个文件夹,然后把结果的文件都塞到该文件夹内。包括如下:
- 记录硬件/软件的配置情况,比如dmesg和uname –a的输出
- 保存并组织性能结果,记录系统配置的同时也要保存测试的结果。
- 写下命令行调用,可以把复杂的命令写成script或者记录到终端上。
- 记录研究信息和URL,将互联网找到的相关信息记录下来。
记录这些信息之外,在调查问题时,还要牢记以下几点: - 结果的含义可能是不明确的,有时候你需要更多的信息才能理解结果的含义
- 所有的信息都是有用的,就好像侦查破案一样
- 定期回顾你的笔记可以得到新的想法——温故而知新。
1.1.2 自动执行重复任务
Linux 的命令很多,输入负责的命令很容易出现错误。所以,自动执行性能工具和应用程序测试是个好办法。 - 性能工具的调用,建议写成script或者保存到一个txt文件里面。
1.1.3 尽可能选择低开销工具
一般情况下,观察系统会修改系统的行为。(物理上叫做海森堡不确定性原理)所以,我们尽量要使用低开销的工具,比如用ps就不错,而用memprof或者valgrind就开销过大了,会改变系统的行为。
1.1.4 使用多个工具来搞清楚问题
只使用一个工具可能会造成判断上的误导,比如工具A说是IO慢,B说是系统使用了大量的交换。如果只根据A而更换更快的磁盘,结果性能提升很少。实际应该要增加内存,少使用交换,这样就不会有大量的磁盘IO了。
1.1.5 相信你的工具
工具是公正的,要相信它。
1.1.6 利用其他人的经验(慎重)
利用他人的经验可能会事半功倍,但是要保持怀疑的态度。
1.2 性能调查概要
1.2.1 找到指标、基线和目标 - 确定指标,知道什么时候应该要停止优化,比如web的每秒服务的请求数。
- 确定基线,在调整和优化之前,运行应用程序并记录其性能,这就是基线。
- 确定目标,目标会引导你完成性能的追踪。可以尝试寻找其他有相同配置的人,查找工业标准测试程序的结果或者在不同的OS或应用程序上使用你的硬件。
1.2.2 追踪近似问题
1.2.3 查看问题是否早已解决
网上查找相似的信息。
1.2.4 项目开始(启动调查)
开始调查的使用可以尝试下面的一些方法。
分离问题、利用系统差异发现原因、一次只改变一件事、始终在优化后重新测量。
1.2.5 记录,记录,记录