## [重读分区表][6]
## 磁盘类型判定 SSD HDD
~~~
SSD是非转动磁盘, Linux可以通过读 sysfs:
cat /sys/block/sda/queue/rotational
返回 0, 就是 SSD。
$ lsblk -d -o name,rota
NAME ROTA
sda 0
~~~
# 性能测试
## dd 简单测试磁盘
~~~
dd if=/dev/zero of=testf bs=1M count=512 oflag=direct
# 清除cache
echo 3 > /proc/sys/vm/drop_caches
~~~
## hdparm
### 安装
```
# centos
yum install -y hdparm
```
### 常用参数
~~~
hdparm -t /dev/sdb 测试实际磁盘性能
hdparm -T /dev/sdb 内存缓存的读写速度
hdparm -I /dev/sdb 查看信息
~~~
## [fio][2]
[参考博客][4]
[云盘性能测试][7]
### 安装
~~~
yum install -y fio
~~~
### 常用参数
## bonnie++
~~~
yum install bonnie++
# 进行4G文件测试
bonnie++ -u root
~~~
```
fio -filename=/nfsdata/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync \
-bs=512k -size=512m -numjobs=8 -runtime=60 -group_reporting -name=mytest
说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
```
## [iozone][3]
针对文件系统的性能测试的。和常用的IO性能测试工具sysbench, fio, iometer不同, 它主要是通过`模拟用户访问文件模式`的不同,典型的如下面的几种:
~~~
(0=write/rewrite, 1=read/re-read, 2=random-read/write
3=Read-backwards, 4=Re-write-record, 5=stride-read, 6=fwrite/re-fwrite
7=fread/Re-fread, 8=random_mix, 9=pwrite/Re-pwrite, 10=pread/Re-pread
11=pwritev/Re-pwritev, 12=preadv/Re-preadv)
~~~
~~~
/opt/iozone/bin/iozone -l 4 -u 4 -r 512k -s 512m
~~~
来达到隔离访问文件系统的meta信息和data信息的不同的开销, 从而反应文件系统的性能。
* [文件系统性能测试:使用iozone](https://www.cnblogs.com/yunnotes/archive/2013/04/19/3032487.html)
### 安装
~~~
apt-get install iozone3
yum install iozone -y
~~~
~~~
/opt/iozone/bin/iozone -i 0 -i 1 -s 512m -r 512k -I -p -t 16
-a auto mode产生文件大小16K-512M,记录大小4K-16M的输出结果;
-e 计算时间时算上fflush,fsync的时间;
-f 指定临时测试文件;
-s 指定测试文件大小;
-r 指定测试记录大小;
-g –n 指定auto模式下,最大/小测试文件大小;
-q –y 指定auto模式下,最大/小测试记录大小;
-i 指定特定的测试操作:
-I 指定direct io操作;
-p 清除cpu cache影响;
-O 输出IOPS值;
-R 生成excel报告文件;
-W 读写之前锁定文件;
~~~
> /opt/iozone/bin/iozone -a 自动模式
# 状态监控
## [iostat][1]
### 安装
~~~
yum install -y sysstat
~~~
### 用法
~~~
-x 参数,输出更多详细信息
~~~
~~~
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;
wsec/:每秒写入的扇区数。
r/s:The number of read requests that were issued to the device per second;
w/s:The number of write requests that were issued to the device per second;
await:每一个IO请求的处理的平均时间(单位是毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。
~~~
### 实例
~~~
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10
~~~
## [iotop][5]
## 相关博客
* [linux系统读写缓存](https://www.cnblogs.com/zengkefu/p/5759335.html)
[1]:http://www.cnblogs.com/muahao/p/6438409.html
[2]:http://freshmeat.sourceforge.net/projects/fio/
[3]:http://www.iozone.org/
[4]:http://elf8848.iteye.com/blog/2168876
[5]:http://guichaz.free.fr/iotop/
[6]:http://blog.chinaunix.net/uid-25906175-id-3251710.html
[7]:https://www.cnblogs.com/yuhaohao/p/9770701.html
- 目录
- 离散的内容
- IO模型
- 网卡绑定
- ssh
- 硬件测试
- 硬件
- limits
- 网络流量
- 硬盘IO
- 硬盘
- tmux
- 主机名和域名
- http_proxy
- iptables
- 内核参数
- 块设备和字符设备
- 内存
- 虚拟内存并非交换分区
- 网络延时
- 概念
- 多核压缩
- linux基础
- SSH协议
- 软件管理
- yum
- 制作本地源 yum系列
- 制作本地源 apt系列
- apt
- 在 Linux 中移除从源代码安装的程序的一种简单的方法
- 其他
- 源码编译和二进制安装后更改配置
- DNS
- bind
- 守护进程
- 特殊权限
- limit.conf配置
- 网络
- shell-ok
- 变量ok
- 数组ok
- 系统变量和环境变量
- 运算符和计算-ok
- 条件测试-ok
- 选择-ok
- shell循环-ok
- 输出echo和printf-ok
- 技巧-ok
- pre-web
- http协议
- web服务器
- Apache
- apache安装
- yum安装
- 二进制安装
- 编译安装
- httpd命令
- 运行 监控apache
- apache配置文件
- 常用配置
- MPM多处理模块
- 编译模块
- apache模块
- apache核心模块
- apache标准模块
- apache第三方模块
- 虚拟主机
- 1
- CGI-FastCGI-SSI
- 别名和重定向
- apache应用
- 301重定向
- apache防盗链
- http转化为https
- 访问时间段控制
- 控制访问目录
- 限制指定USER_AGENT
- 不同客户端访问不同网页
- apache黑名单
- httpd之禁止解析php
- 不记录css/js/img的访问日志
- 浏览器端静态缓存
- apache访问日志自动切割
- order-require
- 压缩传输
- httpd-ssl
- apache代理
- 正向代理
- 反向代理
- apache调优
- httpd压力测试工具ab
- CGI测试
- php
- php原理
- httpd和php的结合方式
- php yum安装之DSO模式
- php 编译安装之DSO模式
- php-fpm详解
- php yum安装之php-fpm模式
- php 编译安装之FastCGI模式
- php扩展之mysql
- php扩展之gd
- php扩展之pcntl
- php扩展之xcache
- php扩展之ZendGuardLoader
- phpMyAdmin
- wordpress
- 数据库-mysql
- 数据库原理
- mysql数据库原理
- mysql源码编译安装
- mysql二进制包安装
- mysql命令行工具
- 更改密码
- 数据库授权grant
- mysql日志
- 命令
- 常用
- 小命令大作为
- awk 报告生成器
- 网络命令
- 命令查找
- 压缩归档命令
- 文件管理
- 文件管理命令
- 文件查看命令
- 目录管理命令
- 用户管理命令
- 用户权限管理
- curl
- cheat
- chrony
- command
- crontab任务计划
- cut
- date
- dd
- df
- echo
- find
- grep
- hash
- iftop
- kill pkill killall
- ls
- lsmod和modprobe
- lsof
- man
- mkpasswd
- mount
- mtr
- netstat
- nmap
- nc
- NTP
- passwd
- rm
- rdate
- pv
- sar系统活动情况报告
- sed文本处理命令
- setup
- screen
- shutdown
- sort 命令
- sudo
- tcpdump
- top
- uniq
- wget
- who
- xargs
- 监控
- zabbix邮件报警
- Redis
- redis安装
- redis数据类型和操作方法
- redis持久化和配置
- redis主从配置
- php连接redis
- redis实现session共享
- 安装测试
- redis设置密码
- ELK日志分析系统
- elasticsearch
- logstash
- logstash插件
- filebeat日志收集
- kibana
- jenkins
- jenkins安装与配置
- 案例1
- 案例2
- 案例3
- 代码仓库之svn
- svn服务端配置
- 常用操作
- svn备份
- LB集群
- LVS负载均衡集群
- ipvsadm使用方法
- LVS调度方法
- NAT原理
- NAT实践
- DR原理
- DR实践
- TUN原理
- LVS持久连接
- HA集群
- HPC集群
- 共享存储
- ftp协议
- vsftpd
- NFS
- 网站架构发展
- 文件同步
- rsync基本用法
- rsync安装和使用_拉取模式
- lsyncd安装和用法
- zabbix
- zabbix服务端安装
- zabbix客户端安装
- zabbix编译安装
- zabbix监控tomcat
- zabbix监控mysql
- gitlab
- supervisor
- nsq
- ruby
- nodejs
- consul
- mesos
- zookeeper
- rwho
- 对象存储
- 工具
- rclone
- minio
- linux 性能调优
- CPU
- 第一部分 CPU
- 安全