首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

聊聊 Linux内存统计

点击上方“小强的进阶之路”,选择“星标”公众号 优质文章,及时送达 预计阅读时间: 18分钟 写在前面 本文主要分析 Linux 系统内存统计的一些指标以及进程角度内存使用监控的一些方法。...Linux内存管理从物理内存管理到虚拟内存管理涉及的概念和统计项实在太多,本文从实用和系统运维的角度出发,只列举一些最实用的统计。...首先明确一点,内核目前并没有绝对精确的统计所有的内存使用量,比如alloc_pages接口申请的内存不一定被统计在内(除非所有调用 alloc_pages 的代码主动进行统计,如果某些不讲究的驱动程序没有主动统计的话统计值就肯定对不上了...、SHM_LOCK的共享内存页(也统计在Mlocked中)、和Ramfs等 Mlocked — mlock() 系统调用锁定的内存大小 共享内存Linux 中细分的话可以分为以下几种: SystemV...共享内存、可执行程序的文件、动态库、mmap的文件等都统计在这里 Shmem — 共享内存的大小,包括Shared Memory、tmpfs和devtmpfs 注意 Linux内存是真正使用时才分配的

5.9K40
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 内核 内存管理】Linux 内核内存布局 ③ ( Linux 内核 动态分配内存 系统接口函数 | 统计输出 vmalloc 分配的内存 )

文章目录 一、Linux 内核 动态分配内存 系统接口函数 二、统计输出 vmalloc 分配的内存 一、Linux 内核 动态分配内存 系统接口函数 ---- Linux 内核 " 动态分配内存 "...是通过 " 系统接口 " 实现的 , 下面介绍几个重要的 接口函数 ; ① 以 " 页 " 为单位分配内存 : alloc_pages , __get_free_page ; ② 以 " 字节 " 为单位分配..." 虚拟地址连续的内存块 " : vmalloc ; ③ 以 " 字节 " 为单位分配 " 物理地址连续的内存块 " : kmalloc ; 注意 该 " 物理地址连续的内存块 " 是以 Slab 为中心的...; 二、统计输出 vmalloc 分配的内存 ---- 执行 grep vmalloc /proc/vmallocinfo 命令 , 可以统计输出 通过 vmalloc 函数分配的 " 虚拟地址连续的内存

5.1K30

利用 Shell 脚本来监控 Linux 系统的内存

一、安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具) 1、下载安装:http://downloads.sourceforge.net ... 206451&big_mirror...password 123456 logfile ~/.msmtp.log # chmod 600 ~/.msmtprc # touch ~/.msmtp.log 3、mutt安装配置:(一般linux...1、使用free命令查看linux系统内存使用情况:(以M为单位) # free -m (执行结果如下样式) total used free shared buffers cached Mem:...3952 3414 538 0 168 484 -/+ buffers/cache: 2760 1191 Swap: 8191 86 8105 2、查看截取剩余内存free的数值命令: (1) 物理内存.../bin/bash #使用free命令监控linux系统内存变化 #取系统当前时间(以追加的方式写入文件>>) date >> /scripts/date-time.txt #抓取物理内存free

1.7K10

利用 Shell 脚本实现邮件监控 Linux 系统的内存

一、安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具) 1、下载安装:http://downloads.sourceforge.net ... 206451&big_mirror...password 123456 logfile ~/.msmtp.log # chmod 600 ~/.msmtprc # touch ~/.msmtp.log 3、mutt安装配置:(一般linux...1、使用free命令查看linux系统内存使用情况:(以M为单位) # free -m (执行结果如下样式) total used free shared buffers cached Mem:...3952 3414 538 0 168 484 -/+ buffers/cache: 2760 1191 Swap: 8191 86 8105 2、查看截取剩余内存free的数值命令: (1) 物理内存.../bin/bash #使用free命令监控linux系统内存变化 #取系统当前时间(以追加的方式写入文件>>) date >> /scripts/date-time.txt #抓取物理内存free

94410

利用 Shell 脚本实现邮件监控 Linux 系统的内存

来自:Linux云计算网络 一、安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具) 1、下载安装:http://downloads.sourceforge.net … 206451&...password 123456 logfile ~/.msmtp.log # chmod 600 ~/.msmtprc # touch ~/.msmtp.log 3、mutt安装配置:(一般linux...1、使用free命令查看linux系统内存使用情况:(以M为单位) # free -m (执行结果如下样式) total used free shared buffers cached Mem: 3952.../bin/bash #使用free命令监控linux系统内存变化 #取系统当前时间(以追加的方式写入文件>>) date >> /scripts/date-time.txt #抓取物理内存free...| mutt -s "$IP 服务器内存告警" test@126.com fi 四、加入任务计划:内存每十分钟检测一次,有告警则立即发邮件(十分钟发一次),内存检测结果邮件每天早上8点发一次

84940

利用 Shell 脚本实现邮件监控 Linux 系统的内存

