首页 文章 精选 留言 我的

精选列表

搜索[子员工委派],共10000篇文章
优秀的个人博客,低调大师

阿里员工都是这样排查Java问题的,附工具单

平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。 Linux命令类 tail 最常用的tail -f grep awk 1 基础命令 2 匹配 3 内建变量 NR:NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。 FNR:在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Number of Record。 NF: NF表示目前的记录被分割的字段的数目,NF可以理解为Number of Field。 find pgm 批量查询vm-shopbase满足条件的日志 tsar tsar是咱公司自己的采集工具。很好用, 将历史收集到的数据持久化在磁盘上,所以我们快速来查询历史的系统数据。当然实时的应用情况也是可以查询的啦。大部分机器上都有安装。 top top除了看一些基本信息之外,剩下的就是配合来查询vm的各种问题了 获得线程10进制转16进制后jstack去抓看这个线程到底在干啥 其他 排查利器 btrace 首当其冲的要说的是btrace。真是生产环境&预发的排查问题大杀器。 简介什么的就不说了。直接上代码干 1.查看当前谁调用了ArrayList的add方法,同时只打印当前ArrayList的size大于500的线程调用栈 2.监控当前服务方法被调用时返回的值以及请求的参数 其他功能集团的一些工具或多或少都有,就不说了。感兴趣的请移步。 https://github.com/btraceio/btrace 注意: 1.经过观察,1.3.9的release输出不稳定,要多触发几次才能看到正确的结果 2.正则表达式匹配trace类时范围一定要控制,否则极有可能出现跑满CPU导致应用卡死的情况 3.由于是字节码注入的原理,想要应用恢复到正常情况,需要重启应用。 Greys Greys是@杜琨的大作吧。说几个挺棒的功能(部分功能和btrace重合): sc -df xxx: 输出当前类的详情,包括源码位置和classloader结构 trace class method: 相当喜欢这个功能! 很早前可以早JProfiler看到这个功能。打印出当前方法调用的耗时情况,细分到每个方法。对排查方法性能时很有帮助,比如我之前这篇就是使用了trace命令来的:http://www.atatech.org/articles/52947。 其他功能部分和btrace重合,可以选用,感兴趣的请移步。 http://www.atatech.org/articles/26247 另外相关联的是arthas,他是基于Greys的,感兴趣的再移步http://mw.alibaba-inc.com/products/arthas/docs/middleware-container/arthas.wiki/home.html?spm=a1z9z.8109794.header.32.1lsoMc javOSize 就说一个功能 classes:通过修改了字节码,改变了类的内容,即时生效。 所以可以做到快速的在某个地方打个日志看看输出,缺点是对代码的侵入性太大。但是如果自己知道自己在干嘛,的确是不错的玩意儿。 其他功能Greys和btrace都能很轻易做的到,不说了。 可以看看我之前写的一篇javOSize的简介http://www.atatech.org/articles/38546 官网请移步http://www.javosize.com/ JProfiler 之前判断许多问题要通过JProfiler,但是现在Greys和btrace基本都能搞定了。再加上出问题的基本上都是生产环境(网络隔离),所以基本不怎么使用了,但是还是要标记一下。 官网请移步https://www.ej-technologies.com/products/jprofiler/overview.html 大杀器 eclipseMAT 可作为eclipse的插件,也可作为单独的程序打开。 详情请移步http://www.eclipse.org/mat/ zprofiler 集团内的开发应该是无人不知无人不晓了。简而言之一句话:有了zprofiler还要mat干嘛 详情请移步zprofiler.alibaba-inc.com java三板斧,噢不对,是七把 jps 我只用一条命令: jstack 普通用法: native+java栈: jinfo 可看系统启动的参数,如下 jmap 两个用途 1.查看堆的情况 2.dump 或者 3.看看堆都被谁占了? 再配合zprofiler和btrace,排查问题简直是如虎添翼 jstat jstat参数众多,但是使用一个就够了 jdb 时至今日,jdb也是经常使用的。 jdb可以用来预发debug,假设你预发的java_home是/opt/taobao/java/,远程调试端口是8000.那么 sudo -u admin /opt/taobao/java/bin/jdb -attach 8000. 出现以上代表jdb启动成功。后续可以进行设置断点进行调试。 具体参数可见oracle官方说明http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html CHLSDB CHLSDB感觉很多情况下可以看到更好玩的东西,不详细叙述了。 查询资料听说jstack和jmap等工具就是基于它的。 更详细的可见R大此贴 http://rednaxelafx.iteye.com/blog/1847971 plugin of intellij idea key promoter 快捷键一次你记不住,多来几次你总能记住了吧? maven helper 分析maven依赖的好帮手。 VM options 1.你的类到底是从哪个文件加载进来的? 2.应用挂了输出dump文件 jar包冲突 把这个单独写个大标题不过分吧?每个人或多或少都处理过这种烦人的case。我特么下边这么多方案不信就搞不定你? mvn dependency:tree > ~/dependency.txt 打出所有依赖 mvn dependency:tree -Dverbose -Dincludes=groupId:artifactId 只打出指定groupId和artifactId的依赖关系 -XX:+TraceClassLoading vm启动脚本加入。在tomcat启动脚本中可见加载类的详细信息 -verbose vm启动脚本加入。在tomcat启动脚本中可见加载类的详细信息 greys:sc greys的sc命令也能清晰的看到当前类是从哪里加载过来的 tomcat-classloader-locate 通过以下url可以获知当前类是从哪里加载的 curlhttp://localhost:8006/classloader/locate?class=org.apache.xerces.xs.XSObject ALI-TOMCAT带给我们的惊喜(感谢@务观) 列出容器加载的jar列表 curlhttp://localhost:8006/classloader/jars 列出当前当当前类加载的实际jar包位置,解决类冲突时有用 curlhttp://localhost:8006/classloader/locate?class=org.apache.xerces.xs.XSObject 其他 gpref http://www.atatech.org/articles/33317 dmesg 如果发现自己的java进程悄无声息的消失了,几乎没有留下任何线索,那么dmesg一发,很有可能有你想要的。 去找关键字oom_killer。找到的结果类似如下: 以上表明,对应的java进程被系统的OOM Killer给干掉了,得分为854. 解释一下OOM killer(Out-Of-Memory killer),该机制会监控机器的内存资源消耗。当机器内存耗尽前,该机制会扫描所有的进程(按照一定规则计算,内存占用,时间等),挑选出得分最高的进程,然后杀死,从而保护机器。 dmesg日志时间转换公式: log实际时间=格林威治1970-01-01+(当前时间秒数-系统启动至今的秒数+dmesg打印的log时间)秒数: 剩下的,就是看看为什么内存这么大,触发了OOM-Killer了。 欢迎工作一到五年的Java工程师朋友们加入Java填坑之路:860113481 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

优秀的个人博客,低调大师

中国海洋大学张绍晴教授团队最新Nature子刊!

近日,由中国海洋大学深海圈层与地球系统前沿科学中心/物理海洋教育部重点实验室张绍晴教授团队联合国际国内相关团队在全球海洋经向翻转流研究方面取得新进展。研究基于自主创新的2个独立耦合同化系统及其产生的多圈层耦合再分析数据集,揭示了过去80年发生的火山爆发事件会在全球海洋经向翻转流上打下深刻的烙印,从而影响后续几十年的气候变率。Nature Communications期刊以“The Coupled Reanalysis Global Meridional Overturning Circulation Imprinted by Historic Volcano Eruptions(《耦合再分析揭示全球海洋经向翻转流对火山事件的深刻印记》)”为题,对成果进行在线报道。

优秀的个人博客,低调大师

Nature子刊 |揭示人脑时空动力学组织的新机制

2023年6月16日,悉尼大学龚璞林的课题组在国际知名杂志Nature Human Behaviour 杂志上发表了一篇題为 “Interacting spiral wave patterns underlie complex brain dynamics and are related to cognitive processing” 的论文,提出了一种全新的基于旋转螺旋波 (旋涡)的人脑大范围活动的组织机制。并在Nature Research Briefing专栏以题为 “Interacting spiral waves organize brain dynamics and have functional correlates to cognition” 的简报形式同时在线报道了该研究成果。

优秀的个人博客,低调大师

利用 AI 生成成都地标低俗视频,一男子被行拘

成都市公安局锦江区分局发布警情通报称,近日接群众举报,反映有人利用AI技术制作并通过网络账号发布多段内容低俗的视频抹黑成都。 经查,违法行为人蒋某静(男,44岁,重庆市人,某文化传媒有限公司负责人)博取关注、吸引流量,在明知相关视频内容易引发不当关联的情况下,故意利用 AI 工具生成在成都多个地标的低俗内容视频,配以误导性文字在网上发布传播,制造话题、博取眼球,扰乱网络秩序,造成不良社会影响。 警方指出,蒋某静的行为已构成寻衅滋事,当局依照《治安管理处罚法》第三十条之规定,已依法决定对其行政拘留,并依法关停其相关网络账号。 公安机关郑重提示:网络绝非法外之地,在网络活动中务必自觉遵守法律法规,恪守社会公德和公序良俗。对于任何为了牟取流量而恶意编造散布虚假信息的行为,公安机关将坚决依法严厉打击。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册