linux IO诊断命令集

IO.sh

##iostat是查看磁盘活动统计情况

##显示全部设备负载情况 r/s: 每秒完毕的读 I/O 设备次数。即 rio/s;w/s: 每秒完毕的写 I/O 设备次数。即 wio/s等
iostat

##每隔2秒刷新磁盘IO信息,而且每次显示3次
iostat 2 3

#显示某个磁盘的IO信息
iostat -d sda1

##显示tty和cpu信息
iostat -t

##以M为单位显示磁盘IO信息
iostat -m

##查看TPS和吞吐量信息 kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数量数据量;
iostat -d -k 1 1

#查看设备使用率(%util)、响应时间(await)
iostat -d -x -k 1 1

#查看CPU状态
iostat -c 1 3

#统计进程(pid)的stat,进程的stat自然包含进程的IO状况
pidstat

#仅仅显示IO
pidstat -d 1

#-d IO 信息,-r 缺页及内存信息-u CPU使用率-t 以线程为统计单位1 1秒统计一次
pidstat -u -r -d -t 1

#文件级IO分析,查看当前文件由哪些进程打开
lsof
ls /proc/pid/fd

#利用 sar 报告磁盘 I/O 信息DEV 正在监视的块设备 tps 每秒钟物理设备的 I/O 传输总量 rd_sec/s 每秒从设备读取的扇区数量 wr_sec/s 每秒向设备写入的扇区数量 avgrq-sz I/O 请求的平均扇区数
#avgqu-sz I/O 请求的平均队列长度 await I/O 请求的平均等待时间,单位为毫秒 svctm I/O 请求的平均服务时间,单位为毫秒 %util I/O 请求所占用的时间的百分比,即设备利用率
sar -pd 10 3

#iotop top的io版
iotop

#查看页面缓存信息 当中的Cached 指用于pagecache的内存大小(diskcache-SwapCache)。随着写入缓存页,Dirty 的值会添加 一旦開始把缓存页写入硬盘,Writeback的值会添加直到写入结束。
cat /proc/meminfo

#查看有多少个pdflush进程 Linux 用pdflush进程把数据从缓存页写入硬盘
#pdflush的行为受/proc/sys/vm中的參数的控制/proc/sys/vm/dirty_writeback_centisecs (default 500): 1/100秒, 多长时间唤醒pdflush将缓存页数据写入硬盘。默认5秒唤醒2个(很多其它个)线程。假设wrteback的时间长于dirty_writeback_centisecs的时间,可能会出问题
cat /proc/sys/vm/nr_pdflush_threads

#查看I/O 调度器
#调度算法
#noop anticipatory deadline [cfq]
#deadline : deadline 算法保证对既定的IO请求以最小的延迟时间。
#anticipatory: 有个IO发生后,假设又有进程请求IO,则产生一个默认6ms推測时间,推測下一个进程请求IO是干什么。这对于随机读取会造成较大的延时。对数据库应用非常糟糕,而对于Web Server等则会表现不错。
#cfq: 对每个进程维护一个IO队列,各个进程发来的IO请求会被cfq以轮循方式处理,对每个IO请求都是公平。适合离散读的应用。
#noop: 对全部IO请求都用FIFO队列形式处理。默认IO不会存在性能问题。
cat /sys/block/[disk]/queue/scheduler

#改变IO调度器
$ echo deadline > /sys/block/sdX/queue/scheduler
#提高调度器请求队列的
$ echo 4096 > /sys/block/sdX/queue/nr_requests

来自自己的github  https://github.com/zhwj184/shell-work/blob/master/IO.sh

linux IO诊断命令集,布布扣,bubuko.com

时间: 2024-10-10 10:08:28

linux IO诊断命令集的相关文章

linux 下 apt命令集详解

apt命令用法 packagename指代为软件包的名称 apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之後运行该命令.此外您需要定期运行这一命令以确保您的软件包列表是最新的. apt-get install packagename 安装一个新软件包(参见下文的aptitude) apt-get remove packagename 卸载一个已安装的软件包(保留配置文档) 卸载一个已安装的软件包(删除配置文档) apt-g

