先罗列一些工作中用得比较多的系统检测工具吧,top、ps、iostat、vmstat、free (-m)、tcpdump...

1.磁盘io相对于内存读写是巨慢无比的,数据库操作也是,所以在一些io密集的程序里面可以用内存映射、memcached来进行优化

2.就个人理解来描述一下磁盘访问

cpu访问文件数据时,先在cpu cache和memory查找,没找到就通知io子系统去磁盘加载(数据以内存内的形式加载,一个内存页一般是4kb)(MPF,major page fault)

如果在内存(写缓存buffer,读缓存cached)中可以找到就不用有磁盘操作了(MnPF,minor page fault)

后者速度快多了,所以在频繁的io操作后内存中有很多空间用于缓存磁盘数据,这时候如果看到free的空间不足并不表示机器真的内存不足,当有内存需求时内核会释放这些用于磁盘缓存的内存空间,下图中cached就是缓存所占的空间,内存实际剩余是free+buffers+cached = 117+10+508。但是如果Swap used很多就表示系统内存真的很紧张,使用交换分区的速度很慢,因为它是保存在磁盘上的。

www.linuxidc.com@linuxidc:~$ free -m

total       used       free     shared    buffers     cached

Mem:          1889       1771        117          0         10        508

-/+ buffers/cache:       1252        636

Swap:         4766        282       4484

3.内存页类型:

read page:只读,包括库文件之类的

dirty page(write page):写过需要同步到磁盘的数据,我想在fprintf之后紧接着调用fflush()之类的函数应该可以从这里写回磁盘

anonymous page:跟磁盘文件无关,归某些进程所有,内存不足时这些数据可能掉入Swap

4.计算IOPS(每秒响应的磁盘io次数):

假如磁盘的RPM是10000(RPM,Revolutions Per Minute,每分钟旋转圈数)

则,磁盘的RD(Rotational Delay,旋转半圈的毫秒数)是(1/(10000/(60*1000)))/2=3

加上磁头的DS(Disk Seek,磁头寻道的毫秒数)平均是3MS

加上2MS延迟

最终的IOPS是8ms,内核每次的io请求磁盘需要8ms来完成,就是10000RPM的磁盘每秒可以提供大约125次IOPS

根据

5.实际io情况要根据程序来考量,邮件服io数据小而请求频繁,属于Random IO,流媒体服务io数据大而请求频度低,属于Sequential IO

前者对iops要求比较高,后者对读写大量数据能力(KB per request, (rkB/s)/(r/s)或者(wkB/s)/(w/s))要求比较高

当用top或者iostat查看发现iowait比较高时说明有io瓶颈

www.linuxidc.com@linuxidc:~$ iostat -kdx 2

