10分钟快速定位互联网应用报障的方法


一.通常的报障类型

1.异常流量导致服务器负载高

2.数据库负载高(应用被刷或sql性能问题或机器很久没重启后的假象)

3.项目上线后遇到的各种问题(服务器负载高、页面豆腐块没数据或50x、死循环、页面响应慢等)

二.快速排查定位报障的步骤:

第一步应用方面

1.查看应用日志

vi所有日志stdout、stderr、jdkout、jvm等log,都细看下

搜索/xxxx

按n往下查xxxx

ctrl+f往下翻页

ctrl+b往回翻页

2.查看应用线程情况、monitor、jvm信息

第二步查看服务器信息方面

1.cpu

1)top

继续按

c:按CPU占用排序且显示具体的进程明细

M:按内存使用排序

1:显示各CPU的使用情况

回车:刷新数据

“load average”为当前系统负载的平均值,三个值分别为1分钟前、5分钟前、15分钟前的平均数

cat /proc/cpuinfo查看cpu相关参数

cat /proc/loadavg也可看负载情况

2.内存

1)free -m

注意:空闲内存=free+buffers+cached=total-used

cat /proc/meminfo查看内存相关配置参数

3.网络连接/IO

1)vmstat

vmstat 5 -S m:以5秒的数据刷新vmstat数据(单位为m)

参数含义

Procs

r:等待CPU资源的进程数,大于cpu核数时cpu资源已占满

b:处在非中断睡眠状态的进程数

w:被交换出去的可运行的进程数。此数由linux计算得出,但linux并不耗尽交换空间

Memory

swpd:虚拟内存使用情况,单位:KB

free:空闲的内存,单位KB

buff:被用来做为缓存的内存数,单位:KB

Swap

si:从磁盘交换到内存的交换页数量,单位:KB/秒

so:从内存交换到磁盘的交换页数量,单位:KB/秒

IO

bi:发送到块设备的块数,单位:块/秒

bo:从块设备接收到的块数,单位:块/秒

System

in:每秒的中断数,包括时钟中断

cs:每秒的环境(上下文)切换次数

CPU

按CPU的总使用百分比来显示

us: CPU使用时间

sy: CPU系统使用时间

id:闲置时间

2)netstat

netstat -nat|grep -i "80"|wc -l:查看80端口下所有连接数

netstat -an | grep ESTABLISHED | wc -l:查看正在通信的连接数

netstat -n | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a, S[a]}':查看tcp连接状态数情况

返回结果示例:

LAST_ACK 5

SYN_RECV 30

ESTABLISHED 1597

FIN_WAIT1 51

FIN_WAIT2 504

TIME_WAIT 1057

其中的

SYN_RECV表示正在等待处理的请求数;

ESTABLISHED表示正常数据传输状态;

TIME_WAIT表示处理完毕,等待超时结束的请求数。

netstat  -na:显示所有网络连接

netstat  -nap:显示所有网络连接,并带上进程相关信息

netstat  -nat:显示所有tcp类型的网络连接

netstat  -ln:显示所有监听状态的网络连接

一般跟grep组合使用

4.进程

1)ps

ps -aux:显示所有用户进程详情,一般跟grep组合使用

ps -ef:显示所有用户进程详情另一种风格,一般跟grep组合使用

如果显示不全可以通过-w加宽,如ps aux -www

如:ps -ef |grep java或ps -aux |grep java

ps -ef -www|grep java或ps -aux -www|grep java

5.JVM

1)GC情况

jstat

jstat -gccapacity  :JVM各区的剩余状态

jstat -gcutil :JVM各区的占用情况

jstat -gccause :jstat -gcutil基础加上gc的原因

jpid java为进程id,另外可以指定更新频率,如-h5 1s:每一秒更新一次,并每隔5条加上header显示

示例:jstat -gcutil 31479 500

即会每500毫秒一次显示进程号为31479的java进程的GC情况,

详细信息

jstat -gc31479500

即会每500毫秒一次显示进程号为31479的java进程的GC情况,

结果说明

显示内容说明如下(部分结果是通过其他其他参数显示的,暂不说明):

S0C:年轻代中第一个survivor(幸存区)的容量(字节)

S1C:年轻代中第二个survivor(幸存区)的容量(字节)

S0U:年轻代中第一个survivor(幸存区)目前已使用空间(字节)

S1U:年轻代中第二个survivor(幸存区)目前已使用空间(字节)

EC:年轻代中Eden(伊甸园)的容量(字节)

EU:年轻代中Eden(伊甸园)目前已使用空间(字节)

OC:Old代的容量(字节)

OU:Old代目前已使用空间(字节)

PC:Perm(持久代)的容量(字节)

PU:Perm(持久代)目前已使用空间(字节)

YGC:从应用程序启动到采样时年轻代中gc次数

YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)

FGC:从应用程序启动到采样时old代(全gc)gc次数

FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)

GCT:从应用程序启动到采样时gc用的总时间(s)

NGCMN:年轻代(young)中初始化(最小)的大小(字节)

NGCMX:年轻代(young)的最大容量(字节)

NGC:年轻代(young)中当前的容量(字节)

OGCMN:old代中初始化(最小)的大小(字节)

OGCMX:old代的最大容量(字节)

OGC:old代当前新生成的容量(字节)

PGCMN:perm代中初始化(最小)的大小(字节)

PGCMX:perm代的最大容量(字节)

PGC:perm代当前新生成的容量(字节)

S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

O:old代已使用的占当前容量百分比

P:perm代已使用的占当前容量百分比

S0CMX:年轻代中第一个survivor(幸存区)的最大容量(字节)

S1CMX:年轻代中第二个survivor(幸存区)的最大容量(字节)

ECMX:年轻代中Eden(伊甸园)的最大容量(字节)

DSS:当前需要survivor(幸存区)的容量(字节)(Eden区已满)

TT: 持有次数限制

MTT: 最大持有次数限制

2)jvm内存

jmap

jmap -dump:format=b,file=jmap.log :生成heap dump文件

jmap -heap :显示jvm heap总体情况

jmap -histo:live :显示类实例占用内存情况

./jmap -heap 29760

分析工具:mat

3)jvm线程

jstack

jstack -l :显示线程阻塞/死锁情况

jstack -l    > /tmp/jstack.log把jvm线程栈信息导到文件上

如jstack -l 2255 > /tmp/jstack.log

6.磁盘空间

1)df -h:硬盘存储总体情况

2)du --max-depth=1 -h <路径>:指定路径下所有文件夹的大小(递归一层)

如:du --max-depth=1 -h./

3)du -sh <路径>:指定目录的大小

如:du -sh./

7.其他

1)分析访问日志

如:

分析响应状态码去重

awk '{print $9}' access.log |sort|uniq -c

查看最近访问量最高的页面(.jsp)

#cat access.log |awk '{print $9}'|grep '.jsp'|sort|uniq -c|sort -nr |head -n 10

2)curl命令

指定ua和代理ip


文/阿青(倾力原创),写代码写诗写职场的程序猿大叔,转载此文请联系阿青。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容