一、安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具) 下载列表地址 下载安装:https://marlam.de/msmtp/releases/msmtp-1.4.32...password 123456 logfile ~/.msmtp.log 赋于权限 chmod 600 ~/.msmtprc touch ~/.msmtp.log mutt安装配置:(一般linux...使用free命令查看linux系统内存使用情况:(以M为单位) free -m (执行结果如下样式) total used free shared buffers cached.../bin/bash #使用free命令监控linux系统内存变化 #取系统当前时间(以追加的方式写入文件>>) date >> /scripts/date-time.txt...四、加入任务计划:内存每十分钟检测一次,有告警则立即发邮件(十分钟发一次),内存检测结果邮件每天早上8点发一次 crontab -e 编写定时任务 */10 * * * * /scripts

51130

Linux必知必会-理解内存使用统计命令free

本文详细介绍了Linux系统中的free命令的使用方法以及关键参数的含义,这可能是你见过的关于free命令最详细的一篇文章了,绝对值得你收藏。...free命令显示了Linux系统中物理内存、交换分区的使用统计信息。...,第一行为 物理内存使用统计: 标题 说明 total 物理内存总量 total = used + free used 已使用内存总量,包含应用使用量+buffer+cached free 空闲内存总量...free 空闲内存加上buffer和cached之后的内存,也就是真正的可用内存总量 第三行为交换分区使用统计 标题 说明 total 交换分区内存总量 used 正在使用的交换分区内存 free...Total的统计信息 -o 禁止显示第二行的缓冲区调整值 -s 每隔多少秒自动刷新结果 -c 与-s配合使用,控制刷新结果次数 -l 显示高低内存统计详情 -a 显示可用内存 -V 显示版本号 版本不同

85830

JAVA统计服务器资源(cpu,内存,磁盘)–LINUX

JAVA统计服务器资源(cpu,内存,磁盘)–LINUX 使用类: com.sun.management.OperatingSystemMXBean 继承:java.lang.management.OperatingSystemMXBean...自从: 1.5 修饰符和类型 方法 描述 long getCommittedVirtualMemorySize() 返回保证对正在运行的进程可用的虚拟内存量(以字节为单位,或者-1如果不支持此操作...long getFreePhysicalMemorySize() 返回以字节为单位的可用物理内存量。 long getFreeSwapSpaceSize() 返回以字节为单位的可用交换空间量。...ong getTotalPhysicalMemorySize() 返回以字节为单位的物理内存总量。 long getTotalSwapSpaceSize() 返回以字节为单位的交换空间总量。...= osmxb.getFreePhysicalMemorySize(); System.out.println("空闲物理内存:" + freePhysicalMemorySize /

14.7K20

Linux——shell

什么是shellshell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器) 。它接收用户输入的命令并把它送入内核去执行。起着用户与系统之间进行交互的作用。 ?...shell的功能: 命令行解释 命令的多种执行顺序 通配符 命令补全、别名机制、命令历史 I/O重定向 管道 命令替换(` ` 或$( ) ) shell编程语言 shell可以执行——内部命令、外部命令...shell命令分为: 内部(内置)命令 内部命令是shell本身包含的一些命令,这些内部命令的代码是整个shell代码的一个组成部分; 内部命令的执行是shell通过执行自己的代码中的相应部分来完成的...外部(外置)命令 外部命令的代码则存放在一些二进制的可执行文件或者shell脚本中; 外部命令执行时,shell会在文件系统中指定的一些目录去搜索相应的文件,然后调入内存执行。...shell变量PATH中 ?

10.7K30

Linux 性能监控之CPU&内存&IO监控Shell脚本2

$6}' | cut -f 1 -d 'k'` #echo "剩余内存总量(操作系统):"$mem_sys_free # 获取应用程序已使用的内存总量 mem_buffers=`grep Mem $1...mem_buffers $mem_swap_total $mem_swap_used $mem_swap_free $mem_swap_cached $time done printf "\n" #5、获取磁盘I/O统计信息...echo "指定设备(/dev/sda1)的统计信息" printf "disk_sda_rs\tdisk_sda_ws\tdisk_sda_avgqu_sz\tdisk_sda_await\tdisk_sda_svctn...t%.1f\t\t%d\t\t%s\n" $proc_id $proc_cpu $proc_mem $proc_vsz $time done 注:获取磁盘I/O统计信息,这里收集的时间数据是大致时间-...注:针对不同类型、版本的操作系统,以上脚本可能需要做适当修改才可适用 附脚本下载地址:Linux 性能监控之CPU&内存&I/O监控Shell脚本2.zip

1.4K20

Linux 性能监控之CPU&内存&IO监控Shell脚本1

# 获取物理内存总量 mem_total=`free | grep Mem | awk '{print $2}'` echo "物理内存总量:"$mem_total # 获取操作系统已使用内存总量...mem_sys_used=`free | grep Mem | awk '{print $3}'` echo "已使用内存总量(操作系统):"$mem_sys_used # 获取操作系统未使用内存总量...mem_sys_free=`free | grep Mem | awk '{print $4}'` echo "剩余内存总量(操作系统):"$mem_sys_free # 获取应用程序已使用的内存总量...获取剩余交换分区大小 mem_swap_free=`free | grep Swap | awk '{print $4}'` echo "剩余交换分区大小:"$mem_swap_free #5、获取磁盘I/O统计信息...echo "指定设备(/dev/sda)的统计信息" # 每秒向设备发起的读请求次数 disk_sda_rs=`iostat -kx | grep sda| awk '{print $4}'` echo

1.8K40
领券