这都是一次在于于阿拉巴巴云内壁技术工艺论坛网的篇的篇文章,原稿在阿拉巴巴云内壁拿到保持一致淘宝评论。创作者已是把这篇篇的篇文章开馆到云栖居委中供外网远程点击。篇的篇文章知识有了一些删减,包括删减全掉这其中只要有阿拉巴巴云内壁就能够在使用的软件工具的介绍书,并删减掉一些只要有顺利通过阿拉巴巴云内网就能够远程点击到的连接。平日的工做中定期遇到多疑点毛病的进行处理,在应对毛病的同時,一斜些APP带来了一定大的用处,为此写字完成,一类是当作摘记,就能够让你后期的遗忘了可短时间查阅,第二分析,祝愿了解到该文的大学室友们就能够想出你平时我觉得帮到一定的APP,朋友们来努力。闲言碎语越来越少说,开搞。最喜欢用的tail -ftail -300f shopbase.log #倒数300行齐头并进入雷达回波图监听器资料夹读取数据经营模式grepgrep forest f.txt     #资料夹检查grep forest f.txt cpf.txt #多资料夹检查grep 'log' /home/admin -r -n #根目录下检查全部契合根本字的资料夹cat f.txt | grep -i shopbase    grep 'shopbase' /home/admin -r -n --include *.{vm,java} #选定资料夹后辍grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #反相配seq 10 | grep 5 -A 3    #上相配seq 10 | grep 5 -B 3    #下相配seq 10 | grep 5 -C 3    #上上下下相配,平日用整个就妥了cat f.txt | grep -c 'SHOPBASE'awk1  、理论知识下令awk '{print $4,$6}' f.txtawk '{print NR,$0}' f.txt cpf.txt    awk '{print FNR,$0}' f.txt cpf.txtawk '{print FNR,FILENAME,$0}' f.txt cpf.txtawk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' f.txt cpf.txtecho 1:2:3:4 | awk -F: '{print $1,$2,$3,$4}'2  、筛选awk '/ldb/ {print}' f.txt   #相配ldbawk '!/ldb/ {print}' f.txt  #不相配ldbawk '/ldb/ && /LISTEN/ {print}' f.txt   #相配ldb和LISTENawk '$5 ~ /ldb/ {print}' f.txt #最后列相配ldb3 、 内建数据NR:NR表达从awk开始了执行命令后,遵循登记分格符读出的统计数据资料时间,正常的登记分格符为换行符,为此正常的即是读出的统计数据资料行数,NR应该领悟为Number of Record的缩写英文。FNR:在awk补救若干填写系统资料的时期,在补救完第1个系统资料后,NR并没有从1刚刚已经开始,反而依然累积,所以就突然出现了FNR,彷佛补救一种新系统资料的时期,FNR就从1刚刚已经开始计算,FNR就可以定义为File Number of Record。NF: NF写出现在的备案被拆分的字段名的数量,NF能认识为Number of Field。sudo -u admin find /home/admin /tmp /usr -name *.log(俩个子列表去找)find . -iname *.txt(数值写都识别)find . -type d(目前子列表下的因此子子列表)find /usr -type l(目前子列表下因此的附号连接)find /usr -type l -name "z*" -ls(附号连接的仔细信息内容 eg:inode,子列表)find /home/admin -size +k(超越k的系统压缩相关zip文件名下载名称资料,当+变成-这就是超过了)find /home/admin f -perm 777 -exec ls -l {} ; (根据管理员权限网上检查系统压缩相关zip文件名下载名称资料)find /home/admin -atime -1  1天内互访过的系统压缩相关zip文件名下载名称资料find /home/admin -ctime -1  1天内情况改进过的系统压缩相关zip文件名下载名称资料    find /home/admin -mtime -1  1天内修改过的系统压缩相关zip文件名下载名称资料find /home/admin -amin -1  一分钟内互访过的系统压缩相关zip文件名下载名称资料find /home/admin -cmin -1  一分钟内情况改进过的系统压缩相关zip文件名下载名称资料    find /home/admin -mmin -1  一分钟内修改过的系统压缩相关zip文件名下载名称资料pgm批处理网上检查vm-shopbase达到生活条件的系统日志pgm -A -f vm-shopbase 'cat /home/admin/shopbase/logs/shopbase.log.2017-01-17|grep 30'tsartsar是咱子公司自身的采集程序POS机。好用, 将经验征集到的数据表格资料经久化在电脑磁盘上,因此 我国迅猛来查詢经验的系统软件数据表格资料。当然了实时路况的软件情形也是都可以查詢的啦。大一部分POS机边上有组装。

