vmstat 监控虚拟内存,进程,CPU
文章目录
- 1. 命令格式:
- 2. 命令功能:
- 3. 命令参数:
- 4. 使用实例:
- 实例1:显示虚拟内存使用情况
- 实例2:显示活跃和非活跃内存
- 实例3:查看系统已经fork了多少次
- 实例4:查看内存使用的详细信息
- 实例5:查看磁盘的读/写
- 实例6:查看/dev/sda1磁盘的读/写
- 实例7:查看系统的slab信息
1. 命令格式:
vmstat[-a] [-n] [-S unit] [delay [ count]]vmstat[-s] [-n] [-S unit]vmstat[-m] [-n] [delay [ count]]vmstat[-d] [-n] [delay [ count]]vmstat[-p disk partition] [-n] [delay [ count]]vmstat[-f]vmstat[-V]
2. 命令功能:
用来显示虚拟内存的信息
3. 命令参数:
-a:显示活跃和非活跃内存-f:显示从系统启动至今的fork数量。-m:显示slabinfo-n:只在开始时显示一次各字段名称。-s:显示内存相关统计信息及多种系统活动数量。delay:刷新时间间隔。如果不指定,只显示一条结果。count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。-d:显示磁盘相关统计信息。-p:显示指定磁盘分区统计信息-S:使用指定单位显示。参数有k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)-V:显示vmstat版本信息。
这里特别提醒一下,vmstat -S M
可以M为单位显示结果。
4. 使用实例:
实例1:显示虚拟内存使用情况
[root@localhost ~]# vmstat 5 6procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------r b swpd free buff cache si so bi bo in cs us sy id wa st0 0 0 3029876 199616 690980 0 0 0 2 3 2 0 0 100 0 00 0 0 3029752 199616 690980 0 0 0 41 1009 39 0 0 100 0 00 0 0 3029752 199616 690980 0 0 0 3 1004 36 0 0 100 0 00 0 0 3029752 199616 690980 0 0 0 4 1004 36 0 0 100 0 00 0 0 3029752 199616 690980 0 0 0 6 1003 33 0 0 100 0 0
备注: vmstat 5 5 表示在5秒时间内进行5次采样。将得到一个数据汇总他能够反映真正的系统情况。
字段说明:
Procs(进程):
- r:运行队列中进程数量
- b:等待IO的进程数量
Memory(内存):
- swpd:使用虚拟内存大小
- free:可用内存大小
- buff:用作缓冲的内存大小
- cache:用作缓存的内存大小
Swap:
- si:每秒从交换区写到内存的大小
- so:每秒写入交换区的内存大小
IO:(现在的Linux版本块的大小为1024bytes)
- bi:每秒读取的块数
- bo:每秒写入的块数
系统:
- in:每秒中断数,包括时钟中断。
- cs:每秒上下文切换数。
CPU(以百分比表示):
- us:用户进程执行时间(user time)
- sy:系统进程执行时间(system time)
- id:空闲时间(包括IO等待时间),中央处理器的空闲时间 。以百分比表示。
- wa:等待IO时间
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。如果pi,po 长期不等于0,表示内存不足。如果disk 经常不等于0, 且 在 b中的队列大于3, 表示 io性能不好。Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。
实例2:显示活跃和非活跃内存
[root@localhost ~]# vmstat -a 2 5procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------r b swpd free inact active si so bi bo in cs us sy id wa st0 0 0 3029752 387728 513008 0 0 0 2 3 2 0 0 100 0 00 0 0 3029752 387728 513076 0 0 0 0 1005 34 0 0 100 0 00 0 0 3029752 387728 513076 0 0 0 22 1004 36 0 0 100 0 00 0 0 3029752 387728 513076 0 0 0 0 1004 33 0 0 100 0 00 0 0 3029752 387728 513076 0 0 0 0 1003 32 0 0 100 0 0
说明:
使用-a选项显示活跃和非活跃内存时,所显示的内容除增加inact和active外,其他显示内容与例子1相同。
字段说明:
Memory(内存):
- inact:非活跃内存大小(当使用-a选项时显示)
- active:活跃的内存大小(当使用-a选项时显示)
实例3:查看系统已经fork了多少次
[root@localhost ~]# vmstat -f185491695 forks
说明:
这个数据是从/proc/stat中的processes字段里取得的
实例4:查看内存使用的详细信息
[root@localhost ~]# vmstat -s7762752 K total memory5004672 K used memory4768064 K active memory1804288 K inactive memory701696 K free memory256 K buffer memory2056128 K swap cache4210624 K total swap3722368 K used swap488256 K free swap469311946 non-nice user cpu ticks99144 nice user cpu ticks99670890 system cpu ticks4925007753 idle cpu ticks12343718 IO-wait cpu ticks8466593 IRQ cpu ticks13803091 softirq cpu ticks0 stolen cpu ticks5662895521 pages paged in15048048233 pages paged out4048809 pages swapped in4429446 pages swapped out1490479026 interrupts548089045 CPU context switches1692347746 boot time185494909 forks
说明:
这些信息的分别来自于/proc/meminfo,/proc/stat和/proc/vmstat。
实例5:查看磁盘的读/写
[root@localhost ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------total merged sectors ms total merged sectors ms cur sec
vda 42493047 656210 11325792811 123390927 220328801 205076734 30096299395 1474852836 0 97159
sr0 0 0 0 0 0 0 0 0 0 0
dm-0 39111004 0 10807439693 109761070 420980531 0 30457533198 2271224580 0 290945
dm-1 4048861 0 518255488 20795930 4429446 0 566969088 35204700 0 12535
dm-2 19 0 2688 0 0 0 0 0 0 0
说明:
这些信息主要来自于/proc/diskstats.
merged:表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作.
实例6:查看/dev/sda1磁盘的读/写
[root@localhost ~]# vmstat -p /dev/vda1
vda1 reads read sectors writes requested writes115 14601 1 1
说明:
这些信息主要来自于/proc/diskstats。
- reads:来自于这个分区的读的次数。
- readsectors:来自于这个分区的读扇区的次数。
- writes:来自于这个分区的写的次数。
- requestedwrites:来自于这个分区的写请求次数。
实例7:查看系统的slab信息
[root@localhost ~]# vmstat -m
Cache Num Total Size Pages
nf_conntrack_expect 0 0 248 264
nf_conntrack 2491 4284 320 204
ovl_inode 4320 4590 728 90
fat_inode_cache 249 249 784 83
fat_cache 0 0 40 1638
scsi_sense_cache 2560 2560 128 512
ip6_dst_cache 204 204 320 204
PINGv6 0 0 1344 48
RAWv6 432 432 1344 48
UDPv6 176 176 1472 44
tw_sock_TCPv6 0 0 272 240
request_sock_TCPv6 0 0 336 195
TCPv6 100 100 2560 25
kcopyd_job 0 0 3312 19
dm_uevent 0 0 2632 24
bfq_queue 141 141 464 141
cfq_io_cq 0 0 120 546
mqueue_inode_cache 272 272 960 68
xfs_dqtrx 0 0 528 124
xfs_dquot 0 0 504 130
xfs_bui_item 0 0 216 303
xfs_rui_item 0 0 696 94
xfs_rud_item 0 0 176 372
xfs_inode 8353 25636 960 68
xfs_efd_item 2220 2664 440 148
xfs_buf_item 1200 2160 272 240
xfs_trans 7332 7332 232 282
xfs_da_state 544 544 480 136
xfs_btree_cur 1168 1168 224 292
xfs_log_ticket 1781 3916 184 356
ecryptfs_headers 0 0 65536 8
ecryptfs_inode_cache 0 0 1024 64
ecryptfs_dentry_info_cache 8192 8192 32 2048
ecryptfs_file_cache 0 0 16 4096
jbd2_journal_handle 0 0 48 1365
jbd2_journal_head 0 0 120 546
jbd2_revoke_table_s 0 0 16 4096
ext4_inode_cache 0 0 1160 56
ext4_allocation_context 0 0 128 512
ext4_io_end 0 0 64 1024
ext4_extent_status 0 0 40 1638
mbcache 0 0 56 1170
fscrypt_info 0 0 32 2048
fscrypt_ctx 0 0 80 819
kioctx 372 372 704 93
Cache Num Total Size Pages
userfaultfd_ctx_cache 0 0 192 341
dnotify_struct 0 0 32 2048
dio 0 0 640 102
ip4-frags 2730 2730 240 273
secpath_cache 6656 6656 128 512
xfrm_dst_cache 1310 3066 448 146
PING 644 896 1152 56
RAW 448 448 1152 56
UDP 204 204 1280 51
tw_sock_TCP 2160 2160 272 240
request_sock_TCP 780 780 336 195
TCP 822 832 2432 26
hugetlbfs_inode_cache 388 388 672 97
dquot 0 0 256 256
eventpoll_pwq 3640 3640 72 910
inotify_inode_mark 3276 3276 80 819
dax_cache 234 234 832 78
request_queue 264 264 2888 22
blkdev_ioc 1924 1924 136 481
biovec-max 576 720 4096 16
biovec-128 128 128 2048 32
biovec-64 256 256 1024 64
user_namespace 0 0 576 113
uid_cache 13610 22506 192 341
iommu_iova 4096 4096 64 1024
sock_inode_cache 2976 2976 704 93
skbuff_head_cache 4849 4864 256 256
configfs_dir_cache 2728 2728 96 682
file_lock_cache 1308 1308 200 327
net_namespace 80 80 6272 20
shmem_inode_cache 3556 3567 752 87
taskstats 796 796 328 199
proc_dir_entry 3751 3751 192 341
pde_opener 6552 6552 40 1638
proc_inode_cache 1960 2730 720 91
sigqueue 1636 1636 160 409
bdev_cache 204 204 960 68
kernfs_node_cache 35594 35594 136 481
mnt_cache 2757 3570 384 170
filp 22613 26880 256 256
inode_cache 3354 3535 648 101
dentry 29779 62115 216 303
names_cache 192 256 4096 16
buffer_head 1890 1890 104 630
uts_namespace 592 592 440 148
Cache Num Total Size Pages
vm_area_struct 51834 54327 240 273
mm_struct 844 952 1152 56
files_cache 1302 1302 704 93
signal_cache 826 1260 1088 60
sighand_cache 488 682 2112 31
task_struct 1517 1664 3904 16
cred_jar 3069 3069 192 341
thread_stack 1482 1648 16384 16
anon_vma_chain 55999 62464 64 1024
anon_vma 32953 46128 88 744
pid 7168 7168 128 512
Acpi-Operand 8190 8190 72 910
Acpi-Parse 4680 4680 56 1170
Acpi-State 5733 5733 80 819
Acpi-Namespace 3276 3276 40 1638
shared_policy_node 5460 5460 48 1365
numa_policy 10920 10920 24 2730
pool_workqueue 4609 4864 256 256
radix_tree_node 4944 10304 584 112
task_group 312 312 832 78
pgd_cache 1792 1792 512 128
kmalloc-131072 20 20 131072 4
kmalloc-65536 605 656 65536 8
kmalloc-32768 64 64 32768 16
kmalloc-16384 377 432 16384 16
kmalloc-8192 136 208 8192 16
kmalloc-4096 916 1168 4096 16
kmalloc-2048 1520 1600 2048 32
kmalloc-1024 4376 6528 1024 64
kmalloc-512 3002 7040 512 128
kmalloc-256 7797 9216 256 256
kmalloc-128 95988 326656 128 512
kmem_cache_node 2048 2048 128 512
kmem_cache 512 512 512 128
这组信息来自于/proc/slabinfo。
slab:由于内核会有许多小对象,这些对象构造销毁十分频繁,比如i-node,dentry,这些对象如果每次构建的时候就向内存要一个页(4kb),而其实只有几个字节,这样就会非常浪费,为了解决这个问题,就引入了一种新的机制来处理在同一个页框中如何分配小存储区,而slab可以对小对象进行分配,这样就不用为每一个对象分配页框,从而节省了空间,内核对一些小对象创建析构很频繁,slab对这些小对象进行缓冲,可以重复利用,减少内存分配次数。
相关文章:
vmstat 监控虚拟内存,进程,CPU
文章目录 1. 命令格式:2. 命令功能:3. 命令参数:4. 使用实例:实例1:显示虚拟内存使用情况实例2:显示活跃和非活跃内存实例3:查看系统已经fork了多少次实例4:查看内存使用的详细信息实…...

C++: 内联函数
目录 概念: 与宏的对比: 函数膨胀: 内联函数的特性: 概念: 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调 用建立栈帧的开销,内联函数…...

ctfshow web72
下载源码: 开启环境: 本题设置了 open_basedir(),将php所能打开的文件限制在指定的目录树中,包括文件本身。 因为 ini_set() 也被限制了,所以 open_basedir() 不能用 ini_set() 重新设置绕过。 使用 php 伪协议 glob:…...
你想要一个什么样的gpt?高准确度和可靠性 问题解答 自主完成任务(智能体) 解决贫困 战争 难题 公平的价值体系
人们对GPT(为特定用途定制的ChatGPT版本)的期望因用途和需求而异。不过,普遍期望的特征可能包括: 高准确度和可靠性:提供准确、可靠的信息和回答是最基本的要求。用户友好的交互体验:易于使用,…...
VUE中一些概念的理解
Vue 中 computed、mounted 和 methods 的基本理解。 computed 计算属性 (computed):主要用于根据现有的响应式数据(即 data 中的数据或其他 computed 属性)进行计算并返回一个新的值。计算属性是基于它们的响应式依赖进行缓存的。只有当依赖…...

【ArcGIS遇上Python】python实现批量XY坐标生成shp点数据文件
单个手动生成:【ArcGIS风暴】ArcGIS 10.2导入Excel数据X、Y坐标(经纬度、平面坐标),生成Shapefile点数据图层 文章目录 一、问题分析二、解决办法三、注意事项一、问题分析 现有多个excel、txt或者csv格式的坐标数据,需要根据其坐标批量一键生成shp点数据,如下X为经度,…...
【C语言】(7)输入输出
输出 printf printf 是 C 语言中最常用的输出函数。它可以将格式化的字符串输出到控制台。 基本语法: int printf(const char *format, ...);format 是格式化字符串,用于指定输出的格式。... 表示可变数量的参数,根据格式化字符串输出相应…...

数据结构——链式二叉树
目录 🍁一、二叉树的遍历 🌕(一)、前序遍历(Preorder Traversal 亦称先序遍历) 🌕(二)、中序遍历(Inorder Traversal) 🌕(三)、后序遍历(Postorder Traver…...

SpringSecurity笔记
SpringSecurity 本笔记来自三更草堂:https://www.bilibili.com/video/BV1mm4y1X7Hc/?spm_id_from333.337.search-card.all.click,仅供个人学习使用 简介 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,…...
常见递归算法题目整理
常见递归算法题目整理 一、单路递归1、阶乘计算2、翻转字符串3、二分查找 二、多路递归1、斐波那契1)基础版2)缓存版 2、汉诺塔3、杨辉三角1)基础版2)缓存版3)优化缓存版 ) 一、单路递归 1、阶乘计算 public class …...

