• linux应用问题分析命令


    1. 描述

    应用问题分析方式及命令有很多,一般都结合着使用,今天主要介绍下:

    (1)top命令,实时查看服务器资源使用情况,类似windows下的资源管理器;

    (2)tail命令,实时刷新查看日志命令。

    2. top命令

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

    2.1 命令用法

    top   //默认每隔5秒,显示所有进程的资源占用情况
    top -d 2  //每隔2秒,显示所有进程的资源占用情况
    top -c  //每隔5秒,显示所有进程的资源占用情况,-c重点是能看到命令行参数名称(比如java项目,不加-c的话只有java,增加-c的话,能看到具体执行参数,i'm 软件老王)
    

    2.2 top显示信息说明

    (1)第一行就不说了,没啥意思;

    (2)第二行, 显示的是进程汇总信息,其中:

    total   进程总数
    running 正在运行的进程数
    sleeping 睡眠的进程数
    stopped 停止的进程数
    zombie 僵尸进程数
    

    (3)第三行,显示的是cpu使用情况,其中:

    0.2% us 用户空间占用CPU百分比
    0.2% sy 内核空间占用CPU百分比
    0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
    99.6% id 空闲CPU百分比
    0.0% wa 等待输入输出的CPU时间百分比
    0.0%hi:硬件CPU中断占用百分比
    0.0%si:软中断占用百分比
    0.0%st:虚拟机占用百分比
    

    注意:可以在top命令下按 “1”,就可以把第三行展开(比如4个cpu展开4行),查看各个cpu占比情况。

    (4)第四行和第五行,显示的是内存使用情况,其中:

    Mem:
    total    物理内存总量
    free    空闲内存总量
    used    使用的物理内存总量
    buffer    用作内核缓存的内存量
    
    Swap: 
    total    交换区总量
    free    空闲交换区总量
    used    使用的交换区总量
    avail Mem 有效内存
    

    (5) 第六行,显示的是具体用户及进程使用cpu及内存情况,其中:

    PID     进程id
    USER   Real user name
    PR      优先级
    NI      nice值。负值表示高优先级,正值表示低优先级
    VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR     共享内存大小,单位kb
    S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
    %CPU    上次更新到现在的CPU时间占用百分比
    %MEM    进程使用的物理内存百分比
    TIME    进程使用的CPU时间总计,单位秒
    COMMAND 命令名/命令行
    

    特别注意:需要注意的是第三行的%cpu跟第六行的cpu有区别的。

    其中第三行的cpu(%)表示的是 所有用户进程占用整个cpu的平均值,由于每个核心占用的百分比不同,所以按平均值来算比较有参考意义,而第六行的%CPU显示的是进程占用一个核的百分比,而不是整个cpu(4核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心(i’m 软件老王),所以有时候我们看该值得时候会超过100%,但不会超过总核数*100。

    3. tail实时查看日志命令

    3.1 实时查看日志文件

    (1)描述:当需要定位或者查看问题的时候,需要实时跟踪日志。

    (2)命令用法

    tail -f test.log
    

    (3)tail命令解析

    -f  循环读取
    -q  不显示处理信息
    -v  显示详细的处理信息
    -c<数目> 显示的字节数
    -n<行数>  显示行数
    –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 
    -q, –quiet, –silent 从不输出给出文件名的首部 
    -s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 
    

    3.2 清空文件

    (1)描述:有时候日志或者文件内容有点多了,不方便查看,需要清空,可以使用copy后再删除,但是有点麻烦,可以使用echo直接清空。

    (2)命令用法

    echo > nohup.out
    

    中间空格要不要都可以

    (3)echo用法示例

    a. 打印到控制台

    echo I am 软件老王 
    echo "I am 软件老王"
    

    b. 打印内容到文件

    touch test.txt        
    echo 软件老王 > test.txt
    

    c. 追加内容到文件

    echo 是帅哥 >> test.txt
    

    I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

  • 相关阅读:
    浅谈树状数组与线段树
    BZOJ1367:[Baltic2004]sequence
    浅谈左偏树
    BZOJ4003:[JLOI2015]城池攻占
    BZOJ2809:[APIO2012]dispatching
    BZOJ1455:罗马游戏
    模拟ssh远程执行命令
    基于TCP协议的socket套接字编程
    计算机网络基础知识
    元类( 控制对象产生和控制类产生)模板
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11357459.html
Copyright © 2020-2023  润新知