Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)

这篇具有很好参考价值的文章主要介绍了Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux查看CPU和内存使用情况

Linux查看CPU和内存命令:ps

1.CPU占用最多的前10个进程:

ps auxw|head -1;ps auxw|sort -rn -k3|head -10

2.内存消耗最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k4|head -10

3.虚拟内存使用最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k5|head -10
  1. 查看某一类进程占用总资源
    思路:使用ps命令,对内存相关的列进行求和。

查看哪一列是内存、哪一列是内存百分比

 ps auxw | more 

Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)由上图,内存百分比 我们就使用$4, 具体内存(KB)我们就用$6
如下,我们查看python相关进程,内存占用情况:

ps auxw | grep python | awk '{sum+= $4} END {print sum}'
ps auxw | grep python | awk '{sum+= $6} END {print sum}'

另外,我们python程序中,我们想排除一些额外的进程,我们可以继续利用 grep -v 去排除一下,例如:

ps auxw | grep python |  grep -v  xxxx | awk '{sum+= $6} END {print sum}'

查看系统内存命令:free

free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。

free命令可以显示当前系统未使用的和已使用的内存大小,还可以显示被内核使用的内存缓冲区:
Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)

  • Mem:内存的使用信息
  • Swap:交换空间的使用信息
  • total:总计物理内存的大小
  • used:已使用物理内存
  • free:可用物理内存
  • shared:多个进程共享的内存总额
  • buffers/cached:缓存缓冲使用物理内存大小
  • available:还可以被应用程序使用的物理内存大小

free与available的区别

total = used + free + buffer/cache
avaiable = free + buffer/cache(服务器或者公共云普通用户有部分buffer/cache是用不了的就会有avaiable < free + buffer/cache)

free是未被使用的内存
available是应用程序认为可用的内存
注意:Linux为了提升读写性能,消耗一部分内存资源作为缓存或者缓冲内存,在内核看来这部分buffer/cache属于已被使用的内存;在应用程序申请内存,而free内存不够时,就会让内核回收buffer和cache来满足应用程序的内存需求。

htop (推荐)

官网:https://htop.dev/
github: https://github.com/htop-dev/htop

htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。
Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)

htop相比较top的优势:

  • 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
  • 在启动上比top 更快。
  • 杀进程时不需要输入进程号。
  • 通过鼠标操作条目。
  • top 已不再维护。

安装

yum -y install  epel-release
yum -y install htop

htop 参数

-C --no-color        使用一个单色的配色方案
-d --delay=DELAY     设置延迟更新时间,单位秒
-h --help           显示htop 命令帮助信息
-u --user=USERNAME    只显示一个给定的用户的过程
-p --pid=PID,PID…       只显示给定的PIDs
-s --sort-key COLUMN     依此列来排序
-v –version          显示版本信息
交互式命令(INTERACTIVE COMMANDS)
上下键或PgUP, PgDn 选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程;
Space    标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程
U    取消标记所有进程
s    选择某一进程,按s:用strace追踪进程的系统调用
l    显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件
I    倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然
+, -    When in tree view mode, expand or collapse subtree. When a subtree is collapsed a "+" sign shows to the left of the process name.
a (在有多处理器的机器上)    设置 CPU affinity: 标记一个进程允许使用哪些CPU
u    显示特定用户进程
M    按Memory 使用排序
P    按CPU 使用排序
T    按time+ 使用排序
F    跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。
K    显示/隐藏内核线程
H    显示/隐藏用户线程
Ctrl-L    刷新
Numbers    PID 查找: 输入PID,光标将移动到相应的进程上

常用

-u参数查看指定用户进程信息

htop -u xxx_name

s:显示光标所在进程执行的系统调用;

界面说明

Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)该行主要显示CPU使用情况,htop还为将不同颜色来区分是使用情况:
(1)蓝色的表示low-prority(低优先级)使用
(2)绿色的表示normal(标准)使用情况
(3)红色的表示kernel(内核)使用情况
(4)青色的表示virtuality(虚拟性)使用情况

Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)该行主要表示内存使用情况,同样的htop使用了不同颜色来区分是使用情况:
(1)绿色的表示已经使用内存情况
(2)蓝色的表示用于缓冲的内存使用情况
(3)黄色的表示用于缓存的内存使用情况

Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)

  • PID:进行的标识号
  • USER:运行此进程的用户
  • PRI:进程的优先级
  • NI:进程的优先级别值,默认的为0,可以进行调整
  • VIRT:进程占用的虚拟内存值
  • RES:进程占用的物理内存值
  • SHR:进程占用的共享内存值
  • S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
  • %CPU:该进程占用的CPU使用率
  • %MEM:该进程占用的物理内存和总内存的百分比
  • TIME+:该进程启动后占用的总的CPU时间(他代表的并不是程序从启动到现在总共经过了多久,而是这个程式总共占用了多少 CPU Time)
    如果想知道长期而言哪个程序最占 CPU 的话,就看 Time+ 的数值
  • COMMAND:进程启动的启动命令名称