Linux 性能诊断命令

一.OSWatcher的性能查看命令 OSWatcher ifconfig iostat cat /proc/meminfo mpstat ps -ef | ps aux slabtop | cat /proc/slabinfo top vmstat 原文地址:http://blog.51cto.com/395469372/2073486

Linux中IO监控命令的使用分析

一篇不错的有关linux io监控命令的介绍和使用. 1.系统级IO监控 iostat iostat -xdm 1    # 个人习惯 %util         代表磁盘繁忙程度.100% 表示磁盘繁忙, 0%表示磁盘空闲.但是注意,磁盘繁忙不代表磁盘(带宽)利用率高 argrq-sz    提交给驱动层的IO请求大小,一般不小于4K,不大于max(readahead_kb, max_sectors_kb) 可用于判断当前的IO模式,一般情况下,尤其是磁盘繁忙时, 越大代表顺序,越小代表随机

linux 性能诊断工具命令集

#查看当前系统load uptime #查看系统状态和每个进程的系统资源使用状况 top #可视化显示CPU的使用状况 htop #查看每个CPU的负载信息 mpstat -P ALL 1 #每隔1秒查看磁盘IO的统计信息 iostat -xkdz 1 #每隔一秒查看虚拟内存的使用信息 vmstat 1 #查看内存使用统计信息 free #查看网络使用信息 nicstat -z 1 #类似vmstat的显示优化的工具 dstat 1 #查看系统活动状态,比如系统分页统计,块设备IO统计等 sar

linux后端诊断与调试技术

本文不是liunx命令使用教程,也不打算全方面阐明其用法,互联网公司项目很多,服务程序之间相互依赖调用很复杂,各种因素会影响线程服务正常运行,特别是基础服务组件更是如此,当出现各种问题时,如何诊断linux下哪个环节出现问题或状况.从linux系统层面看,通过各种操作命令和手段快速定位线上程序的症状和要害很有必要.比如说:当线上服务长时间正常运行,张三某天突然监控到自己的程序出问题了,自己负责某个程序不提供服务或服务处于挂死(进程还在,但无法接收外部响应)状态,查看应用程序日志没发现明显错误或可

Linux系统常用命令权威指南

<一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f 只显示命令的功能,而不显示详细的说明文件,跟whatis命令相同-w 不显示手册内容,只显示将被格式化和显示的文件所在位置2.help help [选项] [命令] 查看Linux内置命令的帮助. help cd -d 显示命令简短主题描述 -s 显示命令简短语法描述 <二>文件和目录操作命令(

图解linux下top命令的使用

top命令经常用来监控linux的系统状况,比如cpu.内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解. 本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序. top进入视图 top视图 01 [top视图 01]是刚进入top的基本视图,我们来结合这个视图讲解各个数据的含义. 第一行:10:01:23 当前系统时间126 days, 14:29 系统

Linux 项目实用命令

总结一下Linux下常用的命令 nc nc命令,这是Linux一般都带有的,被誉为“瑞士军刀”.windows和Linux都有,可以下载安装对应的平台工具.使用UDP和TCP协议的网络连接去读写数据,是一个稳定的后门工具.同时它也是一个功能强大的网络调试和嗅探工具. 使用格式: nc [-options] hostname port[s] [ports] ... 连接到某个地方 nc -l -p port [options] [hostname] [port] 绑定端口等待连接 参数有下: -e

Linux 面试题 合集

1.查找文件后缀是log的三天前的文件删除和三天内没修改过的文件 find / -name ".log" -mtime +3 -exec rm fr {} ; find /log ! -mtime -3 2.写一个脚本将目录下大于100kb的文件移动到/tmp下 fimd / -size +100k -exec mv {} /tmp ; 3.将数据库备份并打包传递到远程服务器192.168.1.1的/backup目录下 mysqldump -u root -p database >