tsar  ###是可不是可以观察附近1天的一项标准tsar --live ###是可不是可以观察实时时间标准,默认设置五秒一刷tsar -d  ###更改观察某一时间的统计运作,好像数量最多只是看二个月大的统计运作tsar --memtsar --loadtsar --cpu###必然你这个也是可不是可以和-d运作匹配来查寻系统某一时间的单体标准的的情况 toptop用来看一下通常信心认知能力,留下的正是匹配来查寻系统vm的繁多问題了ps -ef | grep javatop -H -p pid提升线程10进制转16进制后jstack去抓看整个线程说到底在干啥

netstat -nat|awk  '{print $6}'|sort|uniq -c|sort -rn #了解现今连到,需要注意close_wait较为增高的环境,就比如有以下不孚众望的时说的是btrace。这是生产制造区域环境&预发的逐步检查问题大杀器。 筒介之类的就会讲到过。直观上码干1、浏览现如今谁调节了ArrayList的add的方法,同時只打印纸现如今ArrayList的size超过500的线程调节栈@OnMethod(clazz = "java.util.ArrayList", method="add", location = @Location(value = Kind.CALL, clazz = "/.*/", method = "/.*/"))public static void m(@ProbeClassName String probeClass, @ProbeMethodName String probeMethod, @TargetInstance Object instance, @TargetMethodOrField String method) {   if(getInt(field("java.util.ArrayList", "size"), instance) > 479){       println("check who ArrayList.add method:" + probeClass + "#" + probeMethod  + ", method:" + method + ", size:" + getInt(field("java.util.ArrayList", "size"), instance));       jstack();       println();       println("===========================");       println();   }}2、追踪当下服务于步骤被获取时回到的值及重定向的产品参数@OnMethod(clazz = "com.taobao.sellerhome.transfer.biz.impl.C2CApplyerServiceImpl", method="nav", location = @Location(value = Kind.RETURN))public static void mt(long userId, int current, int relation, String check, String redirectUrl, @Return AnyType result) {   println("parameter# userId:" + userId + ", current:" + current + ", relation:" + relation + ", check:" + check + ", redirectUrl:" + redirectUrl + ", result:" + result);}更加多介绍,感兴致的请点步: 观测,1.3.9的release转换不平稳,要多捕获多长时间才行看清对的结杲正则展示式匹配好trace类时范围图一定的要有效控制,一旦极有或者显现跑满CPU造成软件应用卡死的事情因此是字节码获取的关键技术,想使用恢复正常人到正常人时候,要求启动使用。说四个挺棒的工作(组成部分工作和btrace相交):sc -df xxx: 效果当前工作类的详细情况,主要包括源码的位置和classloader结构特征trace class method: 非常的喜歡这家效果模块! 很久前可以早JProfiler看看这家效果模块。word打印出到现阶段的办法调节的等待时间问题,定义到每种的办法。就另一个功用classes:能能通过修复了字节码,影响了类的信息,实时处理奏效。 全部能能保证怏速的在就是说部位打个日记瞅瞅输入,缺欠是对代码是什么的注入性较大。虽然倘若自行确定自行在有什么用,肯定是不能错的玩艺儿。别的基本功能Greys和btrace都能很草率做的到,不介绍了。前面理解无数状况要可以通过JProfiler,不过现今Greys和btrace大体都能拿下了。后加上长状况的大体上几乎都是产量学习环境(电脑网络隔绝),之所以大体不如何用了,不过依然是要标签两下。公司官网请换景能以为eclipse的组件,也能以为独自的程度使用。 具体详情敬请换步我全用一只ps命令:

sudo -u admin /opt/taobao/java/bin/jps -mlvVjstack常见操作方法:

sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstack 2815native+java栈:

sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstack -m 2815jinfo可看系统软件通电的数据,如下图所示

sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jinfo -flags 2815jmap2个领域1.获取堆的时候

sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -heap 2815sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -dump:live,format=b,file=/tmp/heap2.bin 2815或是sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -dump:format=b,file=/tmp/heap3.bin 28153.看一看堆都被谁占了? 配个合zprofiler和btrace,逐步检查问题可以说是运筹帷幄

sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jmap -histo 2815 | head -10jstatjstat参数表多如牛毛,并且施用一两个就够了

sudo -u admin /opt/taobao/install/ajdk-8_1_1_fp1-b52/bin/jstat -gcutil 2815 1000 jdb时目前为止日,jdb也是习惯性适用的。 jdb可以时用预发debug,选用你预发的java_home是/opt/taobao/java/,远程登陆测试网口是8000.很sudo -u admin /opt/taobao/java/bin/jdb -attach 8000.出显以内意味jdb再启动成功创业。后面能否做出设为断点做出调试程序。具有规格可以看出oracle官方网站详细说明CHLSDB总觉诸多实际情况下能看过更优质玩的玩意,不图解说明性了。 了解档案资料应该听闻jstack和jmap等生产工具就会应用于它的。key promoter快捷方便键做次你记不了,多来数次你很容易注意了吧?剖析maven依耐的好肋手。1、你的类算是办法哪家zip文件加载失败闯进来的?-XX:+TraceClassLoading效果形如[Loaded java.lang.invoke.MethodHandleImpl$Lazy from D:programmejdkjdk8U74jrelibt.jar]2、用挂掉输出精度dump档案

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprofjar包肢体冲突把该多个写个大文章标题不太过分吧?每一自己或多或者都操作过这般烦人的case。我特么下侧这麼各种案我辱就搞不变你?mvn dependency:tree > ~/dependency.txt爆出大多数依耐mvn dependency:tree -Dverbose -Dincludes=groupId:artifactId只按出确定groupId和artifactId的依靠联系-XX:+TraceClassLoadingvm再发动按键小精灵放入。在tomcat再发动按键小精灵中探及载入类的图解信息查询-verbosevm打火按键精灵脚本制作进入。在tomcat打火按键精灵脚本制作中可看见刷新类的具体信息查询greys:scgreys的sc命令提示符还可以清晰度的看清之前类开始去哪里弹出打来的tomcat-classloader-locate借助一下url能够 获知现行类都可以什么地方访问的curl http://localhost:8006/classloader/locate?class=org.apache.xerces.xs.XSObjec若果发现了她的java进度悄无音息的消失不见了,可以说无带来丝毫案源,那么好dmesg一枪,很有已经由你我想要的。sudo dmesg|grep -i kill|less去找关键所在字oom_killer。遇到的结局累似如表:[.021013] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_adj=0, oom_scoe_adj=0[.070639] [<ffffffff81118898>] ? oom_kill_process+0x68/0x140 [.257588] Task in /LXC011175068174 killed as a result of limit of /LXC011175068174 [6710784.698347] Memory cgroup out of memory: Kill process 215701 (java) score 854 or sacrifice child [6710784.707978] Killed process 215701, UID 679, (java) total-vm:11017300kB, anon-rss:7152432kB, file-rss:1232kB上述得出结论,分属的java进度被平台的OOM Killer给吃掉了,良好率为854.解答一会儿OOM killer(Out-Of-Memory killer),机用户制会追踪机设备的运存资原使用量。当机设备运存耗光前,机用户制会扫锚很多的进度(假设按照某种要求计算方法,运存霸占,精力等),挑好出良好率高达的进度,再消除,若想养护机设备。dmesg笔记时转变工式:log实际情况时=格林威治1970-01-01+(所选时秒数-系统性发动现在的秒数+dmesg网页打印的log时)秒数:date -d "1970-01-01 UTC `echo "$(date +%s)-$(cat /proc/uptime|cut -f 1 -d' ')+.926194"|bc ` seconds"凑够的,可是看着为哪种手机内存越来越大,捕获了OOM-Killer了。RateLimiter很想用心的把握QPS? 表示动作的词这样的一名景象,你加载某一接头,某人厘清必须想要你受限制你的QPS在400以上你咋样把握?这样时间 RateLimiter 就上了用武的地方。淘宝手机端可换景-ratelimite