关于服务器性能的一些思考

  • 时间:
  • 浏览:1
  • 来源:5分排列3_5分排列3官网

对于load偏高的由于,不仅仅只是我有应用自身引起的,机器上或多或少多线程 是是不是可能性由于机器整体的load偏高。

为哪些呢,可能性实际运行过程中,实际的最佳多线程 数的大小是无需超过设定的多线程 大小的,只是我在Tn

目前线上机器是是不是多核的,没法 在多核情況下,应用qps的计算应该是:

在平时的应用性能优化过程中:

亲戚亲戚或多或少人对上端的公式进行下外理,可不可以 得到:

最佳多线程 数的定义:刚好消耗完服务器瓶颈资源的临界多线程 数。计算公式如下:

接下来让亲戚亲戚或多或少人来看看衡量机器性能的指标——load 和 cpu使用率。

qps计算:

当多线程 的数量超过最佳多线程 数之后,rt的则和多线程 数正相关,即多线程 不要 rt越长,或多或少太好也是很好理解的,多线程 的rt由Tic和Tiw构成,一般情況下Tic无需有不要 的变化,rt变成说明多线程 等候的时间变长,超过最佳多线程 之后,说明多线程 增加了一主次等候时间,有可能性是在等候锁(锁的竞争更激烈)、可能性是在等候cpu调度、可能性是多线程 切换太高。

一图来总结下多线程 数、qps、rt之间的关系:

多线程 数过大(超过最佳多线程 数),亲戚亲戚或多或少人先把结论摆出来,再来求证。

压测结果如下:

正是可能性三种生活繁杂性和不取舍性给系统性能优化和查找性能间题带来了困难,实际工作中还是要针对具体间题具体对待,之后亲戚亲戚或多或少人可不可以 对已知的间题和土办法做归纳和总结,并逐步在实际间题中去验证和充足扩充,以形成外理间题的土办法论。

即:rt = (并发多线程 数/最佳多线程 数)* 最佳多线程 时的rt。

cpu使用率:多线程 在运行期间实时使用的cpu比率。

load:代表着一段时间内正在使用和等候使用cpu的任务平均数,这是一个很玄妙的定义,我至今没法 完整性明白它的确切的定义和计算公式。

影响系统性能的具体因素还有只是我,如内存只是我很常见的间题,内存泄露、频繁gc等,之后内存也应该被重视,限于篇幅,内存的间题不专门展开。

对于亲戚亲戚或多或少人大多数系统来说,业务逻辑是是不是是很繁杂,还要耗费极少量cpu计算的场景很少,之后

Tic在rt中的占比是是不是很高,占比高的还是Tiw。

文章的内容主要来自《服务器端性能优化-提升QPS、RT》、《由RT、QPS到间题排查思路》两篇PPT和ata上的或多或少文案的总结,涉及到具体测试案例可不可以 参考着两篇ppt中的例子。

影响系统性能的因素有只是我,没法 一个明确的公式可能性土办法能说明是哪一个具体的因素对系统造成了多大的影响,对或多或少相关因素又产生了多大的影响,影响是好是坏。

鉴于load的计算没法 明确的计算公式,之后不好分析影响load的因素,只是我好像应用性能那样总结出影响qps和rt的具体由于,现在只对load表现出来的间题做或多或少总结。

注:这里的使用到的测试用例和数据来源于《服务器端性能优化-提升QPS、RT - 小邪》

在之后的测试中,一个既定条件,即多线程 的大小被预设为最佳多线程 数,之后线上机器运行过程中,最佳多线程 数是没能计算的,外理逻辑的多线程 大小也可能性性之后好只是我最佳多线程 数,往往是是不是大了只是我小了,非要接近于最佳多线程 数。

之后写到rt的计算土办法是,rt=Tic+Tiw,之后这是单多线程 可能性最佳多线程 情況下的,非最佳多线程 情況下,rt的计算公式应该如下:

平常的工作中,在衡量服务器的性能时,时不时会涉及到十几个 指标,load、cpu、mem、qps、rt,其中load、cpu、mem来衡量机器性能,qps、rt来衡量应用性能。

