性能调优,就是一个诊断性能瓶颈,然后针对性能问题点进行优化的过程,前两天听完shaoling的讲座学到很多。做APP和System的两拨人现在看到的计算机是不同的。APP的开发者看到的是抽象接口,已经不再关心底层的实现。当一个未经优化的程序由System背景的人优化一次通常会有2-10倍的性能提升,当然优化过后再有提升再牛的大牛也顶多20%的提升。即使现在APP开发已经不再去深究底层,但是对工作负载的密集类型了解还是十分必要的,毕竟算法要跑在机器上。这个优化的过程是怎样实现的呢,这就不得不说我们需要两个工具,Benchmark和Profiler。Benchmark进行性能的压榨和暴露问题,Profiler将整个运行状况呈现出来不管是log还是可视化的界面。
Benchmark现在主流的一些Benchmark,Hadoop的Hibench ,GridMix,Berkeley Bigdatabench以及 TPC-DS等都有各自适应的场景。Benchmark就是要在指定的数据集上跑各种不同密集型的计算Workload来暴露性能问题。
Profiler可以在不同层次,体系结构,JVM,大数据系统,各个层次去看系统的CPU,Mem,IO的利用率,吞吐量,任务执行时间,去发现费时费空间的作业 ->任务->代码。最后针对指定的出问题的代码进行调优和优化,或者对运行配置参数进行调整。
Benchmark和Profiler就是系统人的居家必备良器。
Benchmark与Profiler---性能调优的左右手
时间: 2024-11-04 07:23:23