我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vmstat 主机性能分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vmstat 主机性能分析

一、vmstat介绍及详解(此篇博客是从博客园博主随风迎处转载,博主的网址:http://www.cnblogs.com/beginner-boy/  ,再次感谢博主的细心积累vmstat 主机性能分析

语法格式: vmstat [-V] [-n] [-S unit] [delay [count]]

              -V prints version.

              -n causes the headers not to be reprinted regularly.

              -a print inactive/active page stats.

              -d prints disk statistics

              -D prints disk table

              -p prints disk partition statistics

              -s prints vm table

              -m prints slabinfo

              -t add timestamp to output

              -S unit size

              delay is the delay between updates in seconds.

              unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)

              count is the number of updates.

参数解释:

-V:显示vmstat版本信息

-n:只在开始时显示一次各字段名称

-a:显示活跃和非活跃内存

-d:显示各个磁盘相关统计信息

-D:显示磁盘总体信息

-p:显示指定磁盘分区统计信息

-s:显示内存相关统计信息及多种系统活动数量

-m:显示slabinfo

-t:在输出信息的时候也将时间一并输出出来

-S:使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024bytes)

delay:刷新时间间隔。如果不指定,只显示一条结果

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷

二、vmstat各字段说明

vmstat 主机性能分析

procs

r:表示运行和等待CPU时间片的进程数(就是说多少个进程真的分配到CPU),这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU

b:表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

memory

swpd:表示切换到内存交换区的内存大小,即虚拟内存已使用的大小(单位KB),如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free:表示当前空闲的物理内存

buff:表示baffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲

Cache:表示page cached的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好

swap

si:表示有磁盘调入内存,也就是内存进入内存交换区的内存大小;通俗的讲就是 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so:表示由内存进入磁盘,也就是由内存交换区进入内存的内存大小。

注意:一般情况下si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存

io

bi:表示由块设备读入数据的总量,即读磁盘,单位kb/s

bo:表示写到块设备数据的总量,即写磁盘,单位kb/s

注意:如果bi+bo的值过大,且wa值较大,则表示系统磁盘IO瓶颈

system

in:表示某一时间间隔内观测到的每秒设备终端数

cs:表示每秒产生的 上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

注意:

这两个值越大,则由内核消耗的CPU就越多

CPU

us:表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法

sy:表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈

id:表示CPU处在空间状态的时间百分比

wa:表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者监控器的贷款瓶颈(主要是块操作)造成的

综上所述,如果评估CPU,需要重点关注procs项的r列值和CPU想的us、sy、wa列的值

三、使用实践

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:

vmstat 主机性能分析

2表示每个两秒采集一次服务器状态,1表示只采集一次。
实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

vmstat 主机性能分析

这表示vmstat每2秒采集数据,一直采集,直到我结束程序,这里采集了7次数据我就结束了程序。

------------------------------------------------------------------------------------------------------------------

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vmstat 主机性能分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vmstat 主机性能分析

一、vmstat介绍及详解(此篇博客是从博客园博主随风迎处转载,博主的网址:http://www.cnblogs.com/beginner-boy/ ,再次感谢博主的细心积累)语法格式: vmstat [-V] [-n] [-S unit
2023-06-05

linux性能调试之vmstat分析

1.性能分析的目的1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈); 2)提供性能优化的方案(升级硬件?改进系统系统结构?); 3)达到合理的硬件和软件配置; 4)使系统资源使用达到最大的平衡。(一般情况下系统良好运行的时候恰恰各项资源达到了
2022-06-04

Linux主机性能瓶颈分析工具

在Linux系统中,性能瓶颈分析是一个重要的任务,它可以帮助我们了解系统的运行状态,找出并解决性能问题。以下是一些常用的Linux性能瓶颈分析工具:perf简介:perf是一个强大的Linux性能分析工具,它能够进行函数级和指令级的热点查
Linux主机性能瓶颈分析工具
2024-09-27

Linux系统下如何使用主机性能分析工具nmon

这篇文章主要讲解了“Linux系统下如何使用主机性能分析工具nmon”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux系统下如何使用主机性能分析工具nmon”吧!nmon是收集AIX或
2023-06-12

pg 性能分析

postgresql 库中出现性能问题,对于复杂的sql, 常用分析过程: 简化SQL,定位性能异常点: 简化输出。像下面语句,可以先把输出的子查询去掉。有时也可以使用count(*)代替输出。 逐个测试union(minus),with子句。基于这些
pg 性能分析
2015-06-27

如何分析BlueHost主机和GoDaddy主机

如何分析BlueHost主机和GoDaddy主机,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  Bluehost和GoDaddy虚拟主机都是很大牌的品牌商,都拥有自己的特有优
2023-06-04

MySQL性能分析(Explain)

更多知识,请移步我的小破站:http://hellofriend.top1. 概述使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。通过Explain,我们可以获取以下
MySQL性能分析(Explain)
2021-11-05

Python性能优化分析

本篇内容介绍了“Python性能优化分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!python为什么性能差:当我们提到一门编程语言的效率
2023-06-17

WCF性能举例分析

这篇文章主要介绍“WCF性能举例分析”,在日常操作中,相信很多人在WCF性能举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF性能举例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!WCF(W
2023-06-17

美国Linux主机性能评测

在美国的Linux主机性能评测中,通常会考虑以下几个方面:CPU性能:评估主机的处理器性能,包括核心数、频率、缓存大小等。内存性能:评估主机的内存大小、类型和速度,以及内存管理的效率。磁盘性能:评估主机的硬盘或固态硬盘(SSD)性能,包括读
美国Linux主机性能评测
2024-08-08

Linux主机与NFS性能调优

Linux主机与NFS性能调优是一个涉及多个方面的过程,包括硬件优化、软件配置调整以及网络参数设置等。以下是一些关键步骤和策略,可以帮助您提升NFS的性能。硬件优化选择高性能的I/O设备:使用支持高内部传输速率的硬盘,如SCSI硬盘,以及
Linux主机与NFS性能调优
2024-09-27

阿里云主机创建数据库的安全性分析

本文将探讨阿里云主机创建数据库的安全性问题,从多个角度分析其安全性,并提供相关实例和解决方案。阿里云作为中国领先的云计算服务提供商之一,其主机创建数据库功能备受用户关注。然而,在使用阿里云主机创建数据库时,用户可能会关心其安全性的问题。本文将从不同的方面进行分析,以帮助用户更好地理解阿里云主机创建数据库的安全性。
阿里云主机创建数据库的安全性分析
2024-01-19

PHP性能的宏观分析

本篇内容主要讲解“PHP性能的宏观分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP性能的宏观分析”吧!宏观层面,也就是对 PHP 语言本身的性能分析又分为三个方面:PHP 作为解释性语言
2023-06-17

Hibernate性能的示例分析

这篇文章将为大家详细讲解有关Hibernate性能的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Hibernate在解决性能问题方面做得非常好。有了它的缓存机制,使用第三方缓存和数据库连接池,就
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录