zoukankan      html  css  js  c++  java
  • Linux基础——系统监控

    系统监视和进程控制工具——top(任务管理器)

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

     各行数据大致解释如下:

    12:38:33

    up 50days

    1 user

    load average: 0.06, 0.60, 0.48

    当前时间

    系统运行时间,格式为时:分

    当前登录用户数

    系统负载。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。

    Tasks: 29 total

    1 running

    28 sleeping

    0 stopped

    0 zombie

    Cpu(s): 0.3% us

    1.0% sy

    0.0% ni

    98.7% id

    0.0% wa

    0.0% hi

    0.0% si

    进程总数

    正在运行的进程数

    睡眠的进程数

    停止的进程数

    僵尸进程数(主进程已经结束,可能子进程没有结束,而且占用资源。表现为进程结束,但是资源没有释放(内存))

    用户空间占用CPU百分比

    内核空间占用CPU百分比

    用户进程空间内改变过优先级的进程占用CPU百分比

    空闲CPU百分比

    等待输入输出的CPU时间百分比

    硬件中断占用CPU时间的百分比

    软件中断占用CPU时间的百分比 

     

    PID
    进程id

    USER
    进程所有者

    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时间总计,单位1/100秒

    COMMAND
    进程名称(命令名/命令行)

    另:

    CPU利用率

    CPU计算的时间占比(运行态时间占比)

    CPU平均负载

    单位时间任务量与可执行任务量的占比(运行态+就绪态总数)

    CPU状态

    运行态(计算处理)就绪态(内存等待)阻塞态(I/O读取硬盘)

    显示内存的使用状态——free命令

    选项

    -b:以Byte为单位显示内存使用情况;
    -k:以KB为单位显示内存使用情况;
    -m:以MB为单位显示内存使用情况;
    -o:不显示缓冲区调节列;
    -s<间隔秒数>:持续观察内存使用状况;
    -t:显示内存总和列;
    -V:显示版本信息。
    -w:命令行选项得到buffcache各自使用的数量

                     1                    2                 3                  4         5          6

    1              total              used             free          shared    buffers     cached

    2 Mem:      24677460     23276064     1401396          0     870540   12084008

    3 -/+ buffers/cache:       10321516     14355944

    4 Swap:     25151484      224188         24927296

    buffer和cache的解释:

     

    A buffer is something that has yet to be "written" to disk. 

    从内存写入硬盘的缓存

    A cache is something that has been "read" from the disk and stored for later use.

    从硬盘读入内存的缓存

    l  used内存,是分配出去的内存,在buffer/catch中,包括用了的和没用的(用了的是b/c used,没用的是第一行的b/c的总和。

    l  第二行b/c 的free是可以被分配的,是men的剩余和第一行b/c剩余的总和。

    l  第二行b/c 的总量和men的total一样,第一行men的used与free的总和和total一样。

    l  b/c的used是内存真正的使用的量,其余的可能只是占用。

    l  catch中使用(used)的一部分还可以释放。

    以上命令可以释放catch

     

    Centos7 下free的显示如下,基本与上一个一样,但是增加了一个available。

    新版available,是真实空闲的内存(b/c行free)和可以被释放的cache的内存的总和,是真正新启动一个程序能够提供的内存。

                   total              used        free      shared  buff/cache   available

    Mem:           1504        1491          13           0         855            869

    Swap:          2047           6            2041

    系统中进程的监控——ps

    进程:进程是程序的一次动态执行。

    守护进程:守护进程是在后台运行并提供系统服务的一些进程。

    父进程、子进程:当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程。
    ps命令(用来显示当前进程的状态。)

    用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

    格式:ps [选项]  (选项过多,可查看http://man.linuxde.net/ps)

    a:显示现行终端机下的所有程序,包括其他用户的程序。
    u:以用户为主的格式来显示程序状况。
    x:显示所有程序,不以终端机来区分。
    -e:显示所有程序。
    -l或l:采用详细的格式来显示程序状况。
    -f:显示UID,PPIP,C与STIME栏位。

    ps –aux 显示所有的与用户相关的完整信息

    ps aux | grep 'top' 从进程中过滤出‘top’进程

    ps -elf | head -3  显示前三行进程的父进程id(PPID是父进程id)

     


    pstree命令

    以树状图的方式展现进程之间的派生关系,显示效果比较直观。(centos7默认没有pstree,需要yum -y install psmisc)

    选项

    -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;

    -c:不使用精简标示法;

    -G:使用VT100终端机的列绘图字符;

    -h:列出树状图时,特别标明现在执行的程序;

    -H<程序识别码>:此参数的效果和指定"-h"参数类似,但特别标明指定的程序;

    -l:采用长列格式显示树状图;

    -n:用程序识别码排序。预设是以程序名称来排序;

    -p:显示程序识别码;

    -u:显示用户名称;

    -U:使用UTF-8列绘图字符;

    -V:显示版本信息。

    用法举例:列出PID为4729的进程的进程状态树的命令:pstree 4729

     

    kill命令

    用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。

    例如:终止PID为3852的进程的命令:kill 3852

    应用kill -9命令杀死进程:例如:杀死PID为3906的进程的命令:kill -9 3906


    pgrep命令

    通过名称或其他属性查找进程,以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。

    例如:查找名为firefox的进程的命令为:pgrep firefox

     

    pkill命令

    通过名称或其他属性发信号给进程。

    例如:杀死名为firefox的进程的命令为:pkill firefox

  • 相关阅读:
    原:Myeclipse10+Egit+bitbucket实现版本控制
    Myeclipse10使用git
    MyEclipse 10 下在线安装插件
    转:git windows中文目录乱码问题解决
    STUN和TURN技术浅析
    原:android4.2.2蓝牙源码阅读--bluedroid部分
    原创:超简单!windows配置NDK开发环境使用JNI
    c++对象的生命周期
    C++中虚析构函数的作用
    windows 命令行下 简单好用的查看端口占用情况的方法
  • 原文地址:https://www.cnblogs.com/zihe/p/6909458.html
Copyright © 2011-2022 走看看