性能(调优)三种吹毛求疵的行为
做个性能调优,也看过别人的性恩调优,我认为有三种吹毛求疵的性能调优行为,害人害己,有必要拿出来说一下。
?
第一个是片面虚拟机调优: 调优行为是个系统行为,能起到立竿见影的效果的有数据库调优,机器升级,或者架构上的调整,如引入缓存,去掉同步锁,采用异步和并发等。虚拟机调优在我看来,是调优的最后一步,也就是说,其他办法你都用了但你老板还要你做的更好,那就只好采用虚拟机调优。但虚拟机调优真的有用么?虚拟机的参数设定默认是平衡的,调优无非是根据你的业务情况来调整,但通常系统业务都非常复杂,采用这种方式能兼顾这钟业务,但兼顾不了那种业务,所以我认为虚拟机调优用处不大。与其花时间底层搞虚拟机调优,还不如业务层看看。之所以有些人爱提JVM调优,无非是这些人非你系统的人,如专门调优咨询,或者公司的平台部的,他们只能通过这种方式去调优。
?
第二个片面行为是吹嘘产品每天能处理上亿的量到上百亿量: 我认为只要系统设计是水平扩展的,那要处理多少量都可以,无非是增加机器而已。每天处理量多,只能证明其稳定可靠罢了。不能用这个作为噱头证明其性能多好以误导潜在的使用者
?
第三个片面强每秒吞吐量,但却没有提供CPU,磁盘等物理设备的消费。假如同样俩个产品,你的比别人快俩倍,但消费的CPU也比别人多俩倍,那在某些场景下,你的产品也许并无优势。潜在的使用者如果使用了你的产品而影响了其他系统,这就不好了,比如我前段时间调优,目标大概是20秒内业务需要处理100万数据。虽然后来调优成功了,但CPU,磁盘都达到了峰值,如果按照这个调优思路上线,会影响其他系统的。 所以谈及性能的时候,也把CPU,磁盘列出了吧,就一个sar命令,观察一下看看就行了。我在帮助中国移动研究院一个项目中做消息中间件调查,这些指标里就必须包括运行消费的硬件,如CPU(系统,用户),磁盘(读写),带宽(输入,输出)等
?
?
?
?