• Linux 资源性能分析相关命令


     

    查看 Linux 内核版本

    uname

    查看 Linux 系统版本

    cat /etc/issue

    查看静态的进程

    ps -ef
    ps -aux

    通过进程名查看 pid

    pgrep 进程名称

    查看动态的进程

    top

    第一行

    load average:系统平均负载,三个值分别是平均最近5分钟、平均最近10分钟、平均最近15分钟,如果长时间大于1表示CUP忙不过来

    user:表示登录用户数

    Tasks

    total:表示进程总数

    running:表示正在运行的进程,一般 < 核数

    sleeping:表示

    stopped:被强行停止

    zombie:僵尸进程

    %Cpu(s)

    us:表示用户进程使用百分比

    sy:表示系统内核使用百分比,一般 < 5%

    id:表示CPU空间时间百分比

    wa:如果很大,说明磁盘很满,CPU等待磁盘时间长

    hi:硬中断

    si:软中断

    KiB Mem

    total:总内存

    used:已使用内存

    free:空闲内存

    buffers:缓冲,马上要写入磁盘还没有写入磁盘,为了与磁盘交互提高效率

    KiB Swap

    total:总内存

    used:已使用内存

    free:空闲内存

    cached:缓存

    进程详细信息

    PID:进程id

    USER:所属用户

    PR:优先级

    VIRT:虚拟内存空间

    SHR:共享内存空间

    S:进程状态,R -- running,S -- sleeping

    %CPU:CPU 占用百分比

    %MEM:内存占用百分比

    TIME:进程在CPU中运行的时间

    COMMAND:进程是那个程序启动的

    1)按 h 键,显示帮助信息(按 q 返回)

    2)按 u,输入用户回车,可以过滤出该用户的进程

    CPU耗用型进程分析

    分析 CPU 步骤:

    1、load average > 核数,running > 核数,说明存在进程等待

    2、%id = 0.0 ,说明 CPU 很忙,空闲时间为0

    3、%wa = 0.0,说明没有磁盘等待,瓶颈不在磁盘

    4、内存的 used < 50%,且无变化,瓶颈不在内存

    可以看出该进程完全为 CPU 消耗性的,一般是进程中存在死循环,或大量的循环。

    vmstat(虚拟内存统计)-- 低开销工具

    vmstat 秒数

    3秒钟显示一次结果

    procs(进程)

    r:运行的进程,同 top 的 running

    b:阻塞的进程

    memory

    swpd:交换到磁盘

    free:内存

    buff:缓冲,即将要写入磁盘的数据,延迟写

    cache:缓存,从磁盘读出来的数据,联想读

    swap

    si:swap 的换进

    so:swap 的换出

    io

    bi:写磁盘

    bo:读磁盘

    system

    in:系统终端

    cs:上下文切换

    cpu

    us:用户态

    sy:系统态

    id:空闲态

    wa:等待

    查看内存信息

    free

    TCP 信息统计

    netstat -tans

    IcmpMsg(ICMP 消息统计)

     InType:收到数量

    OutType:发出数量

    ICMP 消息较多时,会消耗系统网络带宽

    可以在防火墙中设置拒绝 ICMP 消息

    TCP

    active connections openings:打开的 TCP 连接数

    failed connection attempts:失败的 TCP 连接

    segments received:收到的数据段个数

    segments send out:发出的数据段个数

    segments retransmited:重传数量,值较大时,说明网络不稳定,网络拥塞

    TcpExt

    TCP data loss events:丢包数量,说明网络拥塞

    firewalld 防火墙禁止 ICMP 包

    firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop' #禁止 ICMP 包
    firewall-cmd --reload #重启防火墙

    查看磁盘信息

    df -h

    IO 耗用型进程分析

    1)新建脚本 dd.sh(将 test.log 的数据写入 conteng.log 文件中,每次写 100M,写 50次)

    dd if=/test/test.log of=conteng.log bs=100M count=50

    2)执行脚本,并使用 vmstat 命令查看系统资源信息

    ./dd.sh
    vmstat 3

    分析步骤:

    1、r = 3 > 核数,说明存在进程等待

    2、us = 5%,sy = 90%,用户进程使用CPU很少,系统使用CPU很多,因为写文件是系统调用;

    3、bi、bo 很大,说明块的写入写出很多;

    4、wa = 5%,CPU 使用5%的时间在等待,说明磁盘等待导致CPU卡顿。

    可以看出瓶颈在磁盘,而不在 CPU

  • 相关阅读:
    JVM调优
    【转】中文分词之HMM模型详解
    xwiki enterprise 8.4.5使用https步骤
    dubbo和shiro的整合,在服务端做权限验证
    电商课题:分布式锁
    Export large data from Gridview and Datareader to an Excel file using C#
    sap学习笔记
    git拉取远程分支并创建本地分支
    Echarts 解决饼图文字过长重叠的问题
    用localStorage坚持Vuex状态----vuex-persistedstate
  • 原文地址:https://www.cnblogs.com/scholars-xian/p/14757949.html
Copyright © 2020-2023  润新知