最近看了这本书《图解性能优化》。总体感觉这本书扫盲还是不错的。而且得益于作者精益的态度,或深或浅,图文并茂,一点也不觉得乏味。这里整理些自己看书中觉得需要记录的东西。
- 考虑性能时两个重要的概念:响应和吞吐。实际环境中,有些系统偏重响应,有些偏重吞吐。具体分析,掌握平衡。
- 以前一直分不清B树和B+树和B*树的区别。b树一般指平衡多叉树。B+树是是B树的变种,且只有叶子节点记录数据 B*树是基于B+树的基础上,叶子节点之间再用链表关联。
- 散列算法有一个隐形的缺点:用散列计算的时候,并将其放入数组中,整个工作需要花费很长时间(O(n))。进行查找前这个工作很费时。所以要视实际情况而定。
- 性能信息可以分为3类。概要信息(sar,vmstat),事件记录信息(tcpdump...)和快照信息(ps,top)。
-
计算等待队列的平均等待时间
-
推荐的性能信息
- sar工具
可以知道CPU的使用率和空闲情况。读写I/O的量,内存的概况等信息。 -
vmstat
等待执行的平均进程数,由于某些原因被迫等待的平均进程数。CPU的使用率,Swap空间的I/O,通常的I/O,上下文切换次数等
- netstat
使用-a参数,能知道哪个瞬间的套接字;使用-r参数,能知道路由信息;使用-i参数,各个接口的统计信息。 - iostat
磁盘的繁忙程度(使用率)。-x参数,知道响应时间和各种队列的长度。通过检查队列的长度,就能知道有多少I/O请求已被发送,或者有多少正在等待。svctm列“服务时间”或者为响应时间。 - wireshark、tcpdump等
详细掌握正在进行的通信。通过检查数据包信息,大致猜出哪个正在处理、哪个正在等待。 - pstack
能知道某个程序在某个瞬间执行了什么样的处理。 - IOPS
物理磁盘每秒钟能处理的次数。普通磁盘IOPS最大为200左右。I/O变大,IOPS会降低。 - 性能鼓掌数据一般保存2周左右。考虑节假日。
- 由于关联性或硬件中断,可能会导致仅一部分CPU的负载上升。vmstat不能了解具体情况,可以使用mpstat来调查各个CPU的情况。
16.服务器的性能设置,如果设置为动态增长的话,要考虑扩的时候,性能会变差。 - 90百分位。只要90%的数据在目标时间范围内就行。
-
回退性能测试
19.基本测量项目
20.性能测试报告