推广大师
- 最后登录
- 2020-12-14
- 注册时间
- 2020-4-22
|
机器性能
接下来让我们来看看衡量机器性能的指标——load 和 cpu使用率。
cpu使用率:程序在运行期间实时使用的cpu比率。
load:代表着一段时间内正在使用和等待使用cpu的任务平均数,这是一个很玄妙的定义,我至今没有完全明白它的确切的定义和计算公式。
鉴于load的计算没有明确的计算公式,因此不好分析影响load的因素,也不好像应用性能那样总结出影响qps和rt的具体原因,现在只对load表现出来的问题做一些总结。
机器负荷高,但应用负荷不高
即机器的load很高,但是应用的qps、rt都不高,这种情况可能有以下几种原因:
其他资源导致cpu利用率上不去,大量线程在执行其他动作或者在等待,比如io的速度太慢,内存gc等。
如果系统资源不是瓶颈,则由可能是锁竞争、后端依赖的服务吞吐低、没有充分利用多核资源,多核却使用单线程。
查看机器load高的常见方法:
机器的io(磁盘io、网络io):vmstat、iostat、sar -b等。
网络io:iftop、iptraf、ntop、tcpdump等。
内存:gc、swap、sar -r。
锁竞争、上下文切换、后端依赖。
机器负荷高,应用负荷也高
即机器load很高,应用qps也很高:
典型的cpu型应用,rt中Tiw很小,基本上全是cpu计算,可以尝试查找cpu耗的较多的线程,降低cpu计算的复杂度。
应用的负荷真的很大,当所有优化手段都做了,还是无法降下来,可以考虑加机器,不丢人。
对于load偏高的原因,不仅仅只是有应用自身引起的,机器上其他程序也有可能导致机器整体的load偏高。
更多香港服务器的配置和机型 请联系 QQ:24533290 TG: @cc_cang 微信:CC13125382365(电话同号)
|
|