Linux内存监控工具

Linux内存与CPU监控实战工具解析 在现代服务器和高性能计算环境中,Linux系统的稳定性与性能优化依赖于对内存与CPU资源的精准监控与调度。本章将从操作系统层面入手,逐步解析内存管理的基本原理与CPU调度机制。内存作为程序运行的基础资源,其分配与回收直接影响系统响应速度与整体性能;而CPU作为计算核心,其调度策略决定了多任务环境下的执行效率。掌握这些基础概念,不仅有助于理解系统瓶颈的成因,也为后续深入学习监控工具和调优策略打下坚实基础。物理内存指的是系统中实际安装的RAM芯片所构成的存储空间。它是CPU可以直接访问的高速存储介质。 阅读详情

本文为转载 http://www.opensolution.org.cn/archives/502.html

一、free

  该工具主要是显示系统里可用和已用的内存

查看更多精彩图片

Linux 通常按一定的算法把常用的数据加载到系统的虚拟内存buffers 和cached 中,以便于用户程序在访问系统资源更快。而由free 查看到的buffers 是用于存放元数据,而cached 是用于存放真实的文件内容。

 

由上图free -k 的输出结果中可知:

系统总物理内存(total) 是4144656K( 约4G);

已用(Mem 行对应的used) 的物理内存 是3871932K( 约3.8G, 注: 这里包含了buffers 的152460K( 约152M) 和cached 的2253060K(2.2G).) ,他包含系统的buffers 和cached 的。

-/+ buffers/cache 对应的used 是1466412K( 约1.4G), 也就是Mem 行used(3871932K)-Mem 行buffers(152460K)-

Mem 行cached(2253060K)=1466412K( 约1.4G). 所以实际上可用于分配的物理内存(-/+ buffers/cache 行对应的free) 是2678244K( 约2.6G).

Shared 在man 手册里提示应该忽略(man free:The shared memory column should be ignored; it is obsolete.) 。

Mem 行对应的free 对应的274220K( 约274M). 其实这个free 是有一定限制的: 不能低于min_free_kbytes 。

min_free_kbytes 用于计算系统里lowmem zone( 物理内存0-896MB 之间的zone) 的值(This is used to force the Linux VM to keep a minimum number of kilobytes free.  The VM uses this number to compute a pages_min value for each lowmem zone in the system.  Each lowmem zone gets a number of reserved free pages based proportionally on its size.).

计算方式参见mm/page_alloc.c 的min_free_kbytes = sqrt(lowmem_kbytes * 16)

 

上述值是一定的公式计算

系统的lowmem 是872656KB

[root@crm_10 /root]grep LowTotal /proc/meminfo

LowTotal:  872656

min_free_kbytes=sqrt(872656*16) 约等于 3797

二、ps,top

  这两个工具在内存监视方面有很大的相似性,所以一并说一下:

下面top 里的VIRT 相当于ps 里的VSZ : 指用于这个任务的总虚拟内存( 虚拟内存包括物理内存和swap 交换分区), 包括所有的代码、数据、共享库以及已经被out 到swap 分区的数据。/* The total amount of virtual memory used by the task.  It includes all code, data and shared libraries plus pages that have been swapped out.*/

 

而top 里的RES 相当于ps 里的RSS : 指用于这个任务的没被out 到swap 分区的总物理内存/* resident set size, the non-swapped physical memory that a task has used */

top里的%MEM : 指这个任务的RES 占总物理内存的比率/* Memory usage (RES) A task's currently used share of available physical memory.*/

三、vmstat

 

显示的值跟用free 工具查看到的值相似。一般情况下: 只要swap 一列的si/so 数值不超过1024 即可。

Swap

       si: Amount of memory swapped in from disk (/s).

       so: Amount of memory swapped to disk (/s).

四:VFS 里的meminfo 信息:

查看更多精彩图片

Dirty : 是指数据已写入内存,但还没同步到外存( 磁盘) 的数据量.

Slab: 为了提供内核空间以页分配对有些调用( 只需小内存) 不合适的一种内存分配方式, 提出Pool 的概念。

Vmalloc: 为了解决非连续性内存的使用,提供的一种内存分配方式( 采用链表) 。

