精华内容
下载资源
问答
  • linux top命令 动态查看进程详解

    千次阅读 多人点赞 2020-11-10 13:34:33
    文章目录linux top命令 动态查看进程详解以及使用方法top命令的输出,可分为上下两个部分上面部分:整个系统的资源的使用状态下面部分:单个进程的资源使用状态上面部分详解:第一行:由三部分组成第二行:进程总数...

    linux top命令 动态查看进程详解以及使用方法

    top命令
    经常用来监控linux的系统状况,比如cpu、内存的使用,
    本文将通过top监控截图,详细讲解top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序含义,以及top命令的日常使用。

    top命令的输出,可分为上下两个部分

    在这里插入图片描述

    上面部分:整个系统的资源的使用状态

    下面部分:单个进程的资源使用状态

    上面部分详解:

    第一行:由三部分组成

    1.系统的当前时间,up系统的运行时间
    2. 已经登录系统的用户
    3.系统的平均负载,分别为系统在1,5,15分钟内的负载

    第二行:进程总数: 由五部分组成

    1 . total 为进程总数
    2 . running正在运行的进程数
    3. sleeping  处于睡眠状态的进程数
    4. stopped 处于停止状态的进程数
    5. zombie 僵尸进程
    

    第三行: CPU的使用率,由八部分组成

    1 us user 用户空间占用cpu时间的百分比
    2 sy system 内核空间占用CPU时间的百分比
    3 ni nice改变过优先级的进程占用CPU时间的百分比
    4 id idle 空闲CPU的百分比
    5 wa waite I/O等待占用CPU的百分比
    6 hi hard interrupt硬中断占用cpu的百分比
    7 si soft interript 软中断占用cpu的百分比
    8 st 被强制等待CPU的时间

    第四行 内存的使用状态,由四部分组成

    1 total物理内存的总大小
    2 free 空闲内存
    3 used 已使用的内容
    4 buff / cache 缓冲 / 缓存
    在这里插入图片描述
    <此图和第一张图片相同,便于查看>

    下面部分详解:

    1:PID 代表进程标识号(process identification)
    ,它在大多数操作系统内核(如 Linux、Unix、macOS 和 Windows)中使用。它是在操作系统中创建时自动分配给每个进程的唯一标识号。一个进程是一个正在运行的程序
    2:user 用户
    3:PR优先级
    4:NI nice值 负值表示高优先级,正值表示低优先级
    5:VIRT虚拟内存:
    (1)进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
    (2)假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
    6:RES 常驻内存
    (1)进程当前使用的内存大小,但不包括swap out
    (2)包含其他进程的共享
    (3)如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    (4)关于库占用内存的情况,它只统计加载的库文件所占内存大小
    7:SHR共享内存共享内存大小,单位kb
    8 :S 进程状态
    D=不可中断的睡眠状态
    R=运行
    S=睡眠
    T=跟踪/停止
    Z=僵尸进程
    9:TIME+ 进程使用的CPU时间总计,单位1/100秒
    10:COMMAND : 执行的命令
    11:%CPU :占用CPU的时间比
    12:%MEM: 进程使用物理内存的百分比

    top实际使用的技巧:

    1 按数字1: 显示cpu 核心数
    2 按大写P :按照CPU使用率由高到低排序
    3 按大写M: 按照内存使用率由高到低排序

    补充:

    第一步: 使用 yum -y install htop 命令安装
    第二步: 如果失败则先使用yum -y install epel - release(第三方扩展库) 命令安装epel-release 。
    第三步: 安装完成后则继续执行第一步安装命令。
    第四步: 最后执行 htop 命令
    出现彩色界面 如下图:
    (对比和上图灰色页面有何不同)
    在这里插入图片描述
    结束彩色页面:ctrl + z
    九万里: 才疏学浅,如有差池,欢迎各位老师及时指正 ,谢谢 。 看完如果觉得不错 动动小手点个赞,或者留下您的精彩评论!

    展开全文
  • 注意: 1.如果pro.waitFor()返回1,j即使根据java文档,是operation not permited,但其实基本就是写的...2.有时候对于不太活跃的进程进行top命令,会经常得到CPU使用率0,其实可以多次top后再平均。 import java...

    注意:
    1.如果pro.waitFor()返回1,j即使根据java文档,是operation not permited,但其实基本就是写的shell命令有问题,有时候在linux上可以执行,但放到了java shell中还不是不能执行,比如top命令,要多加个-b才能执行。
    2.有时候对于不太活跃的进程进行top命令,会经常得到CPU使用率0,其实可以多次top后再平均。

    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.lang.management.ManagementFactory;
    import java.math.BigDecimal;
    
    public class SystemInfoUtil {
        
    	public static void getCurrentProcessInfo_linux()
    	{
    		//获取当前进程id
            String jvmName = ManagementFactory.getRuntimeMXBean().getName();
    		String pid = jvmName.split("@")[0];
    		int monitorcount = 4;
    		String cmd = "top -b -d 5 -p "+pid+" -n "+monitorcount+"|grep java|awk '{print $9\" \"$6}'";
    		String[] cmds = new String[] { "/bin/sh", "-c",  cmd }; 
    		InputStream in=null;
    		BufferedReader read=null;
    		try
            {
            	Process pro = Runtime.getRuntime().exec(cmds);
                if(pro.waitFor()==0)
                {
                	in = pro.getInputStream();  
                    read = new BufferedReader(new InputStreamReader(in));  
                    String line;
                    double cpu = 0.0;
            		long mem = 0l;
                    while((line = read.readLine())!=null)
                    {
                    	//拿第二行
                    	String cpu_str = line.split(" ")[0];
                    	cpu = cpu+Double.parseDouble(cpu_str);
                    	String mem_str = line.split(" ")[1];
                    	if(mem_str.toLowerCase().contains("g"))
                    	{
                    		mem = mem+Long.parseLong(mem_str.replace("g", ""))*1024*1024;
                    	}
                    	else if(mem_str.toLowerCase().contains("m"))
                    	{
                    		mem = mem+Long.parseLong(mem_str.replace("m", ""))*1024;
                    	}
                    	else
                    	{
                    		mem = mem+Long.parseLong(mem_str);
                    	}
                    }
                    cpu = cpu/monitorcount;
                    mem = mem/monitorcount;
                    BigDecimal b = new BigDecimal(cpu);
                    cpu = b.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
    	}
    }
    
    
    展开全文
  • top命令的使用查看进程占用

    千次阅读 2019-10-17 15:43:51
    (1)、top 在top命令的显示界面,按数字键1,即可查看到当前系统中的总cpu数 2、top 查看内存、cpu memery等信息 按shift+p或者大写的P可以将cpu占用情况由大到小排列出来,找到占用cpu最大的那个线程比如我这里...

    1、查看cpu总个数方法:
    (1)、top 在top命令的显示界面,按数字键1,即可查看到当前系统中的总cpu数
    在这里插入图片描述
    2、top
    查看内存、cpu memery等信息
    按shift+p或者大写的P可以将cpu占用情况由大到小排列出来,找到占用cpu最大的那个线程
    比如我这里PID就是3318

    扩展

    查看占用cpu的进程

    1、查看CPU信息

    ps aux | sort -k3nr |head -n 10
    

    在这里插入图片描述
    上面显示按照按照消耗CPU前10排序的进程。
    top
    命令然后界面输入大写的P,进程按照CPU消耗动态排序
    在这里插入图片描述
    strace
    使用strace跟踪进程系统调用
    strace -c -p 2532
    在这里插入图片描述
    2、查看内存信息

    ps
    ps aux | sort -k4nr |head -n 10
    

    上面显示按照按照消耗内存前10排序的进程。
    top
    命令然后界面输入大写的M,进程按照内存消耗动态排序
    在这里插入图片描述
    pmap
    使用pmap命令查看进程的内存状态,以及内存映射

    pmap -xq 2750
    

    在这里插入图片描述
    3、查看磁盘IO信息
    iotop
    在这里插入图片描述
    iostat
    iostat 1 10
    在这里插入图片描述
    4、查看网络信息
    iptraf-ng或者iptraf
    使用iptraf-ng命令查看网卡流量情况,以及应用端口网络流量情况
    iptraf-ng eth0
    在这里插入图片描述
    注意:iptraf-ng和iptraf命令系统一般默认不安装,使用之前需要通过yum -y intall iptraf安装
    netstat
    使用netstat查看监听端口及进程

    netstat -tunlp
    

    在这里插入图片描述
    使用netstat命令查看主机路由信息

    netstat -rn
    

    在这里插入图片描述

    一. 字段介绍

    默认情况下top命令仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。
    在这里插入图片描述
    方法:

    执行top -c ,显示进程运行信息列表
    
    键入P (大写p),进程按照CPU使用率排序
    
    # top -c
    top - 14:10:45 up 3 days, 21:54,  1 user,  load average: 0.00, 0.01, 0.05
    Tasks: 109 total,   1 running, 107 sleeping,   1 stopped,   0 zombie
    %Cpu(s):  0.3 us,  0.2 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3881340 total,  2384096 free,   764044 used,   733200 buff/cache
    KiB Swap:  4064252 total,  4064252 free,        0 used.  2786112 avail Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    10673 tomcat    20   0 3189912 523976  14328 S   1.3 13.5  88:07.20 java
      771 root      20   0  218504   9520   5984 S   0.3  0.2   0:24.28 rsyslogd
        1 root      20   0  125344   3760   2564 S   0.0  0.1   1:56.72 systemd
        2 root      20   0       0      0      0 S   0.0  0.0   0:00.21 kthreadd
        3 root      20   0       0      0      0 S   0.0  0.0   0:01.94 ksoftirqd/0
        5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
        7 root      rt   0       0      0      0 S   0.0  0.0   0:00.10 migration/0
        8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
        9 root      20   0       0      0      0 S   0.0  0.0   0:43.99 rcu_sched
       10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain
       11 root      rt   0       0      0      0 S   0.0  0.0   0:01.57 watchdog/0
       12 root      rt   0       0      0      0 S   0.0  0.0   0:02.02 watchdog/1
       13 root      rt   0       0      0      0 S   0.0  0.0   0:00.18 migration/1
       14 root      20   0       0      0      0 S   0.0  0.0   0:02.61 ksoftirqd/1
       16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H
       18 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs
       19 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns
       20 root      20   0       0      0      0 S   0.0  0.0   0:00.35 khungtaskd
       21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback
       22 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd
       23 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
       24 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kblockd
       25 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 md
       26 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 edac-poller
       32 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kswapd0
    

    将线程PID转化为16进制

    工具:printf
    
    方法:printf “%x” 10804
    

    查看堆栈,找到线程在干嘛

    工具:pstack/jstack/grep
    
    方法:jstack 10765 | grep ‘0x2a34’ -C5 --color
    

    第一部分
    第一行:任务队列信息

    # top
    top - 14:10:45 up 3 days, 21:54,  1 user,  load average: 0.00, 0.01, 0.05
    

    14:10:45:当前时间
    up 3 days, 21:54:系统已经运行的时间3天,21小时54分钟
    1 user:当前登陆用户数量1
    load average: 0.00, 0.01, 0.05:最近5/10/15 分钟内的平均负载
    注意:
    load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值:
    1)单核CPU情况下:0.00表示没有任何负荷,1.00表示刚好满负荷,超过1.00则表示超负荷,理想值为0.7
    2)多核CPU情况下:CPU核数 * 理想值0.7 = 理想负荷,例如:4核CPU负载不超过2.8则表示没有出现高负载
    (查询CPU的核数:cat /proc/cpuinfo| grep “cpu cores”| uniq)

    第二行:任务进程相关信息

    Tasks: 117 total,   2 running, 115 sleeping,   0 stopped,   0 zombie
    Tasks:任务(进程),系统现在有117个进程,其中处于运行中的有2(running)115个在休眠(sleep),stoped状态的有0个,zombie状态的有0个
    第三行:CPU信息(多个cpu时,内容可能会超过两行)
    %Cpu(s):  0.3 us,  0.5 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    0.3 us:用户空间所占cpu百分比
    0.5 sy:内核空间所占用cpu百分比
    0.0 ni:用户进程空间内改变过优先级的进程占用cpu百分比
    99.2 id:空闲cpu百分比
    0.0 wa:等待输入输出的cpu时间百分比
    0.0 hi:硬件CPU中断占用百分比
    0.0 si:软中断占用百分比
    0.0 st:虚拟机占用百分比
    第四行和第五行:内存使用(与free命令类似)
    

    //物理内存使用

    KiB Mem :  3881340 total,  2204420 free,   801112 used,   875808 buff/cache
    

    //虚拟内存使用

    KiB Swap:  4064252 total,  4064252 free,        0 used.  2745980 avail Mem
    

    物理内存:

    3881340 total:物理内存总量
    2204420 free:空闲内存总量
    801112 used:使用中的内存总量
    875808 buff/cache:缓存的内存总量
    swap交换分区:
    4064252 total:交换区总量
    4064252 free:空闲交换区总量
    0 used:使用中的交换区总量
    

    2745980 avail Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入
    近似计算服务器的真正可用内存:第四行的free + 第四行的buffers + 第五行的cached
    注意:
    对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了,或者运行有内存溢出问题

    第二部分:各进程状态监控
    通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
    按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
    按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

    PID:进程id
    PPID:父进程id
    RUSER:Real user name
    UID:进程所有者的用户id
    USER:进程所有者的用户名
    GROUP:进程所有者的组名
    TTY:启动进程的终端名,不是从终端启动的进程则显示?
    PR:优先级
    NI:nice值,负值表示高优先级,正值表示低优先级
    P:最后使用的CPU,仅在多CPU的环境下有意义
    %CPU:上次更新到现在的CPU的时间占用百分比
    TIME:进程使用CPU时间总计,单位:秒
    TIME+:进程使用的CPU时间总计,单位:0.01秒
    %MEM:进程使用的物理内存百分比
    VIRT:virtual memory usage 虚拟内存总量,VIRT=SWAP+RES
    

    1)进程“需要的”虚拟内存大小,包括进程使用的库/代码/数据等;
    2)假如进程申请100M的内存,但实际使用10M,那么它会增长100M,而不是实际使用量
    RES:resident memory usage 常驻内存,进程使用的未被换出的物理内存大小,单位kb,RES=CODE+DATA
    1)进程当前使用的内存大小,但不包括swap out
    2)包含其他进程的共享
    3)如果申请100M的内存,实际使用10M,则仅增长10M
    4)关于库占用内存的情况,它只统计加载的库文件所占内存大小
    SHR:shared memory 共享内存,单位kb
    1)除了自身进程的共享内存,也包括其他进程的共享内存
    2)虽然进程只使用了几个共享库的函数,但是它包含了整个共享库的大小
    3)计算某个进程所占物理内存大小公式:RES-SHR
    4)swap out后,数值会降下来
    CODE:可执行代码占用的物理内存大小,单位kb
    nFLT:页面错误次数
    nDRT:最后一次写入到现在,被修改过的页面数
    S:进程状态,D-不可中断的睡眠状态;R-运行;S-睡眠;T=跟踪/停止;Z-僵尸进程
    COMMAND :命令名/命令行
    WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
    Flages:任务标志
    DATA:数据占用的内存, 真正的该程序要求的数据空间,是真正在运行中要使用的
    二. top运行过程中显示方式控制

    s :改变画面更新频率
    l:关闭或开启第一部分第一行 top信息的显示
    t:关闭或开启第一部分第二行 Tasks和第三行 Cpus信息的显示
    m :关闭或开启第一部分第四行 Mem和第五行Swap信息的显示
    N :以PID的大小顺序排列展示进程列表
    P:以CPU占用率的大小顺序排列进程列表
    M :以内存占用率的大小顺序排列进程列表
    h:显示帮助
    n : 设置在进程列表所显示进程的数量
    q:退出top
    

    三. top命令参数使用

    使用格式:top [-] [d] [p] [q] [c] [C] [S] [s] [n]
    参数说明:

    d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之
    p:通过指定监控进程ID来仅仅监控某个进程的状态
    q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行
    S:指定累计模式
    s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
    i:使top不显示任何闲置或者僵死进程。
    c:显示整个命令行而不只是显示命令名。
    

    操作案列:

    使用top直接终止CPU消耗较大的进程
    在 top 运行界面快速终止相应的异常进程。说明如下:

    1,想要终止某个进程,只需按下小写的 k 键。

    2,输入想要终止的进程 PID (top 输出结果的第一列)。比如,如下图所示,假如想要终止 PID 为 23 的进程,输入 23 后按回车。
    在这里插入图片描述
    3、如下图所示,操作成功后,界面会出现类似 “Send pid 23 signal [15/sigterm]” 的提示信息让用户进行确认。按回车确认即可
    在这里插入图片描述

    参考链接 :
    Linux 系统 CPU 占用率较高问题排查思路 :https://blog.csdn.net/lufeisan/article/details/53150971
    性能监控工具:top : https://www.jianshu.com/p/9508d97e6939
    https://blog.csdn.net/u014692324/article/details/80816521

    展开全文
  • top命令查看进程列表 top命令是linux下常用的性能分析工具,能实时显示系统中各个进程的资源占用状况.和win的资源管理器类似.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态,如果在前台执行该命令,它...

    top命令查看进程列表

    top命令是linux下常用的性能分析工具,能实时显示系统中各个进程的资源占用状况.win的资源管理器类似.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态,如果在前台执行该命令,它将独占前台,知道用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU”敏感”的任务列表.该命令可以按CPU使用,内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互命令或者在个人定制文件中进行设定.

     

    top命令详解:

    1.命令格式:

    top [参数]

     

    2.功能:

    显示当前系统正在执行的进程的相关信息,包括进程的相关信息,包括进程ID,内存占用率,CPU占用率等等

    3:主要参数:

    参数

    说明

    -b

    批处理

    -c

    显示完整的命令

    -I

    忽略失效过程

    -s

    保密模式

    -S

    累积模式

    -i<时间>

    设置间隔时间

    -u<用户名>

    指定用户名

    -p<进程号>

    指定进程

    -n<次数>

    循环显示的次数

     

     

    4.使用案例

    案例1:

    #top

    top - 10:03:56 up 26 min,  1 user,  load average: 0.00, 0.00, 0.00

    Tasks: 101 total,   1 running, 100 sleeping,   0 stopped,   0 zombie

    Cpu(s):  0.4%us,  0.8%sy,  0.0%ni, 97.3%id,  1.4%wa,  0.0%hi,  0.1%si,  0.0%st

    Mem:   1922432k total,   156380k used,  1766052k free,    13788k buffers

    Swap:  1048568k total,        0k used,  1048568k free,    63608k cached

     

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                   

     1653 root      20   0 15032 1096  836 R  2.0  0.1   0:00.01 top                                                       

        1 root      20   0 19356 1528 1228 S  0.0  0.1   0:02.58 init                                                      

        2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                  

    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0    

    省略部分显示结果

     

     

    分析:前五行是当前系统情况整体的统计信息区.具体介绍如下:

    第一行:任务队列信息,uptime命令的执行结果,具体参数说明如下:

    10:03:56 : 当前系统时间

    up 26 min : 系统连续运行的时间(不重启,不断电,不关机)

    1 user : 当前有1个用户登录系统

    load average: 0.00, 0.00, 0.00      : ;oad average后面的三个数字分别是一分钟,五分钟,十五分钟的负载情况.

     

    load average : 数据是每隔五秒检查一次活跃的进程数,然后按特定算法算出的数值.如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了.

     

    第二行,Tasks----任务(进程),具体信息说明如下:

    系统目前有101个进程,目前有一个正在运行,100个在sleep,0个进程stopped,0个僵死进程.

     

     

     

    第三行,CPU状态信息,具体属性说明如下:

    0.4%us :  用户控件占用CPU的百分比

    0.8%sy :   内核控件占用CPU的百分比

    0.0%ni :  改变过优先级的进程占用CPU的百分比

    97.3%id :  空闲CPU百分比

    1.4%wa : IO等待占用的CPU的百分比

    0.0%hi :  硬中断占用CPU的百分比

    0.1%si :  软中断占用CPU的百分比

    0.0%st : 虚拟机被hpyervisor偷去的CPU时间

    注释:hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件.也可叫做VMM(虚拟机监视器).

     

    hypervisor是一种在虚拟环境中的”元”操作系统.他们可以访问服务器上包括磁盘和内存在内的所有物理服务设备,hypervisor补单协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护.当服务器启动并执行hypervisor,他回家再所有虚拟机客户端的操作系统,同时会分配给每一台虚拟机适量的内存,cpu,网络,磁盘.

     

    备注:在这里CPU的使用比率和win上的概念不同,需要理解linux系统用户空间和内核空间的相关知识!

     

    第四行,内存状态,具体信息如下:

    1922432k total  : 物理内存总量 (20G)

    156380k used : 使用中的内存总量(1.5G)

    1766052k free : 空闲内存总量(17.5G)

    13788k buffers : 缓存的内存量(137M)

     

    第五行,swap交换分区信息,具体说明如下:

    1048568k total : 交换区总量(10G)

    0k used : 使用的交换区总量(0K)

    1048568k free : 空闲交换区总量(10 G)

    63608k cached : 缓冲的交换区总量(6M)

     

    备注:第四行使用中的内存总量(used)指的是现在系统内核控制的内存书,空闲内存总量(free)是内核中还未纳入其管控范围的数量.纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linuxfree内存会越来越少,但不必为此担心.

    如果出于习惯去计算可用内存书,这里有个近似的计算公式,第四行的free+第四行的buffers+第五行的cached,按这个公式此台服务器的可用内存:1766052k + 13788k + 63608k =18.5G左右.

    对于内存监控,top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了

     

     

    第六行,空行

     

    第七行以下,各进程(任务)的状态监控,项目列信息说明如下:

    项目列表名称

    说明

    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

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

     

     

     

    其他使用技巧:

    1.多核CPU监控

    top命令基本视图中,按键盘数字”1”,可监控每个逻辑CPU的状况,再按数字键1,就会返回top基本视图界面

     

    2.高亮显示当前运行进程

    top命令的试图下,按下字母键b(打开/关闭加亮效果)

    我们发现top进程被加亮了,通配进程就是视图第二行显示的唯一的运行状态的那个进程,可以通过字母键y关闭或打开运行状态进程的加亮效果.

     

    3.进程字段排序

    默认进入top,各进程是按照CPU的占用量来排序的,敲击字母键x(打开/关闭排序列的加亮效果),可以看到top默认的排序列是”%CPU”.(centOS貌似不行)

     

    4.通过”shift+左右方向键”可以向左或向右改变排序.(centOS貌似不行)

     

     

     

    5.top交互模式(就是说在进入top命令基本视图中输入,类似与vim)

    top命令执行过程中可以使用的一些交互命令.这些命令都是单字母的,如果再命令行中使用的s选项,其中一些命令可能会被屏蔽.

     

    命令

    说明

    h

    显示帮助画面,给出一些简短的命令总结说明

    k

    终止一个进程

    i

    忽略闲置的僵死进程.这是一个开关式命令

    q

    退出top

    r

    重新安排一个进程的优先级别

    S

    切换到累计模式

    s

    改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s.输入0值则系统将不断刷新,默认值是5s

    f或者F

    从当前显示中添加或删除项目

    oO(字母)

    改变显示项目的顺序

    l(小写字母)

    切换显示平均负载和启动时间信息

    m

    切换显示内存信息

    t

    切换显示进程和CPU状态信息

    c

    切换显示命令名称和完整命令行

    M

    根据驻留内存大小进行排序

    P

    根据CPU适用百分比大小进行排序

    T

    根据时间/累计时间进行排序

    W

    将当前设置写入~/.toprc文件中

     

     

    展开全文
  • [LINUX]top命令查看指定名称的进程

    千次阅读 2021-01-12 07:55:24
    top -p `pidof xxx`
  • top命令查看进程信息和cpu占用

    万次阅读 2019-05-30 16:33:06
    通过top命令查看进程信息 通过adb shell top -h查看其使用方法 yumodeMacBook-Pro:car yumo$ adb shell top -h Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ] -m ...
  • top命令查看所有java进程

    千次阅读 2014-02-25 14:32:58
    top $(ps -e | grep java | awk '{print $1}' | sed 's/^/-p/')
  • top 命令实时显示进程的状态。默认状态显示的是cpu密集型的进程,并且每5秒钟更新一次。你可以通过PID的数字大小,age (newest first), time (cumulative time),resident memory usage(常驻内存使用)以及进程从...
  • 一:top指令查看CPU状态和内存使用状态: 1.查看CPU占用率; %CPU 上次更新到现在的CPU时间占用百分比 2.查看内存占用率;%MEM 进程使用的物理内存百分比 3.RES: 进程使用的、未被换出的物理内存大小,单位kb。 ...
  • Linux实时查看进程命令top笔记

    千次阅读 2019-05-02 06:29:51
    top命令是Linux下常用的性能分析工具,能够实时显示Linux系统中各个进程的资源占用状况,类似于Windows系统的任务管理器功能。top命令的语法格式:top [...
  • top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。 在 top 命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示...
  • Linux Top查看指定进程的CPU状态

    万次阅读 2019-02-15 11:14:21
    不管linux还是unix,大多数命令都是支持man命令查看帮助信息的。 语法是下面这样,进入到交互界面后,用法类似vi,然后按「q」可以退出,输入「?」再输入关键字,可以查询相关关键字: man top 帮助信息回显: ...
  • 输入下面的ps命令,显示所有运行中的进程: # ps aux | less 其中, -A:显示所有进程 a:显示终端中包括其它用户的所有进程 x:显示无控制终端的进程 pstree以树状显示正在运行的进程。...
  • ps 查看当前正在执行的进程 查看所有正在执行的进程,包括其他用户开启的进程 ...top命令执行后可以用 q 键 关闭动态进程信息 kill 结束指定的进程 -9表示强制中止进程 123是需要结束进程的pid kill -9 123 ...
  • top、ps命令查看进程中的线程方法

    千次阅读 2018-10-28 11:24:46
    方法一:PS ps -a显示所有进程pid,“-T...top用于实时查看各个线程情况,用top命令的“-H”选项,该选项会列出所有Linux线程。 eg1. top -H 所有线程 eg2. top -H -p &lt;pid&gt; 特定进程中的线程  ...
  • linux下使用top命令查看系统运行状态和进程运行状态 在linux下可以通过top命令来查系统运行状态和进程运行状态,通过man查看top手册,top的解释是display Linux tasks,以前看到过一个另外的解释display top CPU ...
  • linux 查看进程命令

    万次阅读 2020-02-10 17:55:56
    Linux 查看进程之PS命令 要对进程进行检测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程运行状态。Linux 系统中 我们可以使用 ps 命令查看进程。 ps 命令介绍 ps(process status) 命令是 ...
  • ubuntu系统中查看运行进程并结束相关进程 ...ps -aux 查看所有进程,每行一个程序(常用) ps -A 查看当前系统所有进程。(常用) ps -A | grep chrome 命令去搜索某个指定进程。(常用) ps -A | less ...
  • 当一个程序内有多个线程被拆分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间、打开的文件),以使拆分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发...
  • top是linux中自带的系统监控命令,实时监控系统各项指标 第一行各字段含义: 这些字段显示: 当前时间 系统已运行的时间 当前登录用户的数量 相应最近5、10和15分钟内的平均负载。 Ps:1核cpu饱满负载为1,...
  • 这个一般常说的是top,不过还有几个命令。 Linux系统查看CPU使用率命令 在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文...
  • Linux中的top查看进程详解

    千次阅读 2020-10-15 10:47:33
    top命令的默认输出如下: 上半部分显示了整体系统负载情况 top一行:从左到右依次为当前系统时间,系统运行的时间,系统在之前1min、5min和15min内cpu的平均负载值 Tasks一行:该行给出进程整体的统计...
  • Linux的进程查看top命令

    千次阅读 2017-11-22 12:13:36
    查看系统健康状态 有计划的重启,是服务器维护的基本原则   [root@localhost ll]# top top - 11:27:11 up 2:25, 3 users, load average: 0.00, 0.01, 0.05 Tasks: 155 total, 2 running, 153 sleeping, 0 ...
  • 在linux下可以通过top命令来查系统运行状态和进程运行状态,通过man查看top手册,top的解释是display Linux tasks,以前看到过一个另外的解释display top CPU processes,这个我觉得挺贴切的,因为top这个命令会自动...
  • 在Linux上显示某个进程的线程的几种方式 方法一:PS 在ps命令中,“-T”选项可以开启线程查看。...要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按...
  • Linux基础命令---top显示进程信息

    千次阅读 2019-04-25 17:44:55
    top指令用来显示Linux的进程信息,这是一个动态显示的过程。top提供运行系统的动态实时视图。它可以显示系统摘要信息以及当前由Linux内核管理的任务列表。所显示的系统摘要信息的类型以及为任务显示的信息的类型、...
  • 一、进程定义: 进程也就是cpu未完成的工作。...二、ps命令psa 关于当前shell运行的所有进程x | -A 所有进程,x显示状态-A不会。这是两个命令f 显示进程从属关系e 显示进程调用环境工具的详细信息l ...
  • -sort -rss或者:https://www.cnblogs.com/sparkbj/p/6148817.htmlLinux下如何查看哪些进程占用的CPU内存资源最多linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:ps aux|head -1;ps a...
  • top命令相当于window系统的任务管理器,这个命令可以让我们轻松的查看到linux当前负载的实时数据,便于我们更好的管理系统合理作出调整; top命令比window系统任务管理器更强大,通过相应参数可以更直观快速输出...
  • linux下执行并查看后台进程,jobs,ps,top命令 的区别 背景:王晓茹老师布置的数据挖掘(机器学习)的课程实验 - - 100万条新闻文本的分类。 老师要求了两种方法,朴素贝叶斯和SVM,100万条新闻貌似NB在个人电脑上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,990
精华内容 55,196
关键字:

top命令查看所有进程