Linux 3.0.0-14-generic (HP)     2012年01月08日     _x86_64_    (4 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

sda               0.60     2.08    2.86    1.20    65.79    37.79    51.09     0.37   91.11   34.56  225.77  14.59   5.92

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

sda               0.00     0.00    2.00    0.00    64.00     0.00    64.00     0.02    9.00    9.00    0.00   5.00   1.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

sda               0.00     0.50    0.50    1.00     2.00     6.00    10.67     0.01    9.33    8.00   10.00   9.33   1.40

linux进程磁盘io监测,系统性能检测--磁盘io相关推荐

  1. Linux系列教程——1 Linux磁盘管理、2 Linux进程管理、3 Linux系统服务、 4 Linux计划任务

    文章目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...

  2. 【测试】linux FIO命令详解(一):磁盘IO测试工具 fio (并简要介绍iostat工具)

    目录 随看随用 FIO介绍 FIO 工具常用参数: fio工作参数可以写入配置文件 IO状态监控: Iostat介绍 与FIO相似的工具 fio测试脚本 提取iops和bw gunplot画图 Fio ...

  3. linux查看磁盘驱动类型,检测磁盘驱动的健康程度SMART

    在服务器中,所有组件中一般最容易坏掉的就是磁盘.所以一般采取RAID来保证系统的稳定性,通过冗余磁盘的方式防止磁盘故障. 现代硬件驱动器一般支持SMART(自我监测分析和报告技术),它能够监视整个硬盘 ...

  4. linux FIO命令详解(一):磁盘IO测试工具 fio (并简要介绍iostat工具)

    FIO介绍 FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证.磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类.FIO是一个可以产生很多线程或进程并执行 ...

  5. 操作系统性能监控-磁盘IO

    系统IO监控 iostat监控各个磁盘使用情况 rrqm/s:   每秒进行 merge 的读操作数目.即 delta(rmerge)/s wrqm/s:  每秒进行 merge 的写操作数目.即 d ...

  6. Linux 磁盘I/O读写速度检测

    生猛干货 从系统安装到程序员必备的Linux技能,还原真实工作场景,手把手带你实战演练 概述 读取速度可以使用命令:hdparm –t 设备名(/dev/sda1) 写入速度使用命令:time dd ...

  7. day28:检测磁盘io|自定义时段查看tomcat 日记|打印城市名字|代码上线|统计网站并发量...

    2019独角兽企业重金招聘Python工程师标准>>> 1.有一台阿里云的机器,接到反映说服务器的磁盘 io 很高,登录服务器查看,并没有发现问题,怀疑是间歇性的,看到造成磁盘 io ...

  8. linux查看硬盘smart_Linux检测磁盘坏道工具用什么命令

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. badblock命令简介 badblock命令用于查找磁盘中 ...

  9. 优缺点 快速扫描 硬盘监测_有了这6款mac硬盘检测工具 你就能够快速检测磁盘的状态和错误情况...

    在电脑硬件中,硬盘算是比较脆弱的硬件之一,但又是最重要的硬件之一,因其存储着电脑所有重要数据,因此需要定期检测,以免丢失数据,所以检测工具就得选比较可靠的,有了这6款mac硬盘检测工具,你就能够快速检 ...

最新文章

  1. 让你的 IDEA 好用到飞起来的配置
  2. 【08月14日】A股ROE最高排名
  3. 让DEM数据更有表现力
  4. python table_Python PrettyTable示例
  5. (28)XIlinx FPGA 原语简介(FPGA不积跬步101)
  6. namespace用法
  7. asp.net生成店铺推广二维码,二维码中间加logo(源码)
  8. HBase API 创建表
  9. 手动卸载 出错 无法卸载的 VC++ 运行库
  10. 初级计算机课,教学ppt课件计算机初级培训.ppt
  11. Android 应用是如何启动 binder 机制的?
  12. 天河二号计算机是微型计算机,计算机二级考试真题-PPT-天河二号超级计算机
  13. 数据结构与算法学习笔记——数据结构(四):单向环形链表(约瑟夫问题)
  14. python 实现 n 次方_python实现pow函数(求n次幂,求n次方)
  15. Game Plug-ins(1)
  16. python制作数据增长动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图...
  17. 安卓与苹果盒子与h5相互调用,js,vue
  18. 如何在鼠标右键加入自定义电源计划(如关闭睿频降温) For Win10
  19. TikZ绘制多样的花括号
  20. 液晶拼接处理器_液晶拼接大屏运用设施

热门文章

  1. Spring+MyBatis企业应用实战 - 笔记
  2. 寻优秀开源项目,百万程序员为你助力!
  3. 漫画 | 程序员联名把产品经理告上县衙,并列了8大罪状(下)
  4. 跨越鸿沟,IIoT 如何更融合与开放?
  5. 由浅入深,逐步了解 Java 并发编程中的 Synchronized!
  6. 用三年时间培养 1W 名高素质技术人才,这是一个什么样的计划?
  7. 面向自动驾驶行业,Imagination推出性能高达600 TOPS的多核AI加速器
  8. 什么是数字孪生?终于有人讲明白了
  9. 微信回应发原图泄露位置信息;华为员工索要离职补偿被起诉;Windows Terminal v0.7 发布 | 极客头条...
  10. 2025 年全球数据量高达175ZB,开发者如何挑战数据洪流?