CommitLimit: 指当前可以分配给程序使用的虚拟内存( 只有当vm.overcommit_memory 的值设置为2 时,CommitLimit 才有意义)

 CommitLimit: Based on the overcommit ratio ('vm.overcommit_ratio'),
              this is the total amount of  memory currently available to
              be allocated on the system. This limit is only adhered to
              if strict overcommit accounting is enabled (mode 2 in
              'vm.overcommit_memory').
              The CommitLimit is calculated with the following formula:
              CommitLimit = ('vm.overcommit_ratio' * Physical RAM) + Swap
              For example, on a system with 1G of physical RAM and 7G
              of swap with a `vm.overcommit_ratio` of 30 it would
              yield a CommitLimit of 7.3G.
              For more details, see the memory overcommit documentation
              in vm/overcommit-accounting.

 

Committed_AS: 指当前已分配给程序使用的总虚拟内存( 包含已分配给进程但还没使用的内存)

Committed_AS: The amount of memory presently allocated on the system.
              The committed memory is a sum of all of the memory which
              has been allocated by processes, even if it has not been
              "used" by them as of yet. A process which malloc()'s 1G
              of memory, but only touches 300M of it will only show up
              as using 300M of memory even if it has the address space
              allocated for the entire 1G. This 1G is memory which has
              been "committed" to by the VM and can be used at any time
              by the allocating application. With strict overcommit
              enabled on the system (mode 2 in 'vm.overcommit_memory'),
              allocations which would exceed the CommitLimit (detailed
              above) will not be permitted.
This is useful if one needs
              to guarantee that processes will not fail due to lack of
              memory once that memory has been successfully allocated.

 

 

HugePagesize: 在X86 架构下, 通常linux 给内存分页时,默认是每页是4KB, 而有些应用自己可以管理内存( 例如db,java ……), 所以可以把页的大小分大些( 在32 位下:4K 或4M, 在PAE 模式下可以把每页设置为2M. 在64 位下: 4K, 8K, 64K, 256K, 1M, 4M, 16M,256M ), 这样可以增加TLB( 一个存储线性地址和物理地址对应表的高速缓冲器) 存储的条目, 这样就可减少线性地址到物理地址转换的过程. 可通过vm.hugetlb_shm_group 和vm.nr_hugepages 参数进行调整。具体可查看 /usr/share/doc/kernel-doc-`uname –r |cut -d- -f1`/Documentation/vm/hugetlbpage.txt( 如果你的机器上已经安装了 kernel-doc)

 

The intent of this file is to give a brief summary of hugetlbpage support in

the Linux kernel.  This support is built on top of multiple page size support

that is provided by most of modern architectures.  For example, IA-32

architecture supports 4K and 4M (2M in PAE mode) page sizes, IA-64

architecture supports multiple page sizes 4K, 8K, 64K, 256K, 1M, 4M, 16M,

256M.  A TLB is a cache of virtual-to-physical translations.  Typically this

is a very scarce resource on processor.  Operating systems try to make best

use of limited number of TLB resources.  This optimization is more critical

now as bigger and bigger physical memories (several GBs) are more readily

available.

 

Node框架之NestJS入门学习 文章主要分为三部分:1 NestJS 与Egg对比2 NestJS 基础知识介绍3 使用NestJS快速搭建应用,实现CURD操作e-link文档Egg官网NestJS 官网NestJS中文文档(非官方) 阅读详情

相关推荐

(OpenCV)图像目标尺寸检测

  本文翻译自pyimagesearch技术博客上的一篇文章,《Measuring size of objects in an image with OpenCV》,原文作者:Adrian Rosebrock 。 https://www.pyimagesearch.com/2016/03/28/measuring-size-of-objects-in-an-image-with-opencv...

明柳梦少的博客 7万+

[Linux] Linux内核参数min_free_kbytes与lowmem_reserve_ratio

[原文地址] http://kernel.taobao.org/index.php/Kernel_Documents/mm_sysctl 1. min_free_kbytes 先看官方解释: This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this

joyeu的专栏 1万+

树莓派上基于ONNXRuntime与Qt的C++模型部署实战指南

