016 Linux 卧槽,看懂进程信息也不难嘛?top、ps

016 Linux 卧槽,看懂进程信息也不难嘛?top、ps

1 扒开看看 top 命令参数详情

Linux top 命令用于实时显示 process 的动态详情。

016 Linux 卧槽,看懂进程信息也不难嘛?top、ps

第一行,[top – ]任务队列信息

系统时间:07:27:05
运行时间(系统已开机多长时间):up 1:57 min
当前登录用户数:3 user
cpu 平均负载:load average: 0.00, 0.00, 0.00
//三个数值分别为,1分钟,5分钟,15分钟的负载情况

第二行,[Tasks] 任务(进程)

总进程数:150 total,
正在运行的进程数:1 running,
睡眠的进程数:149 sleeping,
停止的进程数: 0 stopped,
僵尸进程数: 0 zombie

第三行,[Cpu(s)]状态信息

0.0%us【user space】— 用户空间占用CPU的百分比。
0.3%sy【sysctl】— 系统内核占用CPU的百分比。
0.0%ni【】— 改变过优先级的进程占用CPU的百分比
99.7%id【idolt】— 空闲CPU百分比
0.0%wa【wait】— IO等待占用CPU的百分比
0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比
0.0%si【Software Interrupts】— 软中断占用CPU的百分比

第四行,[Mem]内存状态

//total:总内存大小,used:已使用的内存,free:空闲的内存,buffers:缓存的内存大小
1003020k total,   234464k used,   777824k free,    24084k buffers

第五行,[Swap]虚拟内存交换分区信息

//total:交换区总量;used:使用的交换区总量;free:空闲交换区总量;cached:缓存的交换区总量
2031612k total,      536k used,  2031076k free,   505864k cached

第六行,空行

第七行以下:各进程(任务)的状态监控

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 — 进程名称(命令名/命令行)

2 top 的一些常用交互命令和使用案例

top 命令,然后按数字 "1" 可监控每个逻辑CPU的状况
q # 退出程序
m # 切换显示内存信息
M # 根据驻留内存大小进行排序
t # 切换显示进程和CPU状态信息
P # 根据CPU使用百分比大小进行排序
top -d 3 # 表示更新周期为3秒
top -p 11 # 显示进程号为11的进程信息,CPU、内存占用率等

3 top 命令里面的 buffer 和 cache 区别?

Stack Exchange 对这个的讨论贴
what-do-the-buff-cache-and-avail-mem-fields-in-top-mean

摘取关键信息

buffers
Memory used by kernel buffers (Buffers in /proc/meminfo)

cache
Memory used by the page cache and slabs  (Cached and SReclaimable in /proc/meminfo)
buff/cache

buff/cache
Sum of buffers and cache

4 ps 命令常用案例和参数说明

