热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

磁盘iolinux,linux查看磁盘IO

1、top命令观察cpu信息10:06:09up17:346usersloadaverage:18.02,17.53,14.23表示当前时间系统运行时间格式为时:分分

1、top命令观察cpu信息

a1e499a51428d971a6c274c35b8c12eb.png

10:06:09

up 17:34

6 users

load average: 18.02,17.53,14.23

表示当前时间

系统运行时间 格式为时:分

分别是1分钟、5分钟、15分钟的负载情况

load average: 如果这个数除以逻辑cpu的数量,结果高于5的时候就表明系统在超负荷运转了。

Tasks: 548 total

1 running

547sleeping

0 stopped

0 zombie

进程总数

正在运行的进程数

睡眠的进程数

停止的进程数

僵尸进程数

15.2 us

用户空间占用cpu百分比

5.2 sy

内核空间占用cpu百分比

0.0 ni

用户进程空间内改变过优先级的进程占用cpu百分比

78.0 id

id 空闲cpu百分比

1.6 wa

等待输入输出的cpu时间百分比    wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。

0.0 hi

硬中断(Hardware IRQ)占用cpu的百分比

0.0 si

软中断(Software Interrupts)占用cpu的百分比

0.0 st

52827945+total

56582748 free

42740140+used

44295304 buff/cache

物理内存总量(512G)

空闲内存总量(50G)

使用中的内存总量

用作内核缓存的内存量

单位是KB

999420 total

799620 free,

199800 used

56961920 avail Mem

交换区总量

空闲交换区总量

使用的交换区总量

代表可用于进程下一次分配的物理内存数量

2、vmstat命令

vmstat 命令报告关于线程、虚拟内存、磁盘、陷阱和 cpu 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

461ba2944044fd641bce0f675b712b49.png

如果发现等待的进程和处在非中断睡眠状态的进程数非常多,并且发送到块设备的块数和从块设备接收到的块数非常大,那就说明磁盘io比较多。

vmstat参数解释:

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

Procs

r: 等待运行的进程数(就是说多少个进程真的分配到cpu),我测试的服务器目前cpu比较空闲,没什么程序在跑,当这个值超过了cpu数目,就会出现cpu瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的cpu很繁忙,一般会造成cpu使用率很高。

b: 处在非中断睡眠状态的进程数,表示阻塞的进程

w: 被交换出去的可运行的进程数

Memory

单位:KB

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

free: 空闲的内存,单位KB

buff: 被用来做为缓存的内存数,单位:KB

cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

Swap

单位:KB/秒

si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。

so 从内存交换到磁盘的交换页数量, 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上

IO

单位:块/秒

bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒

bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

System

in 每秒cpu的中断次数,包括时间中断

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

us 用户cpu时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

sy 系统cpu时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id  空闲 cpu时间,一般来说,id + us + sy = 100,一般我认为id是空闲cpu使用率,us是用户cpu使用率,sy是系统cpu使用率。

wt 等待IO cpu时间。

3、iostat命令

Centos的安装方式是:yum install sysstat

Ubuntu的安装方式是: aptitude install sysstat

iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出cpu使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析

使用:iostat显示所有设备的负载情况

ef3d73de50e306208d173fcebd0f82b5.png

%user:cpu处在用户模式下的时间百分比。

%nice:cpu处在带NICE值的用户模式下的时间百分比。

%system:cpu处在系统模式下的时间百分比。

%iowait:cpu等待输入输出完成时间的百分比。    如果%iowait的值过高,表示硬盘存在I/O瓶颈

%steal:管理程序维护另一个虚拟处理器时,虚拟cpu的无意识等待时间百分比。

%idle:cpu空闲时间百分比。  如果%idle值高,表示cpu较空闲,,如果%idle值高但系统响应慢时,可能是cpu等待分配内存,应加大内存容量。 如果%idle值持续低于10,表明cpu处理能力相对较低,系统中最需要解决的资源是cpu

tps:该设备每秒的传输次数

kB_read/s:每秒从设备(drive expressed)读取的数据量;

kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;

kB_read:  读取的总数据量;

kB_wrtn:写入的总数量数据量;

使用: iostat -dx 显示磁盘扩展信息

ab04a66c047cbc81a40999fff792b00d.png

r/s 和 w/s 分别是每秒的读操作和写操作,而rKB/s 和wKB/s 列以每秒千字节为单位显示了读和写的数据量。如果这两对数据值都很高的话说明磁盘io操作是很频繁。

定时显示所有信息:    iostat 2  3    # 【每隔2秒刷新显示,且显示3次】

显示指定磁盘信息:    iostat -d/dev/sda

显示tty和cpu信息:   iostat -t

以M为单位显示所有信息:  iostat -m

查看cpu状态:    iostat -c 1 1

查看设备使用率(%util)、响应时间(await):   iostat -d -x -k 1 1  #【-d 显示磁盘使用情况,-x 显示详细信息】

d0a880db5883a3223b2e1e99fcd8d613.png

rrqm/s:  每秒进行 merge 的读操作数目.即 delta(rmerge)/s

wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/s

%util: 一秒中有百分之多少的时间用于 I/O;;;如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷

idle小于70% IO压力就较大了,一般读取速度有较多的wait。

以上各列的含义如下:

选项

说明

rrqm/s

每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并

wrqm/s

每秒对该设备的写请求被合并次数

r/s

每秒完成的读次数

w/s

每秒完成的写次数

rkB/s

每秒读数据量(kB为单位)

wkB/s

每秒写数据量(kB为单位)

avgrq-sz

平均每次IO操作的数据量(扇区数为单位)

avgqu-sz

平均等待处理的IO请求队列长度

await

平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)

svctm

平均每次IO请求的处理时间(毫秒为单位)

%util

采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

总结

以上是编程之家为你收集整理的linux查看磁盘IO全部内容,希望文章能够帮你解决linux查看磁盘IO所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。



推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • Python中sys模块的功能及用法详解
    本文详细介绍了Python中sys模块的功能及用法,包括对解释器参数和功能的访问、命令行参数列表、字节顺序指示符、编译模块名称等。同时还介绍了sys模块中的新功能和call_tracing函数的用法。推荐学习《Python教程》以深入了解。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
author-avatar
linxiuying261
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有