本文详细介绍了在树莓派上使用ONNXRuntime与Qt进行C++模型部署的完整流程。从环境配置、依赖安装到交叉编译优化,再到Qt界面集成与ARM架构性能调优,提供了实战指南和常见问题解决方案,帮助开发者高效完成边缘设备上的AI应用部署。

ik6789012的博客 339

【Linux】/proc/meminfo中CommitLimit 和 Committed_AS参数的具体含义及对比方法

在 Linux 的内存管理中,CommitLimit 和 Committed_AS 是两个重要的参数,它们可以用来了解系统的内存使用情况以及系统是否能够满足当前的内存需求。在这个例子中,Committed_AS 的值为 11808640 KB,即系统当前已经使用了 11808640 KB(约 11.2 GB)的内存。在这个例子中,CommitLimit 的值为 13113600 KB,即系统最多可以使用 13113600 KB(约 12.5 GB)的内存。/proc/meminfo 文件中,这两个参数。

zclinux的博客 5412

揭秘无人机前沿领域的科技新突破

本文旨在系统性地介绍无人机技术在前沿领域的最新突破,涵盖从基础理论到实际应用的各个方面。我们将重点关注那些正在改变无人机行业面貌的关键技术创新,并分析它们对未来发展的影响。文章首先介绍无人机技术的基础概念和背景,然后深入探讨六个关键领域的技术突破,接着分析实际应用案例,最后展望未来发展趋势。自主导航系统(SLAM):同时定位与地图构建技术,使无人机能在未知环境中自主导航计算机视觉(CV):使无人机能够"看"和理解周围环境的技术5G通信:第五代移动通信技术,提供高速、低延迟的数据传输能源管理。

AI天才研究院 1490

单细胞分析(16)—— RNA Velocity 分析流程

RNA velocity 是一种强大的单细胞转录组分析工具,它可以预测细胞的未来状态,揭示发育轨迹,并用于探索细胞状态转换。RNA velocity 是一种通过单细胞 RNA 测序(scRNA-seq)数据推测细胞未来状态的分析方法。🚀**RNA velocity 提供了一个全新的角度来理解细胞的动态变化,为单细胞转录组分析带来了更深入的时空信息!

阅读文献,记录学习笔记 2978

【随笔】设置min_free_kbytes会影响系统的可用内存

Performance What is vm.min_free_kbytes and how to tune it? byLinux Wolfman 原文地址:https://linuxhint.com/vm_min_free_kbytes_sysctl/ 这篇文章对min_free_kbytes的测试很有意思,通过这篇文章我才发现设置这个参数不仅仅是影响Linux内存回收中的water_mark,尤其是direct reclaim回收方式,还会影响系统的可用内存available memory。.

厚积薄发者,轻舟万重山 5646

工业金属表面缺陷检测:4种光学成像方案(明/暗/漫/背光)选型与实测对比

本文深入探讨工业金属表面缺陷检测中的4种光学成像方案(明/暗/漫/背光),详细解析其物理原理、适用场景及实测效果。通过对比不同照明方案在铝合金轮毂、不锈钢餐具等实际工业场景中的表现,提供科学的选型决策树,帮助提升缺陷检出率至99%以上,为计算机视觉在工业质检领域的应用提供实用指南。

weixin_33624741的博客 388

Linux内核中内存调优的两个参数分析

Linux内核中内存调优的两个参数分析

m0_74186706的博客 2685

使用CAPL实现DoIP刷写

本文介绍了使用CAPL实现基于DoIP协议的ECU刷写方法,包含完整源码。

qq_56033302的博客 2760

跨平台商品模型大解析:亚马逊 vs 阿里 vs 拼多多

本文深入探讨了亚马逊、阿里巴巴和拼多多三大电商平台的商品模型设计,分析了它们在变体关系、商品抽象层级和SKU定义等方面的异同。亚马逊模型以物流和变体为中心,强调全球仓配体系下的标准化管理;阿里模型采用多视角的弹性结构,适用于多类目、多品牌、多卖家环境;拼多多模型则结合平台标准化与商家个性化,适合短期促销和快速上新场景。文章还提供了实践建议,帮助自研电商平台或商品中台的开发者选择合适的商品结构,并强调了商品模型在电商系统中的核心作用。通过对比分析,本文旨在为读者提供商品建模的启发和参考。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 13万+