Linux ps (process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

ps -aux |grep

示例:ps -aux|grep zookeeper
最常用的方法是 ps -aux,结合 grep 去查找特定的进程。
#-a 代表 all。
#-u 以用户为主的格式来显示程序状况。
#-x 显示所有程序,不以终端机来区分。

ps -ef |grep

示例:ps -ef | grep zookeeper
-e 和 -a 的意思是一样的,即显示有关其他用户进程的信息,包括那些没有控制终端的进程。
-f 显示用户id,进程id,父进程id,最近CPU使用情况,进程开始时间等等。

ps 命令其它常用案例

显示 root 用户进程信息
ps -u root

结合 less 命令和管道来使用
ps -aux |less

根据 CPU 使用来升序排序
ps -aux --sort -pcpu | less

根据内存使用来升序排序
ps -aux --sort -pmem | less

结合 head,只显示前十个
ps -aux --sort -pcpu,+pmem | head -n 10

5 小结

Linux 看懂进程状况信息也不难嘛?top、ps 两个就满足一般使用!

「不甩锅的码农」原创,转载请注明来源,未经授权禁止商业用途!同名 GZH 请关注!

Original: https://www.cnblogs.com/bilahepan/p/15914355.html
Author: 不甩锅的码农
Title: 016 Linux 卧槽,看懂进程信息也不难嘛?top、ps

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524080/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux动静分离与Rewrite

    一、动静分离 1.1 单台机器动静分离 1、创建NFS挂载点(NFS服务端) mkdir /static vim /etc/exports /static 172.16.1.0/2…

    Linux 2023年6月14日
    088
  • 【网络安全篇】常见的HTTP状态码小结(3位5类)

    HTTP 状态码(HTTP Status Code)用以表示网页服务器传输协议的响应状态;状态码为 三位数,响应分为 五种;状态码的第1位数字表示状态类型,第2、3位数字表示具体的…

    Linux 2023年6月13日
    092
  • LeetCode-125. 验证回文串

    题目来源 题目详情 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: &#8…

    Linux 2023年6月7日
    089
  • Jenkins+svn自动化部署完整教程

    1、概述 Jenkins 是一个可扩展的持续集成引擎。主要用于持续、自动地构建/测试软件项目、监控一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的se…

    Linux 2023年6月7日
    096
  • [20220301]oracle如何定位使用library cache mutex.txt

    [20220301]oracle如何定位使用library cache mutex.txt –//这个问题实际上困扰我很久,我开始以为library cache buc…

    Linux 2023年6月13日
    094
  • Redis的穿透、击穿、雪崩之间的区别与联系

    [本文出自天外归云的博客园] 缓存穿透 redis查询后有数据库查询的情况,查的数据在数据库里本来就没有,所以缓存里也没有,所以查询穿透了缓存,直接落到了数据库上,这就是缓存穿透 …

    Linux 2023年5月28日
    0101
  • Ansible简介

    Ansible 是一种常用的自动运维化工具,基于 python 开发,分布式,无需客户端,轻量级,配置语言采用 YAML。 模块化:调用特定的模块,完成特殊的任务。 2.Param…

    Linux 2023年6月6日
    098
  • Redis 位图BitMap

    应用场景: 用户签到 用户在线状态 统计活跃用户 各种状态值 自定义布隆过滤器 点赞功能 说明: 用string类型作为底层数据结构实现的一种统计状态的数据类型。 位图本质是数组,…

    Linux 2023年5月28日
    0108
  • [转载]C++中new和malloc的区别

    new与malloc的10点区别 1. 申请的内存所在位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储…

    Linux 2023年6月7日
    082
  • eclipse中如何打jar包并使用

    https://blog.csdn.net/qq_44985985/article/details/103992138 Original: https://www.cnblogs….

    Linux 2023年6月13日
    0128
  • 使用 Docker 安装 Zabbix,并配置自定义监控项

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、Zabbix 简介 Zabbix 可以用来监控各种网络参数,来保证服务器和系统的安全运行。并且 Zabbix 还提供了灵活的…

    Linux 2023年5月27日
    0142
  • Kubernetes 容器平台实战

    一、什么是Kubernetes? Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署,自动扩缩容,维护等功能. 通过Kubernetes可以做到…

    Linux 2023年6月14日
    0105
  • 零成本搭建个人博客之迁移Pages和域名

    在上文[零成本搭建个人博客之搭建篇]中,我将Hugo博客搭建到 Github Page上,后来考虑到用 Cloudflare cdn加速,干脆就把博客站点迁移到Cloudflare…

    Linux 2023年6月7日
    094
  • 没那么简单的单例模式

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 什么是单例 单例的应用场景 单…

    Linux 2023年6月6日
    0120
  • java 连接 redis

    Jedis 导入对应的依赖 redis.clients jedis 4.2.3 com.alibaba fastjson 1.2.79 连接数据库 记得在本地打开 redis //…

    Linux 2023年6月7日
    095
  • 分布式锁

    非分布式下使用锁 利用版本号来检测数据是否发生变化,从而判断是否能进行更新 JAVA 使用比较交换机制-CAS(Compare And Swap)机制实现 i++非线程安全,使用原…

    Linux 2023年6月7日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球