这里主要需要理解:
理解virt、res、shr之间的关系(linux系统篇)
参考URL:https://baijiahao.baidu.com/s?id=1743908545937632735

  • VIRT:进程占用的虚拟内存值。
    VIRT代表进程当前时刻有多少内存可以访问。进程虚拟空间的大小, 是真实使用的内存,加上映射进程自己使用的内存。
    基本上你可以把他想成 process 可以存取到的 memory 总和。
  • RES:进程占用的物理内存值
    意味驻留内存大小, 是当前进程真正占用物理内存的精确反映. (直接与%MEM列相对应.) RES始终要比VIRT小。
    RES=CODE+DATA SHR:共享内存大小,单位kb
  • SHR:进程占用的共享内存值
    SHR:共享内存大小,单位kb
    其实我们写的程序会依赖于很多外部的动态库(.so),比如libc.so、libld.so等等。这些动态库在内存中仅仅会保存/映射一份,如果某个进程运行时需要这个动态库,那么动态加载器会将这块内存映射到对应进程的虚拟内存空间中。多个进展之间通过共享内存的方式相互通信也会出现这样的情况。

某个进程占用的内存除了和别的进程共享的内存之外就是自己的独占内存了。所以要计算进程独占内存的大小只要用RES的值减去SHR值即可。

atop

Atop 是一个基于 ASCII 的全屏的性能监控工具,可用来监控进程的活动时间,高亮显示出一些过载的进程,还包括其他的一些系统指标例如:CPU、内存、交换分区、磁盘和网络等信息。

yum install atop

nmon(推荐)

nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。

参考文章:服务器资源监控工具-nmon、nmon_analyser

/proc/meminfo

MemTotal: 45964 kB //所有可用的内存大小,物理内存减去预留位和内核使用。系统从加电开始到引导完成,firmware/BIOS要预留一些内存,内核本身要占用一些内存,最后剩下可供内核支配的内存就是MemTotal。这个值在系统运行期间一般是固定不变的,重启会改变。
MemFree: 1636 kB //表示系统尚未使用的内存。
MemAvailable: 8496 kB //真正的系统可用内存,系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以这部分可回收的内存加上MemFree才是系统可用的内存
Buffers: 0 kB //用来给块设备做缓存的内存,(文件系统的 metadata、pages)
Cached: 7828 kB //分配给文件缓冲区的内存,例如vi一个文件,就会将未保存的内容写到该缓冲区
SwapCached: 0 kB //被高速缓冲存储用的交换空间(硬盘的swap)的大小
Active: 19772 kB //经常使用的高速缓冲存储器页面文件大小
Inactive: 3128 kB //不经常使用的高速缓冲存储器文件大小
Active(anon): 15124 kB //活跃的匿名内存
Inactive(anon): 52 kB //不活跃的匿名内存
Active(file): 4648 kB //活跃的文件使用内存
Inactive(file): 3076 kB //不活跃的文件使用内存
Unevictable: 0 kB //不能被释放的内存页
Mlocked: 0 kB //系统调用 mlock 家族允许程序在物理内存上锁住它的部分或全部地址空间。这将阻止Linux 将这个内存页调度到交换空间(swap space),即使该程序已有一段时间没有访问这段空间
SwapTotal: 0 kB //交换空间总内存
SwapFree: 0 kB //交换空间空闲内存
Dirty: 4 kB //等待被写回到磁盘的
Writeback: 0 kB //正在被写回的
AnonPages: 15100 kB //未映射页的内存/映射到用户空间的非文件页表大小
Mapped: 7160 kB //映射文件内存
Shmem: 100 kB //已经被分配的共享内存
Slab: 9236 kB //内核数据结构缓存
SReclaimable: 2316 kB //可收回slab内存
SUnreclaim: 6920 kB //不可收回slab内存
KernelStack: 2408 kB //内核消耗的内存
PageTables: 1268 kB //管理内存分页的索引表的大小
NFS_Unstable: 0 kB //不稳定页表的大小
Bounce: 0 kB //在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存
WritebackTmp: 0 kB //FUSE用于临时写回缓冲区的内存
CommitLimit: 22980 kB //系统实际可分配内存
Committed_AS: 536244 kB //系统当前已分配的内存
VmallocTotal: 892928 kB //预留的虚拟内存总量
VmallocUsed: 29064 kB //已经被使用的虚拟内存
VmallocChunk: 860156 kB //可分配的最大的逻辑连续的虚拟内存文章来源地址https://www.toymoban.com/news/detail-440440.html