Linux系统参数(vm.min_free_kbytes)

★ 参数简述 该Linux系统参数的功能是用来设置一个最小内存空间给系统内核使用 该值设置过大会浪费空间,保留过小会造成系统压力 ★ 知识点 ※ 用途:合理设置该值有助于Linux系统更有效地回收内存 ※ 注意:对于内存较小(≤32GB)的环境不建议设置,保持默认即可 ※ 危险:不要对正在运行的环境进行设置 ※ 有修改操作,非原版 ※ vm.min_free_kbytes参数的单位是:KB ※ 内存水位 min水位:下的内存是保留给内核使用的;当到达min,会触发内存的direct reclaim..

sqlora的专栏 6739

【Dify】知识库智能检索应用

本文介绍了一个基于大语言模型的知识库检索系统,实现从自然语言提问到智能回答的自动化流程。该系统通过知识检索节点定位相关信息,利用重排序模型优化结果,最后由大语言模型生成自然语言答案。核心模型包括InternLM2-7B和BCE重排序模型。工作流程包含输入问题、检索重排序、智能生成和答案输出四个阶段,适用于企业知识管理、客户支持、教育培训等多种场景,能显著提升信息检索效率和准确性。文章还提供了相关开发文档链接,涵盖AIGC工具平台搭建、常见问题解决等内容。

Mr数据杨 1000

linux 比较常用的监控进程内存变化的工具

选择哪个工具取决于你的具体需求,如果需要实时监控单个进程的内存变化,htop 或 top 通常是最方便的选择;特点:显示进程的 RES(实际物理内存)、VIRT(虚拟内存)、SHR(共享内存)等信息。使用:pmap [进程ID] 或 pmap -x [进程ID](更详细信息)特点:来自 sysstat 包,可输出进程的内存使用率、缺页等详细信息。特点:支持鼠标操作,可横向滚动查看完整命令,内存显示更直观。功能:实时动态查看系统进程状态,包括内存使用情况。功能:静态查看进程状态,可配合参数筛选内存信息。

乾坤我做主的博客 385

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

linux 监控java内存_Linux下实用的JAVA内存泄露监控命令及工具

一、Linux 命令1、jstack (linux下特有)可以观察到jvm中当前所有线程的运行情况和线程当前状态jstack 2083输出内容如下: 2、jmap (linux下特有,也是很常用的一个命令)观察运行中的jvm物理内存的占用情况。参数如下:-heap:打印jvm heap的情况-histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。-histo:l...

weixin_35587674的博客 1303

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Linux 下磁盘和CPU、内存、网络监控工具

性能测试的时候,经常需要监视压力机的资源消耗情况,windows下大把工具,并且自带的任务管理器也不错,linux下,带图形界面的还好,不带的就比较麻烦了,需要自己手动安装一些工具来监视。 1.CPU/内存监视工具 Htop,需要手动安装,安装方式为:yum install htop 运行时界面如下: 2.磁盘监视工具 iotop,需要手动安装,安装命令为:yum install...

工作随笔 8134

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux内存监控工具earlyoom介绍

earlyoom是一个轻量级内存监控工具,能在系统内存不足时提前终止进程,防止系统完全卡死。它每秒检查可用内存和交换空间,当低于设定阈值时会智能终止内存占用最多的进程(先SIGTERM后SIGKILL)。相比Linux内核的OOM killer,earlyoom响应更快且可配置终止策略,支持设置阈值、进程优先级、发送通知等功能。该工具占用仅2MB内存,适合桌面和服务器环境,有效提升系统在内存压力下的响应能力。

荷塘月色 568

linux机器的物理内存监控,Linux内存监控工具

本文为转载 http://www.opensolution.org.cn/archives/502.html一、free该工具主要是显示系统里可用和已用的内存 Linux 通常按一定的算法把常用的数据加载到系统的虚拟内存buffers 和cached 中,以便于用户程序在访问系统资源更快。而由free 查看到的buffers 是用于存放元数据,而cached 是用于存放真实的文件内容。由上图fre...