安全小记-Ngnix负载均衡
配置Ngnix环境 1.安装 创建Nginx的目录: mkdir /soft && mkdir /soft/nginx/ cd /home/centos/nginx下载Nginx安装包通过wget命令在线获取安装包: wget https://nginx.org/download/nginx-1.21.6.tar.gz解压Nginx压缩包: tar -x…...

CI/CD
介绍一下CI/CD CI/CD的出现改变了开发人员和测试人员发布软件的方式,从最初的瀑布模型,到最后的敏捷开发(Agile Development),再到今天的DevOps,这是现代开发人员构建出色产品的技术路线 随着DevOps的兴起,出现了持续集成,持续交付和持续部署的新方法,传统的软件开发和交付方…...

window下如何安装ffmpeg(跨平台多媒体处理工具)
ffmpeg是什么? FFmpeg是一个开源的跨平台多媒体处理工具,可以用于录制、转换和流媒体处理音视频。它包含了几个核心库和工具,可以在命令行下执行各种音视频处理操作,如剪辑、分割、合并、媒体格式转换、编解码、流媒体传输等。FFmpeg支持多…...
MySQL必看表设计经验汇总-上(精华版)
目录 1.命名要规范 2选择合适的字段类型 3.主键设计要合理 4.选择合适的字段长度 5.优先考虑逻辑删除,而不是物理删除 6.每个表都需要添加通用字段 7.一张表的字段不宜过多 前言 在数据库设计中,命名规范、合适的字段类型、主键设计、字段长度、…...