而对于应用性能的一个指标,qps当然是希望越大越好,rt越小越好。提高qps可不可以 充分利用机器资源,更少的机器来完成更多的请求,而降低rt会提升响应速率单位单位,提升用户体验。

查看机器load高的常见土办法:

本文的目的是梳理下日常工作中涉及到性能点时的或多或少思考,总结土办法和理论,形成此人 的土办法论,希望对之后相似的工作有一定的指导。

压测模型如下:

在进行理论总结之后,对接下来要用到的或多或少参数做下说明:

rt的计算公式:

在文章结束英语 前,亲戚亲戚或多或少人可不可以 思考十几个 具体的间题:

结论:

平时做性能优化可能性查找性能间题的目的,只是我在提高qps,降低rt、保证load、cpu、mem稳定,之后至于亲戚或多或少人之间哪些关系,是是是不是有相互影响,各个指标主要由哪些因素决定等等,往往是两眼一抹黑。优化点做了只是我做了,至于会哪些结果,为哪些会生效,会无需对或多或少指标哪些影响,心里十几个 是没法 底的,先上线看看再说,不行再来。

怎样才能理解最佳多线程 数和其计算公式?

在一般的服务器上,多线程 运行的瓶颈资源有可能性是cpu、也可不可以 是内存、锁、IO等,亲戚或多或少人都可不可以 影响到多线程 运行的时间,体现在公式上只是我Tic和Tiw,分表代表多线程 执行的cpu运行时间和多线程 等候资源的时间。之后理论上,为了让cpu充分使用,执行多线程 的多线程 数只是我(Tic + Tiw)/Tic。

可不可以 看得人在最佳多线程 下,qps的大小只和Tc成反比,也只是我说要增大qps倘若减小Tic就可不可以 了。

这里说下我对Tic和Tiw的理解,既然瓶颈资源不仅仅只是我有cpu,为哪些要把cpu单独拎出来,而或多或少种种都归结为Tiw。我就 是可能性机器的性能受影响的因素只是我,可能性性完整性体现在公式中,为了方便计算和推理,只是我取舍了好统计的Tic做为一个主要指标,而或多或少都归结为Tiw。只是我这只是我一个计算上的技巧,公式不代表真实情況,之后公式可不可以 给亲戚亲戚或多或少人指明方向,繁杂思考的土办法。

Cu是cpu使用率,线上机器一般无需把cpu跑到100%,只是我在计算qps时还要乘上一个系数,代表期望cpu使用率使用情況下的qps。

多线程 数过小的结果,qps上不去,cpu利用率不高,rt不变,三种生活很好理解,极端情況下只一个多线程 ,没法 Tiw这段时间内,cpu虽然是白白浪费了。

多核最佳多线程 下qps:

一般情況下对于机器性能,load、cpu、mem是越低越好,可能性一个超过了既定指标都代表着可能性时不时冒出了间题,就还要尽快外理(当然有可能性是应用的间题是是不是可能性是机器上或多或少多线程 引起的),反正只是我可能性不外理,时间长了肯定不好。

一般写代码的之后一定会用到多线程 ,没法 多核多线程 下qps为:

现在让亲戚亲戚或多或少人用例子在测试验证下。

之后最佳多线程 数的计算公式中可不可以 看出,应用的最佳多线程 数是和实际的运行情況相关的,是一个随时变化的量,在应用运行过程中没能取舍一个明确的值,只是我qps的计算公式还还要根据实际情況来做下改变。最终qps计算如下,Tn一般是一个取舍的值,即外理逻辑多线程 的大小,而Tno是一个理论计算值。

即机器load很高,应用qps也很高:

注:以下的讨论均限于机器负载小于平均负载的情況,机器负载太高的之后,以下的公式不须适用。

知道了多线程 数量对rt的影响,再回过头来看看多线程 数量对qps的影响。

在多线程 数没法 达到最佳多线程 数之后,增加多线程 可不可以 提高qps,一同rt不变(增加不大);当多线程 数超过了最近多线程 则qps无需在提高,而rt则会变大。

即机器的load很高,之后应用的qps、rt是是不是高,三种生活情況可能性有以下几种由于:

对于rt和qps的计算公式亲戚亲戚或多或少人都可能性不太熟悉,不做不要 说明,在这里引出一个重要的概念,最佳多线程 数。