Linux系统及应用问题分析排查工具

linux 阿里技术协会

摘要: Linux服务器上经常遇到一些系统和应用上的问题,如何分析排查,需要利器,下面总结列表了一些常用工具、trace tool;最后也列举了最近hadoop社区在开发发展的分布式系统的trace tool。 概览: 引用linux-performance-analysis-and-tools中图片,

Linux服务器上经常遇到一些系统和应用上的问题,如何分析排查,需要利器,下面总结列表了一些常用工具、trace tool;最后也列举了最近hadoop社区在开发发展的分布式系统的trace tool。

概览:

引用linux-performance-analysis-and-tools中图片,说明这些tool试用层次位置

OS系统命令

系统信息(RHEL/Fedora)

  • uname -a 或 cat /proc/version #print system information

    • Linux hadoopst2.cm6 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
  • uptime
    • 15:42:46 up 674 days, 6 min, 35 users, load average: 1.30, 5.97, 11.53
  • cat /etc/redhat-release
    • Red Hat Enterprise Linux Server release 5.4 (Tikanga)
  • lsb_release
    • LSB Version:  :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
  • cat /proc/cpuinfo
  • cat /proc/meminfo
  • lspci - list all PCI devices
  • lsusb - list USB devices
  • last, lastb - show listing of last logged in users
  • lsmod — show the status of modules in the Linux Kernel
  • modprobe - add and remove modules from the Linux Kernel

常用命令/工具

  • ps

    • To print a process tree: ps -ejH / ps axjf
    • To get info about threads: ps -eLf / ps axms
  • ulimit -a
  • lsof - list open files, UNIX一切皆文件
    • lsof -p PID
  • rpm/yum
    • rpm -qf FILE #文件所属rpm包
    • rpm -ql RPM #rpm包含文件
    • /var/log/yum.log #yum 更新包日志
  • /etc/XXX #系统级程序配置目录, 如
    • /etc/yum.repos.d/ yum源配置
  • /var/log/XXX #日志目录, 如
    • /var/log/cron #crontab日志,可以查看调度执行情况
  • ntpd - Network Time Protocol (NTP) daemon,同步集群中机器时间
  • squid - proxy caching server,集群WebUI的代理

系统监控

  • mpstat - Report processors related statistics. 注意%sys %iowait值
  • vmstat - Report virtual memory statistics
  • iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.
  • netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
    • netstat -atpn | grep PID
  • ganglia - a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids.
  • sar/tsar - Collect, report, or save system activity information; tsar是淘宝自己改进的版本
    • 定时采样(每分钟),可查历史记录(默认5分钟),可弥补ganglia显示更详细信息
  • iftop - the "top" bandwidth consumers shown. iftop wiki
  • iotop
  • vmtouch, Portable file system cache diagnostics and control

网络相关

  • telnet/nc IP PORT - 确认目标端口是否可访问,只ping通不一定端口可访问,可能防火墙等禁止
  • ifconfig/ifup/ifdown - configure a network interface
  • traceroute - print the route packets trace to network host
  • nslookup - query Internet name servers interactively
  • tcpdump - dump traffic on a network, 类似开源工具 wiresharknetsniff-ng更多工具比较
  • lynx - a general purpose distributed information browser for the World Wide Web
  • tcpcp - allows cooperating applications to pass ownership of TCP connection endpoints from one Linux host to another one.

程序/进程相关

静态信息

  • ldconfig - configure dynamic linker run time bindings

    • ldconfig -p | grep SO 查看so是否在link cache中
  • ldd - print shared library dependencies, 查看exe或so依赖的so
  • nm - list symbols from object files,可grep查找是否存在相关的symbol,是否Undefined.
  • readelf - Displays information about ELF files. 可现实elf相关信息,如32/64位,适用的OS,处理器

动态信息

  • gdb
  • cat /proc/$PID/[cmdline|environ|limits|status|...] - 进程相关信息
  • pstack - print a stack trace of a running process
  • pmap - report memory map of a process

java相关

  • JDK Tools and Utilities
  • Java Troubleshooting Tools
  • jinfo - print java process information, 如classpath,java.libary.path(jni so目录)
  • jstack - print a stack trace of a running java process,可查看死锁情况
  • jmap - report memory map of a java process
    • jmap -histo:live 可触发full gc
    • jmap -dump:live,file=$FILE 可dump heap内存,用于jhat等工具debug分析object在heap的占用情况
  • jhat - Heap Dump Browser - Starts a web server on a heap dump file (eg, produced by jmap -dump), allowing the heap to be browsed.
    • 起http服务,浏览器访问查看
    • -J-mxXXXm ,分析大文件时需要加大heap大小
    • 若有对象数据超大或内存占用过多,极有可能memory leak
  • Memory Analyzer (MAT) - eclipse plugin,Java heap analyzer
    • 可视化工具,但受到机器内存的限制,无法分析太大的heap dump file
  • jdb - 可起服务做server,eclipse等工具远程连接调试
  • jstat - Java Virtual Machine Statistics Monitoring Tool
  • jstatd - Virtual Machine jstat Daemon,可配合jvisualvm
  • jvisualvm - Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool;可远程连接jstatd/jmx, 可视化展示工具:演示
  • jvmtop - In a top-like manner, displays JVM internal metrics (e.g. memory information) of running java processes.
  • JVM performance optimization JVM开发者写的优化文章
    1. Overview
    2. Compilers
    3. Garbage collection
    4. Concurrently compacting GC
    5. Scalability
  • HPROF - Heap Profiler: java -agentlib:hprof

Trace/Debug/Profiling工具

通用工具

  • 写log,但系统在线或无法源码时
  • strace - trace system calls and signals
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 67.90 3966.320849         496   7992161   3050250 futex
 25.80 1507.326693      127093     11860           epoll_wait
....................
  • blktrace, generate traces of the i/o traffic on block devices
  • ltrace - A library call tracer
  • xtrace
  • gprof - a performance analysis tool, sampling and call-graph profiling
  • valgrind - an instrumentation framework for building dynamic analysis tools. automatically detect many memory management and threading bugs, and profile your programs in detail
  • systemtap - a simple command line interface and scripting language for writing instrumentation for a live running kernel plus user-space applications for complex tasks that may require live analysis, programmable on-line response, and whole-system symbolic access.
    • Linux版DTrace(SUN在Solaris上开发的)
    • 功能强大,kernel, user-space app,cross language(java perl python ruby),build-in markers(pg mysql)
    • can write and reuse simple scripts to deeply examine the activities of a live system
    • Data can be extracted, filtered, and summarized quickly and safely, to enable diagnoses of complex performance or functional problems
    • 丰富的 "tapset" script library

java trace工具

  • btrace - dynamic tracing tool for the Java platform. UserGuide

  • byteman - simplifies tracing and testing of Java programs. Can modify a running application without needing to stop and restart it.
    • define rules specifying the side effects you want to inject 而 BTrace类java语法

Distributed Tracing Tools

  • Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
  • x-trace, a network diagnostic tool designed to provide users and network operators with better visibility into increasingly complex Internet applications.
  • HTrace, a tracing framework intended for use with distributed systems written in java
时间: 2024-10-27 19:30:30

Linux系统及应用问题分析排查工具的相关文章

在Linux系统下运行微信Web开发者工具

微信Web开发者工具只有window版本和mac版本,如果想要在Linux系统下运行微信Web开发者工具,需要花费很大周折. 注:带 * 的步骤或文件为不确定是否管用的步骤或文件.本人系统为Linux Mint 18.1版本. 1.下载nwjs 下载nwjs的SDK. 2.将微信web开发者工具拷贝到nwjs 将在window系统下安装的微信web开发者工具文件夹中的package.nw.icon.ico.* 微信web开发者工具.exe拷贝到nwjs sdk解压后的文件夹内. * 解压 微信w

[转帖]监控 Linux 系统的 7 个命令行工具