扫雷游戏(C语言)
目录 一、前言: 二、游戏规则: 三、游戏前准备 四、游戏实现 1、打印菜单 2、初始化棋盘 3、打印棋盘 4、布置雷 5、排雷 五、完整代码 一、前言: 用C语言完成扫雷游戏对于初学者来说,难度并不是很大,而且通…...
五、MySQL的备份及恢复
5.1 MySQL日志管理 在数据库保存数据时,有时候不可避免会出现数据丢失或者被破坏,这样情况下,我们必须保证数据的安全性和完整性,就需要使用日志来查看或者恢复数据了 数据库中数据丢失或被破坏可能原因: 误删除数据…...

使用dockers-compose搭建开源监控和可视化工具
简介 Prometheus 和 Grafana 是两个常用的开源监控和可视化工具。 Prometheus 是一个用于存储和查询时间序列数据的系统。它提供了用于监控和报警的数据收集、存储、查询和图形化展示能力。Prometheus 使用拉模型(pull model),通过 HTTP 协议…...

浏览器——HTTP缓存机制与webpack打包优化
文章目录 概要强缓存定义开启 关闭强缓存协商缓存工作机制通过Last-Modified If-Modified-Since通过ETag If-None-Match 不使用缓存前端利用缓存机制,修改打包方案webpack 打包webpack 打包名称优化webpack 默认的hash 值webapck其他hash 类型配置webpack打包 web…...
STM32duino舵机控制-2
使用定时器进行精确延时,串口接收数据进行 50 0度 --十六进制32 250 180度 --十六进制FA 串口接收到AA 32两个字节,舵机转到0度;接收到AA FA,转到180度。请验证代码: const unsigned…...
【知识---如何创建 GitHub 个人访问令牌】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言登录到 GitHub 帐户。在右上角的头像旁边,点击用户名,然后选择 "Settings"。在左侧导航栏中,选择 "Develope…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...