• 线上问题排查


    1.磁盘空间不足问题

    先从总体查看磁盘状态:df -h

    找到不足的磁盘,进入目录查看具体文件大小:du -sh *(ls -lh只能看文件大小,文件夹的看不出来)


    2.cpu和内存使用率过高问题

    查看所有进程:top

    查看单个进程:top -p pid

    查看单个进程的线程:top -p pid -H

    只看内存使用情况:free -h

    只看交换区:swapon


    3.网络延迟

    查看所有连接中的 socket:netstat -a

    查看所有 tcp 连接的信息,包括进程号: netstat -tnpa

    得到进程号后就好说了配合 top 命令,ps -ef 命令,查看相关进程信息

    实时流量数据:iftop -P


    4.java进程问题

    查看java进程号:jps

    查看堆内存设置与当前使用情况:jmap -heap pid

    统计当前堆内对象使用情况:jmap -histo:live pid

    dump堆快照文件,后续用mat等工具分析:jmap -dump:format=b,file=heapdump.phrof pid

    查看 jvm 线程运行信息(推荐一个分析stack文件的网站fastthread.io):jstack

    直接用第三方工具也很方便,推荐阿里的arthas


    5.一些无法本地debug的调式技巧

    对于一些线上问题不方便本地调试,这里推荐一个阿里的工具:arthas

    • watch 命令可以实时观察一个方法的入参和出参。
    • trace 命令可以跟踪某个方法的耗时,而且可以深入这个方法所调用的方法的各个耗时。
    • dashboard 全局监控
    • thread 查看所有线程信息,包括状态和 CPU 使用率
    • thread -b 甚至可以直接定位到死锁信息
    • jad 命令进行反编译

    甚至可以代码热替换,更多详细功能可以参考arthas官网的文档

  • 相关阅读:
    (一)ngxin默认虚拟主机
    centos7 搭建LNMP
    centos7 搭建安装zabbix3.0邮件告警实例(二)
    Java BitSet(位集)
    OLTP与OLAP的区别
    Cassandra-LSM树
    LSM树
    Docker
    RESTful API
    kubernetes介绍
  • 原文地址:https://www.cnblogs.com/ouym/p/16450151.html
Copyright © 2020-2023  润新知