加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

阿内里试题:线上接口变慢,怎样办理

发布时间:2021-05-26 12:28:12 所属栏目:移动互联 来源:互联网
导读:这是口试阿里时的一道题,也是平常事变中处理赏罚线上题目常常碰着的一类题目,以是耐性看完吧,无论是事变照旧口试,辅佐都很大。 起首线上接口变慢,缘故起因也许有很

这是口试阿里时的一道题,也是平常事变中处理赏罚线上题目常常碰着的一类题目,以是耐性看完吧,无论是事变照旧口试,辅佐都很大。

起首线上接口变慢,缘故起因也许有许多,有也许是收集,有也许是慢 SQL,有也许是处事自己呈现了题目,尚有也许是呆板到达了机能瓶颈。而呆板机能瓶颈也又可以分为磁盘 IO 瓶颈、CPU 机能瓶颈、网卡瓶颈等等,本文首要从 CPU 呈现机能瓶颈这个角度来说明下题目呈此刻哪儿。

为什么选 CPU 来说明呢?这是由于这凡是是我们排盘查题的第一步,自下而上排查,而通过 CPU 每每能辅佐我们说明出题目呈此刻哪儿。

top

起首行使 top 呼吁,可以看到呆板有几多个 CPU,以及 CPU 已往 1 分钟、5 分钟、15 分钟的均匀负载,各个 CPU 的行使率等信息。本日首要说明下 CPU 的负载和行使率的区别,这两个指标常常轻易搞混。

CPU 的负载(load)和行使率(utilization)

起首,必要明晰的是,CPU 的负载(load)和行使率这两个指标并不是一码事。第一,它们的计较公式纷歧样,也就是说它们所代表的寄义也就纷歧样;第二,这两个指标假如非常,我们排盘查题的偏向也就差异。

负载的计较公式

load = (D+R)/SUM(ALL)

D 和 R 是什么意思呢?

一台 linux 呆板在运行时会有很有许多历程,这些历程凭证状态可以细分为 7 类:

D(TASK_UNINTERRUPTIBLE)状态:不行间断的就寝状态,处于就寝状态,可是不行以被间断。一样平常由 IO 守候引起(磁盘 IO,收集 IO、外设 IO 等),呈现很是短暂,一样平常很难用 ps 可能 top 等器材捕获到,sleep 状态下的历程不会占用 CPU 资源。

R(TASK_RUNNING)状态:可执行状态,这种历程处于 CPU 的可执行行列中,正在运行可能守候 CPU 运行。

S(TASK_INTERRUPTIBLE)状态:可间断的就寝状态,差异于 D,该状态下的历程也是休眠状态,可是可以被间断。这种历程一样平常在守候某种变乱的产生,譬喻:socket 毗连、信号量等。一但这些时刻啊完成,历程就会被叫醒,假如不是在高负载时期,大部门历程都处于 S 状态,不占用 CPU 资源。

T(TASK_STOPPED)状态:停息状态,历程处于遏制运行状态。

t(TASK_TRACED)状态:跟踪状态。

Z(EXIT_ZOMBIE)状态:僵死态,这种历程现实上已经竣事运行了,只不外父历程还没有接纳它的资源(好比历程的描写符、PID 等),僵死历程会开释掉除了历程进口之外的全部资源。

X(EXIT_DEAD)状态:衰亡态

「因此 D+R 暗示的是呆板的整体负载,即 CPU 负载(正在运行着的历程)+Disk 负载+收集负载+其他外设负载,当呈现负载高时,那么题目也许不只仅呈此刻 R 态的历程,尚有也许是磁盘和收集 IO 引起的。」

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读