linux 假死分析】的更多相关文章

所谓假死,就是能ping通,但是ssh不上去:任何其他操作也都没反应,包括上面部署的apache也打不开页面. 作为一个多任务操作系统,要把系统忙死,忙到ssh都连不上去,也不是那么容易的.尤其是现在还有fd保护.进程数保护.最大内存保护之类的机制.你可以fork很多进程,系统会变得很慢,但是ssh还是能连上去:你可以分配很多内存,但是内存多到一定程度oom killer就会把你的进程杀掉,于是ssh又能工作了. 有一个确定可以把系统搞成假死的办法是:主进程分配500MB内存,然后不停的fork…
package p_c_allWait; public class ValueObject { public static String value = ""; } package p_c_allWait; public class P { private String lock; public P(String lock) { super(); this.lock = lock; } public void setValue() { try { synchronized (lock)…
问题状态: java 程序 日志采用 log4j 运行时由另一个管理进程拉起,程序在后台运行. 现象: 程序后台运行时,运行一段时间后假死 分析原因: 尝试打印输出,定位假死的具体位置,发现出现假死的位置不固定,甚至是基本的日志输出都有问题 尝试手动启动,程序能正常运行,并且发现有大量的打印输出到终端 结论: 程序在终端有打印信息输出,在后台运行后,信息无法输出到终端, 打印信息过多后,缓冲区写满,程序停止运行,造成假死现象 解决方法: 后台运行的程序不打印输出信息到终端 由于程序采用log4j…
摘自: http://www.myexception.cn/internet/2044496.html 分析java进程假死情况 1 引言 1.1 编写目的 为了方便大家以后发现进程假死的时候能够正常的分析并且第一时间保留现场快照. 1.2编写背景 最近服务器发现tomcat的应用会偶尔出现无法访问的情况.经过一段时间的观察最近又发现有台tomcat的应用出现了无法访问情况.简单描述下该台tomcat当时具体的表现:客户端请求没有响应,查看服务器端tomcat的进程是存活的,查看业务日志的时候发…
1.问题描述 在使用net-snmp对交换机进行扫描的时候经常会出现进程假死的情况(就是进程并没有死掉,但是看不到它与外界进行任何的数据交互).这时候不知道进程内部发生了什么,虽然有日志信息,但进程已经很长时间没有动静,根本不知道这段时间做了什么.用gdb att进去发现,进行snmp发送的线程已经被阻塞了.但是阻塞的情况并不是每次都发生,而是经常发生,这就导致很难捕捉问题.通过观察日志和 tcpdump 抓包,发现这种情况只在v3版本的时候出现,那就是v3版本有什么特别的地方. 2.调试跟踪…
Linux 系统有时因为软件不兼容或未知 bug,导致系统假死.比如我的 Ubuntu 14.04 最近使用 vscode 时偶尔会导致系统假死,即鼠标可以移动,但点击无反应. 此时可试试如下解决方案: 1. 进入 TTY 模式 - Ctrl + Alt + F1  登录 TTY 模式 - 输入 top 查看导致系统假死的进行 PID,直接 sudo kill xxx - exit 退出 TTY 模式 - Ctrl + Alt + F7 回到图形接口模式 2. 终极解决方案 reisub - 左…
1.什么是假死 所谓假死,就是能ping通,但是ssh不上去:任何其他操作也都没反应,包括上面部署的nginx也打不开页面. 2.假死其实很难出现一次 作为一个多任务操作系统,要把系统忙死,忙到ssh都连不上去,也不是那么容易的.尤其是现在还有fd保护.进程数保护.最大内存保护之类的机制. 你可以fork很多进程,系统会变得很慢,但是ssh还是能连上去:你可以分配很多内存,但是内存多到一定程度oom killer就会把你的进程杀掉,于是ssh又能工作了. 3.假死是如何实现的 有一个确定可以把系…
有时在linux下shell终端中,会突然出现终端应用卡死,无法接受键盘输入, 但是其它分屏, 系统都是正常的.这本来是一个终端的很老的功能, 叫软件流控制(XON/XOFF flow control),具体就是当client(terminal emulator), 也就是常用的终端模拟器无法接受更多的数据的时, 终端会发送一个 "XOFF" 信号 告诉发送数据端暂停发送, 直到收到"XON"信号,其中发送的 "XOFF" 是告诉内核的 tty…
在上一次中已经实现一个生产者与消费者的初步模型(http://www.cnblogs.com/webor2006/p/8413286.html),但是当时只是一个生产者对应一个消费者,先贴下代码: public class ProductConsumerVersion2 { private final Object LOCK = new Object(); private int i = 1; /* 此标识用来说明是否当前已经生产过了,默认没有 */ private volatile boole…
QThread的常见特性: run()是线程的入口,就像main()对于应用程序的作用.QThread中对run()的默认实现调用了exec(),从而创建一个QEventLoop对象,由其处理该线程事件队列(每一个线程都有一个属于自己的事件队列)中的事件.简单用代码描述如下: 1 int QThread::exec() 2 { 3 //... 4 QEventLoop eventLoop; 5 int returnCode = eventLoop.exec(); 6 //... 7 return…