Java架构师线上问题排查,这些命令程序员一定用得到! 线上问题排查,以下场景,你遇到过吗? 一.了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服务各种连接状态(TIME_WAIT/ CLOSE_WAIT/ ESTABLISHED)的连接数. 常见方法: · netstat -n | grep 1.2.3.4:22 | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ · nets…
腾讯王者荣耀的开发来来来出来聊聊,真是日了狗了,多次离上王者还差两三颗星的时候队友就开始水的一塌糊涂,对面就牛逼的不行. 又连跪回去了,被对面把屎都打出来了,实在忍不住来吐槽,你们这个排位匹配算法到底怎么搞的? 这位楼主脾气也是非常的火爆,从说话中可以看出,应该是玩这个游戏很久了,段位一直上不去,就想要吐槽一下这个写匹配算法的程序员,这个算法为什么每次匹配的队友都这么坑,每次快要赢了都会被别人翻盘! 网友一:这个问题我也想问!!!求鹅肠算法大佬来讲解一下!5连胜以后三连跪……队友…不想说了 网友…
前言 之前线上有过一两次OOM的问题,但是每次定位问题都有点手足无措的感觉,刚好利用星期天,以测试环境为模版来学习一下Linux常用的几个排查问题的命令. 也可以帮助自己在以后的工作中快速的排查线上问题. jmap命令 jmap -heap pid 输出当前进程 JVM 堆新生代.老年代.持久代等请情况,GC 使用的算法等信息 jmap -histo:live {pid} | head -n 10 输出当前进程内存中所有对象包含的大小 jmap -dump:format=b,file=/usr/…
出处:java:线上问题排查常用手段 一.jmap找出占用内存较大的实例 先给个示例代码: import java.util.ArrayList; import java.util.List; import java.util.concurrent.CountDownLatch; /** * Created by 菩提树下的杨过 on 05/09/2017. */ public class OOMTest { public static void main(String[] args) thro…
概述 背景 是不是在实际开发工作当中经常碰到自己写的代码在开发.测试环境行云流水稳得一笔,可一到线上就经常不是缺这个就是少那个反正就是一顿报错抽风似的,线上调试代码又很麻烦,让人头疼得抓狂:而且debug不一定是最高效的方法,遇到线上问题不能debug了怎么办.原先我们Java中我们常用分析问题一般是使用JDK自带或第三方的分析工具如jstat.jmap.jstack. jconsole.visualvm.Java Mission Control.MAT等.但此刻的你没有看错,还有一款神器Art…
在做程序员的路上经常会遇到的JVM一些经典面试题,今天给大家分享出我自己的解题思路,希望对大家有帮助,后续有空会持续更新. 1.什么情况下会发生栈内存溢出. 思路: 描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一个栈溢出的demo. 我的答案:(Java架构师交流企鹅裙*/*:1028678754 ) 栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口等信息.局部变量表又包含基本数据…
架构师是什么? 是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物.一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单. 所谓架构师,思考的是全局的东西,是如何组织你的系统,以达到业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等.可能涉及到的东西包括了从硬件到软件的方方面面. 架构师的薪资怎么样呢? 下面一张图告诉大家 架构师在软件开发的整个过程中起…
基础题目 Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如何实现的.和HashTable,ConcurrentHashMap的区别 Cookie和Session的区别 索引有什么用?如何建索引? ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容. equals方法实现 面向对象 线程状态,BLOCKED和WAITING有什么区别 JVM如何加载字节码文件 JVM GC,GC算法.…
基础题目 Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如何实现的.和HashTable,ConcurrentHashMap的区别 Cookie和Session的区别 索引有什么用?如何建索引? ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容. equals方法实现 面向对象 线程状态,BLOCKED和WAITING有什么区别 JVM如何加载字节码文件 JVM GC,GC算法.…
随着近来软件规模的日益庞大,API编程接口的设计变的越来越重要.良好的接口设计可以降低系统各部分之间的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合度,从而提高系统的维护性和稳定性. Joshua Bloch是美国著名程序式设计师.他为Java平台设计并实现了许多的功能,是Google的首席Java架构师(Chief Java Architect).他也是<Effective Java Programming Language Guide>一书的作者,就是人们常说的 Effective…