结合Linux命令与java程序,定位,排错,复习Linux命令
造成服务器系统性能变慢的原因很多,大多数为:
1:Cpu占用过高
2:内存占用过高
3:硬盘占用
4:磁盘io次数
5:网络io
结合java程序,在Linux环境下定位具体原因
首先编写一段肯定会死循环的代码:
public class TestLinuxDemo {
public static void main(String[] args) {
while (true)
{
System.out.println(new Random().nextInt(66668888));
}
}
}
找到源文件目录,将其拷贝到Linux文件系统
Linux终端执行 javac TestLinuxDemo.java
java TestLinuxDemo
第一步:排查系统命令top
参数1:Linux命令
2:当前系统负载均衡:3个数字相加*100%/3如果大于60%表示负载过高
3:具体java进程id及占用信息
按下数字1键 当前系统具体cpu片数情况
uptime:精简版top
第二步:排查CPU命令 vmstat
主要关注procs(process) cpu id(idle) :cpu空闲率越高越好最好大于80%
查询所有cpu信息:mpstat -P ALL 2
查看cpu用量的分解信息:pidstat -u 1 -p pid
第三步:排查内存命令 free
内存共计3935M将近4G 已使用1079M 空闲500M
第四步:排查硬盘命令df :disk free
第五步:网络io ifstat
精准定位:
1:top查看具体占用进程 为2588
2:精准定位 ps -ef|grep 2588|grep -v grep
3:定位线程代码:ps -mp 2588 -o THREAD,tid,time
4:计算器换算具体进程的16进制表达式 换为小写字母 a1d
ps:打开计算器的正确方式?calc
5:jstack 2588 |grep a1d -A60
标识java程序的12行
ok定位结束 将其进程杀死即可
你为什么不试试重启呢?
你为什么不试试在公众号回复[我爱你]呢?