Linux系统资源查看

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统资源查看相关的知识,希望对你有一定的参考价值。


Linux进程查看命令:
一、Linux系统上的进程及查看工具:
    pstree,ps,pidof,pgrep,htop,glances,pmap,vmstat,dstat,
    kill,pkill,job,bg,fg,nohup,nice,renice,killall
    
    CentOS5:SysV init//基于shell脚本实现,启动服务串行方式运行
    CentOS6:upstart //通过命令创建进程,并行方式执行启动 //封装仍然使用service
    CentOS7:Systemd//参考mac OS,只需要启用一个进程,就可以把各服务进程启动起来
        //systemctl 可以控制其他服务
1.pstree //查看进程树
2.ps 当前进程的状态显示
    /proc:内核中的状态信息
        内核参数:可设置其值从而调整内核运行特性的参数:/proc/sys
        状态变量:其用于输出内核中统计信息或状态信息,仅用于查看:
    参数:模拟成fs类型;
    //ps抽取/proc中的信息,进行展示
    进程:
        /proc/#
            #:PID //
    ps [options] //三种风格
        1.UNIX风格  //ps -a
        2.BSD        //ps a //不带横线
        3.GNU
    启动进程的方式:
        系统引导时自动启动 //终端无关
        用户通过终端启动 //终端相关
    -a //终端相关
    -x//终端无关
    u //用户相关的
    aux //所有进程 [] 内核线程
        USER PID ... VSZ RSS STAT
            VSZ:虚拟内存结合virtual memory size//线性地址空间和物理地址空间
                    //3G只有我使用,进程看到的就是虚拟内存集,
            RSS:常驻内存集Resident Size,当内存不够用的时候,有些内存中的数据需要放到swap上,但是有的不能放到swap上:常驻内存集
            STAT:状态,
                R:running
                S:Interruptable sleeping
                D:uninterruptable sleeping
                T:stopped
                Z:zombie
                
                +:前台进程
                l:多线程进程
                n:低优先级进程
                小于号《:高优先级进程
                s:session leader//主进程
    -e :显示所有进程,相当于ax,但是是unix风格
    -f:full-format完整格式
        ps -ef
        PPID:父进程pid,STIME:启动时间,C:PCPU cpu utilization的占用百分比,TIME:累计运行时间
    -F:显示完整格式的信息
        显示的信息更全
        ps -eF
            PSR:运行在哪个CPU上,precessor
            man ps //后面有帮助信息
    -H:以层级结构显示进程的信息
        ps -eFH
    其他常用组合:
        o:可自定义要显示的字段,逗号分隔
            ps -axo pid,command,pri,psr,pcpu,stat,tty,ppid,user,ni,rtprio
            ni:nice值
            rtprio:real-time priority,实时优先级
        -eo: //o一定要写到后面,因为 o 是需要带参数的
        -axo:
        
3.pgrep,pkill命令
    pgrep [options] pattern
        -u uid:显示指定用户的进程
        -U uid :read user
        -t TERMINAL:与指定终端相关的进程
        -l :显示进程名
        -a :显示完整的进程名
        -P pid :显示其进程的子进程
        pgrep -P 25463 //查看其子进程
                //子进程的子进程,是他的孙子进程,不是他的子进程
        pgrep ssh //有ssh字符串的
        pgrep s //有s字符创的
    pkill和pgrep用法类似
4.pidof指定进程的进程号
    pidof sshd //根据进程名获取其pid
    -s:仅返回一个进程号;
    -c:仅显示具有相同“root”目录的进程;
    -x:显示由脚本开启的进程;
    -o:指定不显示的进程ID。

