| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 【线上问题排查】死锁和僵尸进程排查 -> 正文阅读 |
|
[Java知识库]【线上问题排查】死锁和僵尸进程排查 |
死锁排查首先给出死锁定义:
网上有很多讲死锁的文章,这里不做赘述,直接进入正题。 问题模拟代码先写一段模拟代码,模拟死锁场景 我们创建两个锁和两个线程,让线程 1 先拥有锁 A,然后在 1s 后尝试获取锁 B,同时我们启动线程 2,让它先拥有锁 B,然后在 1s 之后尝试获取锁 A,这时就会出现相互等待对方释放锁的情况,从而造成死锁的问题,具体代码如下:
打包部署到服务器。并使用 排查过程这里介绍2种排查方式:Jconsole 和 Arthas Jconsole部署之后请求一下接口: http://localhost:8080/deadLock
ArthasArthas是阿里的一款定位问题的工具,功能强大,最近我特别喜欢用这个。 官方的在线文档教程特别好玩,像是在玩游戏一样。 再告诉大家一个小技巧,IDEA插件安装 Alibaba Cloud Toolkit,可以直接在IDEA上进行问题排查,不用登录服务器。 首先我们安装下插件 安装完之后我们得先配置一下主机,输入服务器的账号密码
僵尸进程排查僵尸(zombie)进程定义
一般僵尸进程很难直接kill,不过可以先kill僵尸的父进程。父进程死后,僵尸进程成为“孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程,它产生的所有僵尸进程也跟着消失。 排查过程首先使用 使用 kill -9 杀死僵尸进程的父进程 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:21:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |