上周末两天以及这周末两天要准备上海应用技术大学的专升本考试,非常抱歉了,文章没有及时更新,希望大家一如既往的支持我,我也会发表更有价值的干货的。
1、测试磁盘的读取速度
[root@docker-01 ~]# yum -y install hdparm
[root@docker-01 ~]# hdparm -T -t /dev/vda
/dev/vda:
Timing cached reads: 18802MB in 1.99 seconds =9433.99 MB/sec
Timing buffered disk reads: 626MB in 3.01 seconds =208.24 MB/sec
#1.99秒中直接从内存的 cache读取数据的速度读 18802 MB。平均9433.99 MB/sec
#3.01秒中从硬盘缓存中读 626 MB。seconds = 208.24 MB/sec
注:参数:
-t perform device read timings #不使用预先的数据缓冲, 标示了Linux下没有任何文件系统开销时磁盘可以支持多快的连续数据读取.
-T perform cache read timings #直接从内存的 cache读取数据的速度。实际上显示出被测系统的处理器缓存和内存的吞吐量*.
2、测试磁盘的写入速度
在使用前首先了解两个特殊设备
/dev/null 伪设备,回收站.写该文件不会产生IO开销
/dev/zero 伪设备,会产生空字符流,读该文件不会产生IO开销
测试方法:
2.1测试磁盘的IO写速度
[root@docker-01 ~]# dd if=/dev/zero of=/test.dbf bs=8k count=3000
记录了3000+0的读入
记录了3000+0的写出
24576000字节(25 MB)已复制,0.0536083 秒,458 MB/秒
注:
可以看到,在0.0536083秒的时间里,生成25M的一个文件,IO写的速度约为458MB/sec;当然这个速度可以多测试几遍取一个平均值,符合概率统计.
2.2执行命令并计时
[root@docker-01 ~]# time dd if=/dev/zero of=/test.dbf bs=8k count=3000
记录了3000+0的读入
记录了3000+0的写出
24576000字节(25 MB)已复制,0.0283404 秒,867 MB/秒
real0m0.036s
user0m0.000s
sys0m0.036s
注:
1.实际时间(real time): 从command命令行开始执行到运行终止的消逝时间;
2.用户CPU时间(user CPU time): 命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;
3.系统CPU时间(system CPU time): 命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和。
其中,用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务。排队时间没有算在里面。
另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。