精华内容
下载资源
问答
  • 1、top命令 top前5行统计信息 ** 第一行: top - 13:59:30 up 15 days, 4:53, 2 users, load average: 1.31, 1.62, 1.41 ** 第1行是任务队列信息,其参数如下: 内容 含义 13:59:30 表示当前时间 up 4:53...

    1、top命令

    在这里插入图片描述

    top前5行统计信息

    ** 第一行: top - 13:59:30 up 15 days, 4:53, 2 users, load average: 1.31, 1.62, 1.41 **
    第1行是任务队列信息,其参数如下:

    内容含义
    13:59:30表示当前时间
    up 4:53系统运行时间 格式为时:分
    2 users当前登录用户数
    load average: 1.31, 1.62, 1.41系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转

    ** 第二行: Tasks: 330 total, 1 running, 329 sleeping, 0 stopped, 0 zombie **
    ** 第3行:%Cpu(s): 0.3 us, 0.7 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st **

    第2、3行为进程和CPU的信息
    当有多个CPU时,这些内容可能会超过两行,其参数如下:

    当有多个CPU时,这些内容可能会超过两行,其参数如下:

    内容含义
    159 total进程总数
    1 running正在运行的进程数
    158 sleeping睡眠的进程数
    0 stopped停止的进程数
    0 zombie僵尸进程数
    37.0 us用户空间占用CPU百分比
    3.7 sy内核空间占用CPU百分比
    0.0 ni用户进程空间内改变过优先级的进程占用CPU百分比
    59.3 id空闲CPU百分比
    0.0 wa等待输入输出的CPU时间百分比
    0.0 hi硬中断(Hardware IRQ)占用CPU的百分比
    0.0 si软中断(Software Interrupts)占用CPU的百分比
    0.0 st

    如果该linux机子是虚拟机,还有另外一个字段

    ( st : time stolen from this vm by the hypervisor 表示hypervisor从这个vm窃取的时间)

    ** 第4行:KiB Mem: 1530752 total, 1481968 used, 48784 free, 70988 buffers **
    ** 第5行:KiB Swap: 3905532 total, 267544 used, 3637988 free. 617312 cached Mem **

    第4、5行为内存信息

    内容含义
    KiB Mem: 1530752 total 物理内存总量
    1481968 used使用的物理内存总量
    48784 free空闲内存总量
    70988 buffers(buff/cache)用作内核缓存的内存量
    KiB Swap: 3905532 total交换区总量
    267544 used使用的交换区总量
    3637988 free空闲交换区总量
    617312 cached Mem缓冲的交换区总量。
    3156100 avail Mem代表可用于进程下一次分配的物理内存数量

    进程信息

    列名含义
    PID进程id
    PPID父进程id
    RUSERReal user name
    UID进程所有者的用户id
    USER进程所有者的用户名
    GROUP进程所有者的组名
    TTY启动进程的终端名。不是从终端启动的进程则显示为 ?
    PR优先级
    NInice值。负值表示高优先级,正值表示低优先级
    P最后使用的CPU,仅在多CPU环境下有意义
    %CPU上次更新到现在的CPU时间占用百分比
    TIME进程使用的CPU时间总计,单位秒
    TIME+进程使用的CPU时间总计,单位1/100秒
    %MEM进程使用的物理内存百分比
    VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    SWAP进程使用的虚拟内存中,被换出的大小,单位kb
    RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    CODE可执行代码占用的物理内存大小,单位kb
    DATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
    SHR共享内存大小,单位kb
    nFLT页面错误次数
    nDRT最后一次写入到现在,被修改过的页面数。
    S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    COMMAND命令名/命令行
    WCHAN若该进程在睡眠,则显示睡眠中的系统函数名
    Flags任务标志

    top 其他

    • 1、在top基本视图中,按键盘数字“1”可以监控每个逻辑CPU的状况:
    • 2、敲击键盘‘b’(打开关闭加亮效果)top视图变换
    • 3、敲击键盘‘x’(打开/关闭排序列的加亮效果)
    • 4、改变进程显示字段

    free

    在这里插入图片描述

    cat /proc/meminfo

    在这里插入图片描述

    cat /proc/cpuinfo

    在这里插入图片描述

    Linux 获取CPU核心数

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
    # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
    
    # 查看物理CPU个数
    cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
    
    # 查看每个物理CPU中core的个数(即核数)
    cat /proc/cpuinfo| grep "cpu cores"| uniq
    
    # 查看逻辑CPU的个数
    cat /proc/cpuinfo| grep "processor"| wc -l
    
    展开全文
  • 一:top指令查看CPU状态和内存使用状态: 1.查看CPU占用率; %CPU 上次更新到现在的CPU时间占用百分比 2.查看内存占用率;%MEM 进程使用的物理内存百分比 3.RES: 进程使用的、未被换出的物理内存大小,单位kb。 ...

    一:top指令查看CPU状态和内存使用状态:

    在这里插入图片描述
    1.查看CPU占用率; %CPU
    上次更新到现在的CPU时间占用百分比

    2.查看内存占用率;%MEM
    进程使用的物理内存百分比

    3.RES:
    进程使用的、未被换出的物理内存大小,单位kb。
    RES=CODE+DATA(代码+程序使用的数据所占内存);

    二:查看某一个进程的物理内存占用状态:
    1.使用top -p 13856

    在这里插入图片描述
    2.查看进程的status文件:
    aston@ubuntu:~$ cat /proc/13856/status
    在这里插入图片描述

    3.VmRSS就是物理内存,可以看出app.out进程占用了540KB。

    三:查看线程创建时的默认栈大小:
    pthread_create();

    aston@ubuntu:/mnt/hgfs/share/insight/main_gcc/sample/app$ ulimit -s
    8192
    aston@ubuntu:/mnt/hgfs/share/insight/main_gcc/sample/app$ ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 7862
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 2048
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 7862
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    
    展开全文
  • 下面介绍使用top和free命令查看系统中空闲内存所以你执行top命令看到的[root@linuxzgf ~]# topMem: 8174492k total, 7124268k used,并不是代表你的应用程序已经使用了7.1的内存,这7.1G是包含了:应用程序内存 + 缓冲 ...

    下面介绍使用top和free命令查看系统中空闲内存

    所以你执行top命令看到的

    [root@linuxzgf ~]# top

    Mem: 8174492k total, 7124268k used,并不是代表你的应用程序已经使用了7.1的内存,这7.1G是包含了:应用程序内存 + 缓冲 + 缓存的内存的,需要用free命令查看.

    下面是一个例子(单位是MB):

    [root@linuxzgf ~]# free -m

    total used free shared buffers cached

    Mem: 7982 6811 1171 0 350 5114

    -/+ buffers/cache: 1346 6636

    Swap: 16935 11 16924

    [root@linuxzgf ~]#

    在这里例子中,应用程序只使用了1346MB内存,还有6636MB空闲内存可以使用.

    一些简单的计算方法:

    物理已用内存 = 实际已用内存 - 缓冲 - 缓存

    = 6811M - 350M - 5114M

    物理空闲内存 = 总物理内存 - 实际已用内存 + 缓冲 + 缓存

    应用程序可用空闲内存 = 总物理内存 - 实际已用内存

    应用程序已用内存 = 实际已用内存 - 缓冲 - 缓存

    原始解释:转至互联网:

    Linux的基本原则是没有资源应该被浪费.因此核心会使用尽可能多的RAM,来缓存来自本地和远程的文件系统的信息.系统做读写操作的时候,会将与当前运行的进程相关的数据尽量存储在RAM里.系统报告的缓存是缓冲和页缓存两者之和.缓存并不是在进程结束的时候被回收(你可能很快会启动另外一个进程,需要同样的数据),而是随需回收–比如,当你启动一个需要大量内存的进程时,Linux核心会从内存中回收缓存,将得到的内存分配给新的进程.

    有些区域,比如匿名内存映射(mmps)和共享内存区域,它们被报告为缓存,但不是被核心直接释放.一般的缓存不映射到进程的地址空间,仅仅是简单的核心映射,而这些特别的缓存映射到所有挂接到它们上面的进程.

    展开全文
  • 通过top命令监控进程活动,保存日志 # -d 1表示top命令频率为 每隔0.5秒;-n 1 表示刷新1次后退出 # 循环每隔0.5秒执行一次 # col命令过滤输出内容保存到日志时产生的控制字符(乱码问题) while true; do top -d ...


    top命令输出结果中内存占用监控日志分析
    因为没有找到好用的免费自动化运维监控工具,所以手动搞的轮子。
    如果大家有好用的工具,欢迎推荐!

    原始问题

    【进程丢失】pytorch DDP分布式训练10个epoch就丢失1个GPU进程
    具体解决过程可以点击上述链接查看,这里仅介绍如何监控内存占用。记录日志。

    日志监控

    1. 通过top命令监控进程活动,保存日志
    # -d 1表示top命令频率为 每隔0.5秒;-n 1 表示刷新1次后退出
    # 循环每隔0.5秒执行一次
    # col命令过滤输出内容保存到日志时产生的控制字符(乱码问题)
    while true; do top -d 0.5 -n 1 | col -b >> ./top0705.log; sleep 0.5; done
    

    日志分析

    1. 对日志进行分析
    from tqdm import tqdm
    import matplotlib.pyplot as plt
    
    txt = r'top0705.log'
    
    # 读取文本文件
    def ReadTxtName(rootdir):
        lines = []
        assert os.path.exists(rootdir),rootdir
        with open(rootdir, 'r', ) as file_to_read:
            while True:
                line = file_to_read.readline()
                if not line:
                    break
                if line.endswith('\n'):  # 行尾回车换行符
                    line = line.rstrip('\n')
                lines.append(line)
        return lines
    
    # 解析日志
    def parse_txt(txt):
        to_replace = {'?1h?25lH2JBm': '', 'Bm39;49mBm39;49mK\n': '\n', ':Bm39;49m1m': ':', ',Bm39;49m1m': ',',
                      '.Bm39;49m1m': '.',
                      'Bm39;49mK': '\n', '+Bm39;49m': '+', 'Bm39;49m\n': '\n', ' Bm39;49m': ' ', 'Bm39;49m': '', 'Bm1m': '',
                      'K\n': '\n',
                      '7m    PID': 'PID', 'Bm': '', '?1l25;1H': '', '?12l?25hK': ''}
        lines = ReadTxtName(txt)
        print(len(lines))
        newLines = []
        for line in tqdm(lines):
            newLine = None
            # print('ori', line)
            for idx,k in enumerate(to_replace):
                if k in line and not newLine:
                    newLine = line
    
                if newLine:
                    while k in newLine:
                        newLine = newLine.replace(k,to_replace[k],1)
                        # print('new', idx, k, newLine)
    
            if not newLine:
                newLine = line
    
            newLines.append(newLine)
            # print(newLine)
        print(len(newLines))
        return newLines
    
    # 记录内存和OOM的情况
    def count(lines):
        mem, swap, oom = [],[],[]
        cnt = 0
        for idx,line in tqdm(enumerate(lines)):
            if 'used' in line:
                if 'KiB Mem' in line:
                    use = line.split(',')[2].split('used')[0]
                    if '+' in use:
                        use = use.replace('+', '')
                        use = int(use) + 1e8 # 1e8是根据日志输出的内存占用最大值加上的,日志中带有+号的数值表示数值较大,这里直接加上了一个比较大的值。这个问题可以在生成日志的时候使用不同的数值表示方式避免。参考:https://unix.stackexchange.com/questions/477764/appearance-of-plus-in-top-output
                    mem.append(int(use))
                if 'KiB Swap' in line:
                    use = line.split(',')[2].split('used')[0]
                    if '+' in use:
                        use = use.replace('+', '')
                        use = int(use) + 1e8 # 同上
                    swap.append(int(use))
                cnt += 1
            if 'oom_reap+' in line:
                # print(idx,cnt//2)
                oom.append(cnt//2)
        print(len(mem), len(swap))
        return mem,swap,oom
    
    # 画图
    def plot(y1,y2,oom):
        x = min(len(y1),len(y2))
        y1 = y1[:x]
        y2 = y2[:x]
        x = range(x)
        plt.plot(x,y1, label='mem')
        plt.plot(x,y2, label='swap')
        for idx,x_ in enumerate(oom):
            plt.axvline(x=x_, linestyle="dotted", color="green", label='oom_'+str(idx))  # 添加垂直直线
    
        plt.legend()
        plt.show()
    
    newLines = parse_txt(txt)
    mem,swap,oom = count(newLines)
    plot(mem,swap,oom)
    

    在这里插入图片描述

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼用TOP看,上面写的是对的,但具体就只有为数不多的进程,各占百分之几的内存用FREE,则内存占用达90%以上,实际运行中也觉得有一点卡KiB Mem: 8149452 total, 8025672...
  • top -pid 2211 -l 1 | tail -n 1 | awk '{print $8}' 1.背景 在linux中我们一般会使用top或ps命令查看进程的内存、CPU等资源使用情况,但是Mac系统计算内存方式有点不太...(3)使用top命令查看:390M左右,与活动监.
  • 我们使用top命令查看内存使用情况的时候,会出现total、used、free、shared、buffer、cached等关键字,其中经常写应用代码,会对buffer和cached的概念比较模糊,很多情况下二者是相同的,但是在linux的内存模型中,...
  • 1、内存相关的信息 [root@node02 ~]# top top - 22:51:43 up 4:52, 2 users, load average: 0.05, 0.03, 0.05 Tasks: 173 total, 1 running, 172 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, ...
  • 先输入top然后按P – 以 CPU 占用率大小的顺序排列进程列表按M – 以内存占用率大小的顺序排列进程列表top命令是Linux下常用的性能分析工具,比如cpu、内存的使用,能够实时显示系统中各个进程的资源占用状况,类似...
  • 运行top命令后,键入大写P。 有两种途径: a) 打开大写键盘的情况下,直接按P键 b) 未打开大写键盘的情况下,Shift+P键 按进程的内存使用率排序 运行top命令后,键入大写M。 有两种途径: a) 打开大写键盘...
  • Linux系统中,可以使用top命令检查内存使用状况,开启top工具后,可以通过shift+m按键来使进程按内存使用率进行排序,您就可以看出哪些进程使用内存较多。top工具中的内存统计,与Windows系统中的统计称为不太一样,...
  • ps aux命令执行结果的几个列的信息的含义USER 进程所属用户PID 进程ID%CPU 进程占用CPU百分比%MEM 进程占用内存百分比VSZ 虚拟内存占用大小 单位:kb(killobytes)RSS 实际内存占用大小 单位:kb(killobytes)TTY 终端...
  • 在这个大年30早晨,收到告警服务器磁盘只有20%空闲,登上去处理后顺便发现服务器16G内存快用满了,top命令显示只有几百M了。登录zabbix,从1月29,30号开始,内存使用一路上涨就再没下来过了。图表的V线段还是部署的...
  • 一:top指令查看CPU状态和内存使用状态: 1.查看CPU占用率; %CPU 上次更新到现在的CPU时间占用百分比 2.查看内存占用率;%MEM 进程使用的物理内存百分比 3.RES:进程使用的、未被换出的物理内存大小,单位kb。 ...
  • top 命令详解

    千次阅读 2021-02-28 06:38:18
    首先介绍top中一些字段的含义:VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际...
  • 展开全部执行top之后,按住shift+E来切换显示单位。最上面显示总62616964757a686964616fe4b893e5b19e31333433656634和的内存大小是E,下面每个应用使用详情用e,每次切换分别是KB、MB、GB、TB、PB。第一个把KB改面MB...
  • linux top命令详解

    2021-05-15 17:56:36
    linux top命令详解下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombieCpu(s): 0.3% us, 1.0% sy, 0.0% ni, ...
  • linux top 命令详解

    千次阅读 2021-05-10 09:40:46
    top命令是Linux下使用相当频繁的一个命令,可是有一天突然发现,原来自己对他还是知之甚少(尤其是内存状态这块儿),所以照着man文档和参阅了一些资料,整理如下执行方式top -hv | -bcHisSM -d delay -n iterations -...
  • 5 0 0 0 S 0.3 0.0 33:43.64 kjournald ...系统很慢,我用top 命令查看内存使用情况,如上: 我标红色的地方 我想问题下,这个%MEM是怎么统计内存的呀!上面我标红色的%MEM列的几个值加起来远远大于100%了呀!
  • TOP命令

    2021-05-04 08:05:28
    toptop 命令可能是 Oracle DBA 在 Linux 上管理数据库时最有用的命令。如果系统很慢,您可能希望查看谁在占用所有 CPU 和/或内存。要显示最大进程,可以使用 top 命令。注意,与其他命令不同,top 不会产生输出,...
  • free 命令Linux free 命令用于显示内存状态。free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。语法:free [-bkmotV] [-s ]参数说明:-b:以 Byte 为...
  • 内存溢出排查命令

    2021-03-22 08:05:38
    可以先用top命令查询出占用内存最多的进程,然后使用下面指令分析占用内存较大的代码查看进程的内存镜像信息jmap -572 // 572表示的是进程id显示java堆详细信息jmap -heap -572 // 572表示的是进程id显示堆中对象的...
  • 引言:top命令作为Linux下最常用的性能分析工具之一,可以监控、收集进程的CPU、IO、内存使用情况。比如我们可以通过top命令获得一个进程使用了多少虚拟内存(VIRT)、物理内存(RES)、共享内存(SHR)。最近遇到一个咨询...
  • 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人...
  • 1、系统性能分析(top命令)nodetop 命令是 Linux 下经常使用的性能分析工具,可以实时显示系统中各个进程的资源占用情况,默认5秒刷新一下进程列表,因此相似于 Windows 的任务管理器。缓存 系统总体当下的统计信息...
  • top命令:实时监控; 先打开一个窗口专门运行top命令 top -c -d 0.1|grep python ...在运行的过程中,top命令窗口,就会不断显示着消耗的内存信息。 详解top命令参数 0.1代表中每0.1s更新下内存使用情况。 ...
  • top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。一、内容介绍top 命令运行图:1. 第一行——基本信息load average:load average 表示系统负载均值,使用 top 或 uptime 可以查看到...
  • free可用内存偏少是free相对top没有专门统计Slab。这也是导致两者差别的主要原因。 可以使用cat /proc/meminfo看到内存的更具体的使用情况 以MB为单位显示 cat /proc/meminfo | awk '{print $1,$2/1024" MB"}'|...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 142,136
精华内容 56,854
关键字:

top命令怎么看内存