我们在遇到linux下的程序性能问题或做故障排查的时候,需要快速做个粗略的定位,再做详细的分析,检查项目包括:1。uptime〔rootlocalhost〕uptime20:20:46up41days,3:56,6users,loadaverage:0。22,0。20,0。15 依次是最近1分钟,5分钟,15分钟的系统平均负载,也就是有多少个任务在执行(包括阻塞在IO上的进程),注意和cpu利用率区分,真正区分系统是否繁忙。2。dmesgtail〔rootlocalhost〕dmesgtail〔2845144。551570〕tg30000:19:00。1em4:Linkisupat1000Mbps,fullduplex〔2845144。551577〕tg30000:19:00。1em4:FlowcontrolisonforTXandonforRX〔2845144。551580〕tg30000:19:00。1em4:EEEisenabled〔2845144。551593〕IPv6:ADDRCONF(NETDEVCHANGE):em4:linkbecomesready〔2845167。145618〕tg30000:19:00。1em4:Linkisdown〔2845173。199638〕tg30000:19:00。1em4:Linkisupat1000Mbps,fullduplex〔2845173。199645〕tg30000:19:00。1em4:FlowcontrolisonforTXandonforRX〔2845173。199647〕tg30000:19:00。1em4:EEEisenabled〔2845183。488170〕tg30000:19:00。1em4:Linkisdown〔3506943。464711〕nrpdflushthreadsexportedinprocisscheduledforremoval 查看系统的日志,oom被杀的进程这里面可以看到记录,还可以看到其他的错误,内核问题经常会在这里面有所提示。3。vmstat1〔rootlocalhost〕vmstat1procsmemoryswapiosystemcpurbswpdfreebuffcachesisobiboincsussyidwast0016472825841167996540800180000100000016472825841167996540800032252715970010000001647282584116799654080000252515960010000001647282584116799654080000253815350010000001647265224116799668640000256216220010000001647266192116799654080000253415540010000 偏向总体指标包括cpu,内存,io和关注几个点:cpu指标的r:标识CPU上正在执行和等待执行的进程数量,一个比cpu数量更多的值,标识cpu资源处于饱和状态;其他us,sy,id,wa,st和top命令含义一样。 内存资源里面的free:空闲内存的数量;si和so:页面换入和换出,内存不够了,才会启动换出和换入。4。mpstatPALL1〔rootlocalhost〕mpstatPALL1Linux3。10。0693。el7。x8664(localhost。localdomain)03032022x8664(56CPU)08:22:50PMCPUusrnicesysiowaitirqsoftstealguestgniceidle08:22:51PMall0。000。000。020。000。000。000。000。000。0099。9808:22:51PM00。000。000。000。000。000。000。000。000。00100。0008:22:51PM10。000。000。000。000。000。000。000。000。00100。0008:22:51PM20。000。000。000。000。000。000。000。000。00100。0008:22:51PM30。000。000。000。000。000。000。000。000。00100。0008:22:51PM40。000。000。000。000。000。000。000。000。00100。0008:22:51PM50。000。000。000。000。000。000。000。000。00100。00 将每个cpu在各个状态下的时间打印出来,可以发现cpu的处理没有均衡等问题。5。pidstat1〔rootlocalhost〕pidstat1Linux3。10。0693。el7。x8664(localhost。localdomain)03032022x8664(56CPU)08:23:58PMUIDPIDusrsystemguestCPUCPUCommand08:23:59PM0100。000。980。000。9815rcusched08:23:59PM03200。000。980。000。983khungtaskd08:23:59PM99721020。000。980。000。987mysqld08:23:59PM9941694140。980。980。001。9652clickhouseserv08:23:59PM04574750。001。960。001。9631pidstat08:23:59PMUIDPIDusrsystemguestCPUCPUCommand08:24:00PM0930590。001。000。001。0031taosd08:24:00PM9941694140。001。000。001。0052clickhouseserv08:24:00PM04574751。001。000。002。0031pidstat08:24:00PMUIDPIDusrsystemguestCPUCPUCommand08:24:01PM0930591。000。000。001。0031taosd08:24:01PM9941694142。001。000。003。0052clickhouseserv08:24:01PM04574750。002。000。002。0031pidstatCAverage:UIDPIDusrsystemguestCPUCPUCommandAverage:0100。000。330。000。33rcuschedAverage:03200。000。330。000。33khungtaskdAverage:99721020。000。330。000。33mysqldAverage:0930590。330。330。000。66taosdAverage:9941694140。990。990。001。99clickhouseservAverage:04574750。331。660。001。99pidsta 按照每个进程展示cpu的使用情况,支持滚动输出,这样就可以打印不同时间段的每个进程的cpu使用情况。6。iostatxz1〔rootlocalhost〕iostatxz1Linux3。10。0693。el7。x8664(localhost。localdomain)03032022x8664(56CPU)avgcpu:usernicesystemiowaitstealidle0。060。000。020。000。0099。91Device:rrqmswrqmsrswsrkBswkBsavgrqszavgquszawaitrawaitwawaitsvctmutilsda0。000。610。1813。4333。15449。4170。890。053。998。303。930。090。13dm00。000。000。020。270。5111。5785。580。002。874。282。790。240。01dm10。000。000。000。000。000。0045。040。008。277。4228。757。650。00dm20。000。000。1713。7832。63437。8467。480。053。908。693。850。090。12avgcpu:usernicesystemiowaitstealidle0。040。000。040。000。0099。93Device:rrqmswrqmsrswsrkBswkBsavgrqszavgquszawaitrawaitwawaitsvctmutilsda0。000。000。0019。000。00308。0032。420。000。000。000。000。000。00dm00。000。000。001。000。0024。0048。000。000。000。000。000。000。00dm20。000。000。0018。000。00284。0031。560。000。000。000。000。000。00avgcpu:usernicesystemiowaitstealidle0。000。000。020。000。0099。98 主要显示存储设备的IO性能的,await为IO响应的平均时间,以毫秒为单位,这是应用需要等待的时间,包括IO队列排队时间和服务时间。 avgqusz:设备请求队列的平均长度,可以认为为IO的繁忙程度;avgrqsz:每次IO请求的扇区的大小,单位为扇区512个字节,表示IO每次的大小7。freem 以MB为单位查看空余内存大小,我更喜欢用freeh这才是人看的。〔rootlocalhost〕freemtotalusedfreesharedbuffcacheavailableMem:1281923927461839778080123245Swap:409504095〔rootlocalhost〕freehtotalusedfreesharedbuffcacheavailableMem:125G3。8G45G97M76G120GSwap:4。0G16K4。0G8。sarnDEV1 各个网卡的流量大小,〔rootlocalhost〕sarnDEV1Linux3。10。0693。el7。x8664(localhost。localdomain)03032022x8664(56CPU)08:27:25PMIFACErxpckstxpcksrxkBstxkBsrxcmpstxcmpsrxmcsts08:27:26PMp2p10。000。000。000。000。000。000。0008:27:26PMp2p20。000。000。000。000。000。000。0008:27:26PMp3p10。000。000。000。000。000。000。0008:27:26PMp3p20。000。000。000。000。000。000。0008:27:26PMlo5。005。002。732。730。000。000。0008:27:26PMem40。000。000。000。000。000。000。0008:27:26PMem20。000。000。000。000。000。000。0008:27:26PMem127。002。002。870。270。000。0019。0008:27:26PMem30。000。000。000。000。000。000。0008:27:26PMp1p10。000。000。000。000。000。000。0008:27:26PMp1p20。000。000。000。000。000。000。00 字段解释:rxpcksTotalnumberofpacketsreceivedpersecond。txpcksTotalnumberofpacketstransmittedpersecond。rxkBsTotalnumberofkilobytesreceivedpersecond。txkBsTotalnumberofkilobytestransmittedpersecond。rxcmpsNumberofcompressedpacketsreceivedpersecond(forcslipetc。)。txcmpsNumberofcompressedpacketstransmittedpersecond。rxmcstsNumberofmulticastpacketsreceivedpersecond。9。sarnTCP,ETCP1 用此工具查看tcp指标,actives每秒本地发起的TCP连接数,passives每秒远端发起的TCP连接数,retranss为每秒重传的包数〔rootlocalhost〕sarnTCP,ETCP1Linux3。10。0693。el7。x8664(localhost。localdomain)03032022x8664(56CPU)08:30:46PMactivespassivesisegsosegs08:30:47PM0。000。006。936。9308:30:46PMatmptfsestressretranssisegerrsorstss08:30:47PM0。000。000。000。000。0008:30:47PMactivespassivesisegsosegs08:30:48PM0。000。004。004。0008:30:47PMatmptfsestressretranssisegerrsorstss08:30:48PM0。000。000。000。000。0008:30:48PMactivespassivesisegsosegs08:30:49PM0。000。004。004。0008:30:48PMatmptfsestressretranssisegerrsorstss08:30:49PM0。000。000。000。000。00