5.top 类似于windows的任务查看器
    动态查看进程状态信息
    h 帮助信息
    

    top - 12:14:58 up 2 days,  2:47,  3 users,  load average: 0.00, 0.01, 0.05
    Tasks: 307 total,   2 running, 305 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  1009272 total,   155080 free,   201980 used,   652212 buff/cache
    KiB Swap:  2097148 total,  2093712 free,     3436 used.   537560 avail Mem

    load average:1,5,15min //平均队列长度,在cpu上等待运行的队列长度
        通常队列等待的数量不能大有cpu的数量 //Load的阈值一般在cpu核心数*2.5 (经验)
    %CPUs // sy:kernel time,ni:用于nice调整占用的cpu时间,id:idel空闲百分比,wa:wait等待io百分比,hi:hwaddr interrupt硬件中断,si:soft interrupt软中断,si:被偷走的百分比(被虚拟化偷走的)
    排序:    
        P:以占据cpu百分比排序
        M:内存
        T:累计占用cpu百分比
    首部信息:
            l命令 //切换cpu
        tasks及cpu信息:t命令
        内存信息:m命令
    刷新时间
        s 1 //每个1s刷新一次
        k  //kill
    选项
        -d # //指定刷新时间间隔
        -b //以批次方式显示,bat
        -n //显示多少批次
        top -b -n 1
        1 //分散显示cpu
6.uptime //显示系统的时间,运行时长及平均负载
    过去1,5,15min的平均负载,等待平均队列长度
    uptime -s //系统开机时间
    -p //已经开机的多长时间
    
    
7.htop //需要epel源 ,可以自定义显示选项,支持鼠标
    baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
            https://mirrors.aliyun.com/epel/7/x86_64/
    yum install htop -y
    注意:yum是具有事务概念的,同时只能运行一个yum命令
    h   //Memory:used/buffers/cache
    status:
        R:running,S:sleeping,T:traced/stopped,Z:zombie,D:disk sleep//不可中断睡眠
    u //指定用户进程
    H //show/hide user thread
    k 内核线程
    F 光标跟踪
    P M T //排序方式
    F6 //选定字段排序
    c //标记进程和其子进程
    a CPU绑定
    i 设置io优先级
光标选定进程// l 显示进程打开的所有文件
    s //跟踪一个进程发起的系统调用
        F4自动滚屏
    -d# //delay time
    -u USERNAME //指定用户的进程
    -s COLUME //以指定字段排序
    子命令:
        l:显示进程打开的文件的列表
        s:跟踪选定的进程的系统调用
        t:Tree状显示,或者F5
        a:将选定的进程绑定至任务的核心上
            
8.vmstat //虚拟内存,报告虚拟内存的统计数据
    vmstat [options] [delay [count]]
    vmstat 2 //每2s更新一次
    vmstat 2 2 //共显示2次,每2s更新一次
    -s //显示内存使用信息
        procs:进程,
            r:running:等待运行的进程的个数;CPU上等待运行的队列长度
            b:block阻塞的,被阻塞的任务的队列的长度
        memory:
            swpd:交换内存的使用量,0:表示么有启用
            free:空闲的物理内存总量
            cache:缓存
            buffer:缓冲
        swap//相对于swap
            si:swap in //速率值 kb/s
            so:swap out //数据离开swap的速率 kb/s
        io //相对于磁盘
            bi:从硬盘读入数据到os,kb/s
            bo:保存数据至块设备的速率,kb/s
        system
            in:interrupts中断速率
            cs{context switch}切换速率
        cpu
            us
            sy
            id
            wa
            st
    中断:当io需要和cpu交互的时候,cpu如何知道有信号到达
        1.轮训,每隔一段时间查看是否有交互
        2.中断线//需要申请使用,有编号,一个中断线可以复用
9.pmap //内存映射
    pmap PID
    
    pmap [options] pid [...]
        -x:显示详细格式的信息
    cat /proc/1/maps //作用一样
    
10.glances命令 //比top界面更美观
    //可以远程查看,

    -b //以bytes为单位显示网卡数据速率
    -d //关闭磁盘io模块
    -m //关闭mount模块
    -n //关闭network模块
    -t # //刷新时间间隔
    -1 //每颗cpu单独显示
