磁盘文件读性能测试

简介: .pdf   未缓存前: time ./x bin.tar  file size is 816322560 816322560 bytes read now real    0m3.

img_e25d4fb2f8de1caf41a735ec53088516.png.pdf
 

未缓存前:

time ./x bin.tar 

file size is 816322560

816322560 bytes read now

real    0m3.378s

user    0m0.000s

sys     0m0.996s

 

被缓存后:

time ./x bin.tar 

file size is 816322560

816322560 bytes read now

real    0m0.770s

user    0m0.000s

sys     0m0.768s

 

硬盘读取性能:

hdparm -t /dev/sdb 

/dev/sdb:

 Timing buffered disk reads: 2454 MB in  3.00 seconds = 817.84 MB/sec

 

10块物理磁盘,做了Raid10,因此读性能高,达每秒817.84MB

 

测试程序:

// 非优化方式编译:g++ -g -o x x.cpp

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

 

// 带一个参数,为被读取文件的大小

int main(int argc, char* argv[])

{

        int fd = open(argv[1], O_RDONLY);

        if (-1 == fd)

        {

                perror(strerror(errno));

                exit(1);

        }

 

        struct stat st;

        if (0 == fstat(fd, &st))

        {

                // 输出文件大小,单位为字节

                printf("file size is %d\n", st.st_size);

 

                // 一次性将整个文件读到内存中

                char* bytes = new char[st.st_size];

                int bytes_read = read(fd, bytes, st.st_size);

 

                // 显示实际成功读取的字节数

                printf("%d bytes read now\n", bytes_read);

                delete []bytes;

        }

 

        close(fd);

        return 0;

}

 

清缓存:

使用free命令观察下列操作的变化,以root用户执行:先执行下sync命令,以将数据更新到磁盘,再执行echo 3 > /proc/sys/vm/drop_caches,以清除系统的cached

 

文件内存的缓存会反应出free命令输出的cached值的变化,实际就是Page cache,文件内容的读取会缓存在这里。如果读取一个大文件,可以看到cached的值明显增涨,并且增涨大小差不多就是文件的大小,buffers相当于cached的元信息,比如文件的inode

 

cached影响文件的读取性能,而buffers影响到文件的打开性能。

 

drop_caches使用汇总:

echo 0 > /proc/sys/vm/drop_caches

不做释放

echo 1 > /proc/sys/vm/drop_caches

释放Page Cache

echo 2 > /proc/sys/vm/drop_caches

释放Dentries/inodes Cache(其中,Dentry是目录信息,inode是文件信息)

echo 3 > /proc/sys/vm/drop_caches

释放PageDentries/inodes Cache

 

这个特性由2.6.16内核开始提供,参考资料:

1) /proc/sys/vm/drop_caches

http://linux-mm.org/Drop_Caches

2) Linux Buffer vs Cache explained

http://random-techbits.blogspot.com/2012/06/linux-buffer-vs-cache-explained.html

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
6天前
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
43 7
|
6天前
|
存储 缓存 算法
基于FPGA的图像双边滤波实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像双边滤波实现,包括tb测试文件和MATLAB辅助验证
|
6天前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
6天前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
50 2
|
6天前
|
算法 异构计算
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
17 0
omni_usdt钱包文件keypoolsize是否持续为100个地址测试
omni_usdt钱包文件keypoolsize是否持续为100个地址测试
|
6天前
|
算法 计算机视觉 异构计算
基于肤色模型的人脸识别FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于肤色检测算法的摘要:使用MATLAB 2022a和Vivado 2019.2进行测试和仿真,涉及图像预处理、RGB到YCbCr转换、肤色模型(基于阈值或概率)以及人脸检测。核心程序展示了如何读取图像数据并输入到FPGA处理,通过`tops`模块进行中值滤波、颜色空间转换及人脸检测,最终结果输出到"face.txt"。
|
6天前
|
算法 异构计算
基于直方图的图像曝光量分析FPGA实现,包含tb测试文件和MATLAB辅助验证
该内容包括了算法的运行效果展示、软件版本信息、理论概述和核心程序代码。在正常图像中,`checkb`位于`f192b`和`f250b`之间,而多度曝光图像中`checkb`超出此范围,判断为曝光过度。使用的软件为Vivado 2019.2和MATLAB 2022a。理论依据未详细给出,但提及主要方法。提供的Verilog代码段用于处理图像数据,包括读取文件、时钟控制及图像histogram计算等,其中模块`im_hist`似乎是关键部分。
|
6天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到"result.txt"以供MATLAB显示图像分割效果。
|
6天前
|
弹性计算 运维 Shell
测试文件是否存在
【4月更文挑战第29天】
10 1

热门文章

最新文章