`

服务器故障时,查询造成故障的进程以及线程

阅读更多
#!/bin/bash

########################################################
### 查找占用CPU资源过高的线程详细信息
### 
### 2014-11-03 allen add
##########################################################

#Step1 打印占用CPU过高的进程ID
top -b -d3 -n1 -u hotel | awk '/PID/,0' > ./_pid_out.out
v_pid=`awk 'NR==2 {print $1}' ./_pid_out.out`


#Step2 打印进程中占用CPU过高的线程ID
top -b -d3 -n1 -H -p $v_pid | awk '/PID/,0' > ./_tid_out.out
v_tid=`awk 'NR==2 {print $1}' ./_tid_out.out`


#Step3 将线程ID转为16进制
#echo 'ibase=10;obase=16;$v_tid' | bc
v_tid16=`printf %x $v_tid`
echo "thread id[hexadecimal] is : 0x${v_tid16}"
echo ""

#Step4 打印CPU占用过高的进程的线程栈
echo "wait 5 seconds, please..."
jstack $v_pid > ./_thread_stack.out
sleep 5s

#Step5 在 _thread_stack.out 中查找线程执行的具体代码,打印改行及其之后30行,并高亮显示匹配内容
cat ./_thread_stack.out | grep -n --color=auto -A 30 -i 0x${v_tid16}


#clean
rm -rf ./_pid_out.out
rm -rf ./_tid_out.out
分享到:
评论

相关推荐

    多线程下载服务器与客户端

    此外,有效的错误处理和异常恢复机制也是必不可少的,以确保在网络不稳定或服务器故障时能够正常运行。 总之,通过使用多线程技术,我们可以构建出一个能够提高下载速度的服务器和客户端系统。这种系统在处理大量...

    Domino服务器故障分析以及处理方法.pptx

    1. **Domino服务器故障类型**: - **宕机(Crash)**:这是一种严重的系统异常,服务器程序或操作系统遇到无法处理的错误,导致服务终止,需要重启。常见错误信息包括PANIC、FATAL和Access Violation等。宕机可能由于...

    线程与进程

    6. **稳定性**:多进程程序比多线程程序更稳定,因为一个进程的故障不会影响到其他进程;而在多线程程序中,一个线程的错误可能会导致整个进程崩溃。 7. **应用场景**:对于需要高度并发且线程间需要频繁通信的应用...

    操作系统,多线程编程,多进程编程,java

    在Java中,多线程和多进程编程的结合可以实现复杂的应用场景,比如服务器端的并发处理、高并发下的数据库操作、复杂的后台任务处理等。实验可能涉及到了如何在多线程环境下设计高效的算法,如何进行性能优化,以及...

    Python-示范如何让多组游戏服务器运行在同一个skynet进程内

    6. **错误处理和容错**:如何处理服务器故障,设计健壮的恢复机制,保证系统的高可用性。 7. **性能优化**:通过合理配置和设计,提高多组服务器在同一进程中的运行效率。 8. **日志管理和监控**:如何收集和分析...

    apache线程与配置

    例如,如果应用涉及大量的数据库交互或与Java服务通信,进程模型可能更适合,因为它可以限制单一故障的影响范围,并且线程间不共享内存,减少了资源竞争和数据同步的问题。 在给出的实例中,作者尝试了不同的配置,...

    linux下c实现单线程web服务器

    在Linux环境下,C语言实现一个简单的单线程Web服务器是一项挑战性的任务,它涉及到网络编程、多路复用I/O、HTTP协议...实际生产环境中,通常会采用多线程或多进程模型,或者使用异步I/O技术如epoll来提高服务器性能。

    socket与多线程的短信交易服务器后台和手机前台

    在IT行业中,构建一个高效的短信交易服务器后台与手机前端应用是一项关键任务,涉及到网络通信、多线程处理以及服务管理等多个技术领域。本项目“socket与多线程的短信交易服务器后台和手机前台”旨在实现手机用户的...

    hook 源库 C 源码库 ,用于进程中的线程控制

    本文将围绕一个名为“hook”的C语言源码库进行深入探讨,该库专门用于进程中的线程控制,并在业界知名的ZLMediaKit服务器中得到广泛应用。 一、线程控制基础 线程是操作系统分配处理器时间的基本单位,每个进程...

    基于多线程的高性能服务器程序的设计.pdf

    完善的异常处理机制能确保程序在遇到错误时不会崩溃,而通过备份线程、心跳检测、故障切换等方式,可以提高系统的可用性和稳定性。 七、性能优化 优化是提升服务器性能的关键环节。这包括但不限于:减少不必要的...

    MYSQL常见故障分析

    然而在实际应用中,MySQL系统可能会出现多种故障,对业务系统的稳定性和性能造成影响。本文将深入探讨MySQL线上常见的一些故障类型及其分析方法。 首先,应用无法获取到连接池的情况,这可能是由于配置不当、连接池...

    MySQL DBA运维故障处理攻略

    MySQL DBA运维故障处理攻略主要涉及到MySQL数据库在运维过程中可能遇到的各种问题,以及这些问题的诊断和解决方案。以下是一些详细的知识点: 1. MySQL线上常见故障剖析:在MySQL数据库运维过程中,可能会遇到各种...

    PowerThreading 线程管理器

    - **线程**: 在计算机科学中,线程是程序执行的最小单元,一个进程中可以包含多个线程,它们共享进程资源,相互之间协作完成任务。 - **线程池**: PowerThreading线程管理器利用线程池的概念,预先创建一组线程,...

    OPC+Server.rar_OPC 多线程_opc_opc server_opc 服务器_opc服务器

    它应包含服务器的功能描述、API参考、安装和配置指南以及故障排除信息。 10. **示例代码**:提供示例代码可以帮助开发者快速理解如何与OPC服务器交互。例如,提供的"OPC+Server.doc"可能包含了创建OPC服务器的基本...

    多线程SocketServer

    错误处理通常通过异常处理机制来实现,而日志记录则可以帮助开发者追踪服务器运行时的状态,分析性能瓶颈,以及在出现问题时快速定位故障点。 综上所述,“多线程SocketServer”项目涵盖了C++网络编程、多线程技术...

    Websphere内存线程配置

    当所有线程都被占用且仍有新的请求到来时,将创建新线程直至达到此最大值。 4. **调整线程超时时间**:还可以配置线程空闲超时时间,以控制线程在没有任务执行的情况下存活的时间。 5. **保存更改**:完成配置后,...

    基于微内核的文件服务器的多线程并行化设计.pdf

    在IT领域,多线程并行化设计是提高系统性能和效率的重要手段,尤其是在处理大量I/O操作,如文件服务器这种场景中。基于微内核的文件服务器设计旨在利用多线程技术,优化系统资源的分配与管理,提高服务响应速度和...

    线程_fewfs3_多线程Socket_

    6. **异常处理**:在多线程环境中,需要确保每个线程都有适当的错误处理机制,以防止单个线程的故障影响整个服务器。 7. **安全性**:多线程环境下要特别注意安全问题,如防止SQL注入、跨站脚本攻击等。 通过结合...

    基于Linux多线程管理的分析与实现.pdf

    《基于Linux多线程管理的分析与实现》这篇文章主要探讨了如何在Linux环境下有效地管理和实现多线程,以防止线程并发混乱和进程异常结束,从而提高程序的稳定性和效率。文章结合POSIX Threads库的功能,提出了线程...

    JDK监控和故障处理工具

    JPS还能够显示虚拟机进程启动时传递给主类main()函数的参数以及JVM启动时的参数。 2. JSTAT(JVM Statistics Monitoring Tool) JSTAT是一个虚拟机统计信息监视工具,它用于监视虚拟机各种运行状态信息。它能够显示...

Global site tag (gtag.js) - Google Analytics