zoukankan      html  css  js  c++  java
  • linux监控系统语句

    一、cpuinfo(cpu)

    # 查看cpu信息
    cat /proc/cpuinfo
    # 查看CPU信息(型号)
    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
    
    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
    # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
    
    # 查看物理CPU个数
    cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
    # 查看每个物理CPU中core的个数(即核数)
    cat /proc/cpuinfo| grep "cpu cores"| uniq
    # 查看逻辑CPU的个数
    cat /proc/cpuinfo| grep "processor"| wc -l
    

    二、top(cpu、内存、磁盘io)

    N:以PID顺序排列

    P:以CPU顺序排列

    M:以内存顺序排列

    1:显示每个cpu的信息

    us:用户空间占cpu

    sy:系统空间占cpu

    ni:改变过优先级的进程占cpu

    id:空闲cpu占比

    wa:等待磁盘io的cpu占比,如果高说明磁盘io是瓶颈

    hi:硬件中断

    si:软件中断

    st:实时

    三、dstat(cpu、内存、磁盘io、网络io)

    paging:系统的分页活动,当系统开始大量使用分页空间时值比较高,说明系统内存不足

    int:线程中断,当多线程忙碌时值比较高

    csw:上下文切换,当多线程忙碌时值比较高

    四、lsof(进程、句柄)

    # 查看占用端口的进程
    lsof -i:xx
    

    # 查linux最大文件句柄数(open files)
    ulimit -a
    # 查当前句柄/进程数量
    lsof -n|awk '{print $2}'| sort | uniq -c | sort -nr | head
    # 查单个进程的句柄
    lsof -p 2333
    

    五、jstat(内存)

    # 查看jvm情况,每隔1秒输出,输出60次,每隔10次输出一次列头
    jstat -gc -h10 xxx 1000 60
    

    S0C:存活区0分配内存(都是KB)

    S1C:存活区1分配内存

    S0U:存活区0使用内存

    S1U:存活区1使用内存

    EC:年轻代分配内存

    EU:年轻代使用内存

    OC:老年代分配内存

    OU:老年代使用内存

    MC:元空间分配内存

    MU:元空间使用内存

    CCSC:压缩类分配内存

    CCSU:压缩类使用内存

    YGC:年轻代GC次数

    YGCT:年轻代GC总时间(秒)

    年轻代每次GC时间 = YGCT / YGC

    FGC:老年代GC次数

    FGCT:老年代GC总时间(秒)

    老年代每次GC时间 = FGCT / FGC

    GCT:GC总时间(秒)

    六、jmap(内存)

    # 输出jvm内存分配情况
    jmap -heap xxx
    

    jmap -dump:live,format=b,file=/home/dump xxxxx
    

    输出进程内存dump信息,后缀改为pcap以后可以用eclipse的MAT插件打开

    七、ps、jstack(线程)

    # 查进程中占用cpu高的线程
    ps -mp xxxxx -o THREAD,tid,time | sort -rn
    

    # 将十进制转换为十六进制
    printf "%x
    " xxx
    

    # 输出线程堆栈信息,筛选tid输出之后的30行
    jstack -l xxxx(pid) | grep xxx(tid) -A 30
    

    # 输出线程堆栈信息到文件,-l 打印锁信息
    jstack -l xxxxx > 1.txt
    

    八、jps(jvm)

    # 输出jvm进程通过文件传递到进程中的参数
    jps -v
    

    九、netstat(连接)

    # 查看tcp连接状态统计
    netstat -nat | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    

    # 查看某个端口的tcp连接状态统计
    netstat -nat |grep -i "80"| awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    

    # 查看某个端口的连接数量
    netstat -nat|grep -i "80"|wc -l
    

    # 查看连接某端口最多的ip
    netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"	",i}' | sort -nr
    

    十、tcpdump(网络)

    # 查看网卡
    ifconfig
    # 抓包并保存到文件
    tcpdump tcp -i eth0 -s 0 and host xxx.xxx.xxx.xxx and port xxxx -w log.pcap
    

    -i:只抓经过接口eth0的包

    -s 0:抓到完整的数据包

    -w:保存在文件

    十、iotop(磁盘io)

    # 安装
    yum -y install iotop
    # 查看进程的io占用
    iotop
    

  • 相关阅读:
    python 基础2.5 循环中continue与breake用法
    python 基础 2.4 while 循环
    python 基础 2.3 for 循环
    python 基础 2.2 if流程控制(二)
    python 基础 2.1 if 流程控制(一)
    python 基础 1.6 python 帮助信息及数据类型间相互转换
    python 基础 1.5 python数据类型(四)--字典常用方法示例
    Tornado Web 框架
    LinkCode 第k个排列
    LeetCode 46. Permutations
  • 原文地址:https://www.cnblogs.com/ctxsdhy/p/12466503.html
Copyright © 2011-2022 走看看