监控 Linux 系统的 7 个命令行工具 https://linux.cn/article-5898-1.html 这里有一些基本的命令行工具,让你能更简单地探索和操作Linux. Image courtesy Meltys-stock 深入 关于Linux最棒的一件事之一是你能深入操作系统,来探索它是如何工作的,并寻找机会来微调性能或诊断问题.这里有一些基本的命令行工具,让你能更简单地探索和操作Linux.大多数的这些命令是在你的Linux系统中已经内建的,但假如它们没有的话,就用谷歌搜索命

Lynis 2.2.0 :面向Linux系统的安全审查和扫描工具

Lynis是一款功能非常强大的开源审查工具,面向类似Unix/Linux的操作系统.它可以扫描系统,查找安全信息.一般的系统信息.已安装软件及可用软件信息.配置错误.安全问题.没有设密码的用户帐户.错误的文件许可权限以及防火墙审查等. Lynis是一款功能非常强大的开源审查工具,面向类似Unix/Linux的操作系统.它可以扫描系统,查找安全信息.一般的系统信息.已安装软件及可用软件信息.配置错误.安全问题.没有设密码的用户帐户.错误的文件许可权限以及防火墙审查等. Lynis是最可靠的自动化审

监控 Linux 系统的 7 个命令行工具

关于Linux最棒的一件事之一是你能深入操作系统,来探索它是如何工作的,并寻找机会来微调性能或诊断问题.这里有一些基本的命令行工具,让你能更简单地探索和操作Linux.大多数的这些命令是在你的Linux系统中已经内建的,但假如它们没有的话,就用谷歌搜索命令名和你的发行版名吧,你会找到哪些包需要安装(注意,一些命令是和其它命令捆绑起来打成一个包的,你所找的包可能写的是其它的名字).如果你知道一些你所使用的其它工具,欢迎评论. 我们怎么开始 须知: 本文中的截图取自一台Debian Linux 8.

第一次作业:基于Linux系统深入源码分析进程模型

1.前言 本文主要基于Linux 2.6源代码分析进程模型.源代码下载地址:https://elixir.bootlin.com/linux/v2.6.39/source 2.进程 定义:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 3.Linux系统进程的组织 进程是由进程控制块(PCB).程序段.数据段三部分组成. 3.1 进程控制块 进程控制块(Processing Control Block),是操作系统核心中一种数据结构

Linux 系统常用的性能监测命令工具

top:查看进程活动状态以及一些系统状况. vmstat:查看系统状态.硬件和系统信息等. iostat:查看CPU 负载,硬盘状况. sar:综合工具,查看系统状况. mpstat:查看多处理器状况. netstat:查看网络状况. iptraf:实时网络状况监测. tcpdump:抓取网络数据包,详细分析. mpstat:查看多处理器状况. tcptrace:数据包分析工具. netperf:网络带宽工具. dstat:综合工具,综合了 vmstat, iostat, ifstat, net

linux 系统上的进程查看管理工具之htop/dstat/top/ps命令详解

     进程查看管理工具之ps/top/dstat/htop命令详解 一.ps命令详解: ps 加选项参数 ps a 显示与终端相关的内容信息,例如: [[email protected] cx]# ps a PID TTY      STAT   TIME COMMAND 2396 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3 2399 tty4     Ss+    0:00 /sbin/mingetty /dev/tty4 2401 tty5

Linux系统日常管理之rsync备份工具

   rsync备份工具 一.scp scp备份工具不可以进行增量备份 1.安装scp [[email protected] ~]# yum install -y openssh-clients 2.scp -r 192.168.21.98:/tmp/a/ ./a/ 从远程主机把/tmp/下面的a目录拷贝到当前目录下 -r:以递归方式复制 3.[[email protected] cheng]# scp 1.txt 192.168.21.98:/root/cheng/ 把当前目录下的文件拷贝到远

linux系统 使用git图形化管理工具———gitk

运行安装命令: sudo apt-get install gitk 运行命令打开gitk : gitk