到了这里,关于Linux查看CPU和内存使用情况(ps、free、htop、atop、nmon、/proc/meminfo等)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 查看进程和线程CPU和内存占用情况

    linux 下查看进程内的线程有哪些 首先通过进程名称,假设为SensorDev 找到pid号。 ps -p {pid} -T 可以得到该进程里面运行的各线程的id(表现出来是spid)、对应的线程名称(不超过16字符)、运行时间等; cat /proc/{pid}/status |grep Threads 只能显示线程的个数。 top -p {pid} ,然后按H t

    2024年02月08日
    浏览(59)
  • Linux和Windows系统下:安装Anaconda、Paddle、tensorflow、pytorch,GPU[cuda、cudnn]、CPU安装教学,以及查看CPU、GPU内存使用情况

    Anaconda安装:Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。使用Anaconda可以通过创建多个独立的Python环境,避免用户的Python环境安装太多不同版本依赖导致冲突。 Anaconda 是一个免费开源的 Python 和 R 语言的发行版本,用于计算科学,Anac

    2024年02月04日
    浏览(61)
  • Linux 查看服务器内存、CPU、网络等占用情况的命令

    1、查看物理CPU个数:cat  2、查看服务器CPU内核个数:cat    每个物理CPU中core的个数(即核数) 3、服务器内存使用情况:free 3.1、缓存清除 如果cached过大接近total数就需要清除缓存了,缓存清除命令:  4、查看服务器的平均负载:top top   --可以查看服务器各个进程情况 u

    2024年02月08日
    浏览(67)
  • 查看CPU核数、内存使用情况【一文读懂】

    🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 最近在折腾openvino部署方法,需要分析基础CPU资源占用情况 发现之前对基础 top 命令的使用处在初级阶段,趁着这次机会

    2024年02月10日
    浏览(46)
  • Linux中该如何查看当前CPU、内存、硬盘占用情况,如何判断当前服务器负载情况

    要查看当前 Linux 系统的 CPU、内存、硬盘占用情况,可以使用以下命令: 查看 CPU 占用情况: 该命令会显示当前系统进程的 CPU 占用情况,以及每个进程占用的 CPU 百分比和内存使用情况等信息。 查看内存占用情况: 该命令会显示当前系统的内存总量、已使用的内存量、空闲

    2024年02月11日
    浏览(69)
  • linux下查看某进程内有多少个线程的方法(ps、top、Htop)

    下面记录一下在linux下使用ps、top、Htop等指令查看某进程内有多少个线程的方法; 要想查看某个进程内的线程信息,首先得知道我们要查看的是哪个进程,所以第一步要确认该进程的进程号: 比如我们想查看“EngineServer9500”进程内有多少个线程,首先我们需要得到“EngineS

    2024年02月11日
    浏览(39)
  • Linux使用:环境变量指南和CPU和GPU利用情况查看

    按变量的生存周期划分: 永久的 :需要修改配置文件,变量永久生效。 临时的 :使用export命令声明即可,变量在关闭shell时失效。 在配置永久环境变量时,又可以按照作用范围分为: 用户环境变量 系统环境变量 系统环境变量对所有系统用户都有效,用户环境变量仅仅对当

    2023年04月08日
    浏览(43)
  • Linux查看CPU、GPU内存使用

    查看CPU内存使用情况 1、输入命令:top,显示如下 2、输入命令:htop,显示如下 若没有该命令,需要先安装,ubuntu安装命令为: centos安装命令为: 查看GPU内存使用情况 1、输入命令: nvidia-smi ,显示如下,该命令只能显示一次。 2、实时显示 1)使用watch命令, 按照指定间隔刷

    2023年04月12日
    浏览(39)
  • Linux 查看内存使用情况的几种方法

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA 在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水平运行,常常需要监控内存统计信息。 那么今天我们就来看看有哪些方法可以访问所有相关信息

    2023年04月20日
    浏览(42)
  • 【linux】Linux 查看内存使用情况的几种方法汇总

    Linux 查看内存使用情况的几种方法包括使用 free 命令、top 命令、htop 命令、vmstat 命令和/proc/meminfo 文件。这些方法可以帮助用户了解系统内存的使用情况,包括总内存、已用内存、空闲内存、缓存和交换分区等信息。 在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包