· a – 对进程自动排序
· c – 按 CPU 百分比对进程排序
· m – 按内存百分比对进程排序
· p – 按进程名字母顺序对进程排序
· i – 按读写频率(I/O)对进程排序
· d – 显示/隐藏磁盘 I/O 统计信息
· f – 显示/隐藏文件系统统计信息
· n – 显示/隐藏网络接口统计信息
· s – 显示/隐藏传感器统计信息
· y – 显示/隐藏硬盘温度统计信息
· l – 显示/隐藏日志(log)
· b – 切换网络 I/O 单位(Bytes/bits)
· w – 删除警告日志
· x – 删除警告和严重日志
· 1 – 切换全局 CPU 使用情况和每个 CPU 的使用情况
· h – 显示/隐藏这个帮助画面
· t – 以组合形式浏览网络 I/O
· u – 以累计形式浏览网络 I/O
· q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

    glances -f /root -o html //保存为HTML /CSV格式,仅仅需要知道个路径即可,不能指定文件名字
    ssh -X [email protected] //启用图形显示,
            //可以动态刷新该文件
    在C/S模式下运行glances命令
        服务模式:
            glances -s -B IPADDR
            IPADDR //本级某地址,用于监听
            -B //监听地址
        客户端模式:
            glances -c IPADDR
            IPADDR//远程server的ip

glance颜色定义:
· 绿色:OK(一切正常)
· 蓝色:CAREFUL(需要注意)
· 紫色:WARNING(警告)
· 红色:CRITICAL(严重)
阀值可以在配置文件中设置,一般阀值被默认设置为(careful=50、warning=70、critical=90)。
(默认在 /etc/glances/glances.conf)中自定义。
            
11.dstat //资源使用统计数据的工具,功能最全
    默认:cdngy //cpu,disk,net,paging,sys
    -c{d,n,g,y}
    -C 0,3,total //包括0号和3号cpu或者total,指定cpu
    -d,disk
        -D sda,sdb,...total
    -g:显示page相关的统计数据
        

    -i 中断
    -m mem
    -n net 
    -N eth1,eth0 
    -p proc 
    -r io 
    -s swap 
    -S swap1,total 
    --aio //激活异步io
    --ipc //激活ipc
    --tcp  //tcp统计信息
    --udp  //
    --socket 
    
    --unix  //unix-socket
    --top-bio //最消耗磁盘io的
    --top-cpu //最忙的cpu
    --top-int //最多中断数量的
    --top-mem
    --top-lantency //延迟最大的进程

    dstat 1 2 //每隔1s显示一次,共显示2次
12.kill命令
    用于向进程发送信号,以实现对进程的管理
    kill -l 1 //查看1号sign的内容
    kill -l //查看所有信号内容
    每个信号的标识方法有三种
    1)信号的数字表示方法
    2)信号的完整名称
    3)信号的简写名称
    向进程发送信号
        kill [-s signal] [-q sigval] [-a] [...] pid...
        kill -s 15 PID
常用信号:
    1):sigup:无须关闭进程而让其重读配置文件
        kill -SIGHUP 111000
        kill -s SIGNUP 111000
    2):SIGINT:中止正在运行的进程,相当于ctrl+c //暂停
    9):SIGKILL;杀死运行中的进程;残忍杀害
        //不管你正在做什么,直接kill
    15):默认信号SIGTERM:终止运行中的进程;人道毁灭
        //告诉你,你要死了,把正在运行的工作做完,然后kill
    19):SIGSTOP:停止,送到后台 //ctrl+z
        ps aux |grep vim
        //fg直接返回到前台
    18):SIGCONT:继续
13.killall
    基于名称
    killall [-SIGNAL] program
    killall httpd //ps aux |grep httpd 将没有任何东西
       

本文出自 “黑马腾空” 博客,请务必保留此出处http://hmtk520.blog.51cto.com/12595610/1977891

以上是关于Linux系统资源查看的主要内容,如果未能解决你的问题,请参考以下文章

linux中怎么查看mysql数据库版本

Linux查看系统资源情况

如何查看linux系统的资源占用情况

Linux查看系统资源占用

Linux查看系统资源占用

如何在Linux系统中察看进程占用的资源,Linux高手请进!