weixin_35110266的博客 290

linux监控内存磁盘,linux系统监控工具(网络,磁盘,内存)

一、网络监控工具1.Linux 各种查看网卡流量的方法:http://jasonyong.blog.51cto.com/47753/1741972. netPerf:网络吞吐量/延迟:http://www.ibm.com/developerworks/cn/linux/l-netperf/index.html?ca=drs3. netstat:http://www.cnblogs.com/ggj...

weixin_35717941的博客 262

monit 内存 监控_4个好用的Linux监控工具

作者 | Tate Galbraith策划 | 万佳本文介绍了作者常用的 4 个 Linux 监控工具,希望可以帮助读者提高生产力。身为一个运维开发人员,如果你不知道眼下当前服务器底层操作系统中正在发生什么,那就有点合眼摸象了。其实,你可以根据相应数据做出一定的推测,但是要做到这一点,就需要原始数据,并且数据要有一定的实时性。你需要能够根据操作系统当前的运行状态,结合监控数据来做出合理判断,采取相...

weixin_30741979的博客 637

linux系统监控工具(网络,磁盘,内存)

一、网络监控工具 1. Linux 各种查看网卡流量的方法:http://jasonyong.blog.51cto.com/47753/174197

buptapple的专栏 3184

内存监控工具_快速学习Linux常用性能监控命令及工具

在linux系统环境的测试开发过程中,我们常常需要评估系统性能,尤其在性能测试工作中,我们需要通过系统资源的监控,从而分析定位系统的性能瓶颈。首先,我们要知道从哪些维度来评估系统的性能好坏:CPU利用率及负载内存利用率磁盘I/O利用率网络利用率如何监控上述系统资源的使用情况,有哪些常用的命令和工具呢。下面,就给大家罗列几个工作最常用的性能监控命令及工具,希望能对大家的工作有帮助。1.vm...

weixin_39569753的博客 128

Linux性能监控之内存,linux性能监控工具介绍

点评:这篇文章主要介绍了linux性能监控工具,需要的朋友可以参考下1.uptime该命令直观的显示了服务器在过去15分钟,5分钟,1分钟内的平均负载2.vmstat每隔2秒输出vmstat的信息,共输出10次。类别procsswapiosystemcpur:正在运行的进程数目si: 换入到内存的容量bi: 读入块数目in: 中断数目us:用户b:阻塞的进程数目so: 换出内存的容量bo: 写到块...

weixin_39524984的博客 128

Linux内存监控工具与实战技巧

内存管理是Linux系统性能调优的核心环节,理解内存工作原理对运维至关重要。Linux采用虚拟内存机制,通过页面缓存和交换空间优化内存使用效率。掌握内存监控技术能有效预防OOM、内存泄漏等问题,提升系统稳定性。本文详细介绍/proc/meminfo、free、vmstat等基础工具原理,结合top、htop等进程级分析工具,以及atop、nmon等高级监控方案,帮助开发者构建完整的内存监控体系。特别针对Java内存泄漏、容器环境等实际场景,提供可落地的排查方法和性能优化建议。

weixin_28931449的博客 262

linux监控内存的工具,Linux 三个强大的系统资源监控工具

1、dstatdstat是取代vmstat,iostat和ifstat的一个强大的多功能系统资源统计生成工具。dstat语法格式:dstat[-afv][options..][delay[count]]常用选项:-a,--all:等同于-cdngy(默认)-c,--cpu:仅显示CPU状态统计信息-C0,1,total:显示指定CPU状态统计信息和汇总信息,还包括其它资源的统计信息-d,...

weixin_33347102的博客 916

监控linux的CPU内存进程工具sar

监控linux的CPU内存进程工具sar 下载地址 http://pagesperso-orange.fr/sebastien.godard/download.html    1 安装   tar zxvf  xxx.tar.gz   ./configure    make    make install   2  使用 pidstat 2 5   //每隔2秒,显示5次,所有活...

个人博客 231
上一篇: SSH不能传输文件问题
下一篇: google APIkay test
max415
博客等级 码龄22年 16粉丝 38原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值