• 性能定位常用命令整理


    统计每秒钟Nginx收到多少请求:

    cat access.log | grep 2019:20:19:50 | wc -l

    解释:access.log为Nginx的日志,通过Nginx的配置文件nginx.conf查看日志文件名称和位置,2019:20:19:50 表示获取20点19分50秒接收的请求数,去掉秒则可以得到每分钟收到的请求数

    查看GC情况:

    jstat -gc PID 300 20

    解释:PID是进程号,300表示300毫秒收集一次,20表示收集次数

    jstack -l PID > a.txt

    解释:将java堆栈输出到a.txt文件中

    jcmd PID Thread.print >a.txt

    解释:jcmd是JDK1.8以上版本才能用,和jstack的效果一样,也是将java堆栈文件打印到a.txt文件中

    pstack PID >a.txt

    解释:pstack命令表示将进程为PID的本地堆栈打印到a.txt文件中,文件中的LVMID 与top -Hp PID中的线程号是一致的

    top -Hp PID

    解释:打印进程号为PID的线程信息,可以得到最耗资源的线程号,执行printf %x PPID得到线程号的16进制,与java堆栈中的nid匹配

    printf  %x PPID

    解释:将十进制线程号转换成十六进制

     iostat -x 1

    解释:iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。-x表示显示和io相关的扩展数据,检查awai列,如果该列在负载下持续超过10ms,说明磁盘过慢或磁盘过载

    iostat -d -k 2

    解释:-d表示显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。

    netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    解释:查看linux系统中tcp连接的状态和连接数量统计,当结果中出现大量FINA_WAIT2时,表示服务器已经不堪重负

    netstat -s|grep -i listen

    解释:Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。-s 按各个协议进行统计。

  • 相关阅读:
    scala的Class
    scala的Map
    log4j配置文件详细解释
    学习线程1之建立线程,并启动
    Spring中WebApplicationContext的研究
    Log4j 配置 的webAppRootKey参数问题
    JNDI绑定数据库
    Struts2配置之Struts.properties
    Java多线程-工具篇-BlockingQueue
    StringUtils判断字符串是否为空的方法
  • 原文地址:https://www.cnblogs.com/wx170119/p/11325196.html
Copyright © 2020-2023  润新知