linux下ssd电子盘速度检测
代码:
#include<stdio.h>
#include<sys/time.h>
#include <fcntl.h>
#include <pthread.h>
unsigned char pbuffer[1024*1024*8];//共用缓冲
void testssd1(int *ch )//写测试
{
int i=0;
int fd;
if(*ch==0)
fd = open("/ssd1/test.dat", O_RDWR|O_CREAT);
if(*ch==1)
fd = open("/ssd2/test.dat", O_RDWR|O_CREAT);
if(*ch==2)
fd = open("/ssd3/test.dat", O_RDWR|O_CREAT);
if(*ch==3)
fd = open("/ssd4/test.dat", O_RDWR|O_CREAT);
if(*ch==4)
fd = open("/ssd5/test.dat", O_RDWR|O_CREAT);
if(*ch==5)
fd = open("/ssd6/test.dat", O_RDWR|O_CREAT);
if(*ch==6)
fd = open("/ssd7/test.dat", O_RDWR|O_CREAT);
if(*ch==7)
fd = open("/ssd8/test.dat", O_RDWR|O_CREAT);
if(fd<0)
{
printf("%d open error!\n",*ch);
return ;
}
for(i=0;i<32;i++)
write(fd,pbuffer,1024*1024*8);//每次8M,共计256MB
close(fd);
printf("SSD%d test over!\n",*ch);
return ;
}
void testssd2(int *ch )//读测试
{
int i=0;
int fd;
if(*ch==0)
fd = open("/ssd1/test.dat", O_RDWR|O_CREAT);
if(*ch==1)
fd = open("/ssd2/test.dat", O_RDWR|O_CREAT);
if(*ch==2)
fd = open("/ssd3/test.dat", O_RDWR|O_CREAT);
if(*ch==3)
fd = open("/ssd4/test.dat", O_RDWR|O_CREAT);
if(*ch==4)
fd = open("/ssd5/test.dat", O_RDWR|O_CREAT);
if(*ch==5)
fd = open("/ssd6/test.dat", O_RDWR|O_CREAT);
if(*ch==6)
fd = open("/ssd7/test.dat", O_RDWR|O_CREAT);
if(*ch==7)
fd = open("/ssd8/test.dat", O_RDWR|O_CREAT);
if(fd<0)
{
printf("%d open error!\n",*ch);
return ;
}
for(i=0;i<32;i++)
read(fd,pbuffer,1024*1024*8);
close(fd);
printf("SSD%d test over!\n",*ch);
return ;
}
int main()
{
printf("this is SSD Speed test begin!\n\n");
pthread_t _id[8];
int ret,i,ch[8];
struct timeval start;
struct timeval end;
float speed;
for(i=0;i<1024*1024*8;i++)//初始化缓冲区
pbuffer[i] = i&0xff;
gettimeofday(&start,NULL);//开始计时------------
for(i=0;i<8;i++)
{
ch[i] = i;//启动8个线程
ret=pthread_create(_id+i,NULL,(void *)testssd1,ch+i);
if(ret!=0)
{
printf("Create pthread error!\n");
return -1;
}
}
pthread_join(_id[0],NULL); //等待各自到线程结束
pthread_join(_id[1],NULL);
pthread_join(_id[2],NULL);
pthread_join(_id[3],NULL);
pthread_join(_id[4],NULL);
pthread_join(_id[5],NULL);
pthread_join(_id[6],NULL);
pthread_join(_id[7],NULL);
gettimeofday(&end, NULL);//停止计时-------------
speed = 1.0*(end.tv_sec-start.tv_sec)+(end.tv_usec-start.tv_usec)/1000000.0;//时间
printf("ssd write speed:%6.5fMB/S(%6.5fsec)\n",256.0*8/speed,speed); //速度
printf("this is SSD Speed test over!\n\n");
return 0;
}
写测试运行结果:
# ./test
# gcc ssd_test.c -o test -lpthread
# ./test
SSD Speed test begin!
SSD4 test over!
SSD0 test over!
SSD6 test over!
SSD1 test over!
SSD5 test over!
SSD7 test over!
SSD2 test over!
SSD3 test over!
ssd write speed:1563.73594MB/S(1.30968sec)
SSD Speed test over!
读测试运行结果:
# ./test
SSD Speed test begin!
SSD1 test over!
SSD7 test over!
SSD3 test over!
SSD2 test over!
SSD4 test over!
SSD5 test over!
SSD6 test over!
SSD0 test over!
ssd read speed:2315.16042MB/S(0.34623sec)
SSD Speed test over!
linux下ssd电子盘速度检测的更多相关文章
- 实现Linux下的U盘(USB Mass Storage)驱动
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...
- 如何实现Linux下的U盘(USB Mass Storage)驱动
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...
- linux下挂载U盘
转:http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html linux下挂载U盘 一.Linux挂载U盘: 1.插入u盘到计算机, ...
- linux下开发板网络速度测试记录
由于做的项目对于网络和USB的读写速度有很高的要求,因此新拿回来的板子要测试网络和usb的最佳传输速度.要考虑不少因素,先把我能想到的记录下来. 测试的环境是开发板和ubuntu虚拟机 ...
- LINUX下的U盘挂载
linux下如果没有图形界面的情况下就要我们自己熟悉命令来挂载U盘,下面给大家详细描述下U盘的挂载过程. 1. 插入U盘 2. #sudo fdisk –l 查看所挂载盘符名称如下图,假设盘符名称为s ...
- 怎样在linux下对U盘进行格式化和分区
说明,为了不做无用功,首先必须卸载要分区的设备,分区才能执行成功.通过命令umount /media/?? 或者umount /mnt/??? 看你的实际情况,这一步必不可少.1.首先通过命令fdis ...
- Linux下C程序内存泄露检测
在linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在lin ...
- linux下简单限制网卡速度
Linux下限制网卡的带宽,可用来模拟服务器带宽耗尽,从而测试服务器在此时的访问效果. 1.安装iproute yum -y install iproute 2.限制eth0网卡的带宽为50kbit: ...
- Linux下的二进制兼容性的检测
都知道Linux的二进制兼容与windows相比简直是天差地别,windows的二进制兼容做得特别好,很老的游戏都能在windows 10上跑,写的好的程序,在XP上也不是不可以.但是Linux就不一 ...
随机推荐
- hadoop初学
Hadoop: 官网(hadoop.apache.org)的定义: 一:Hadoop Common: 为Hadoop其它模块提供通用的支持 二:HDFS: 是Hadoop的分布式文件系统,其特点是高度 ...
- BZOJ 2754: [SCOI2012]喵星球上的点名 [后缀数组+暴力]
2754: [SCOI2012]喵星球上的点名 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1906 Solved: 839[Submit][St ...
- pyhton:图像旋转
最近一个作业中要用到图像旋转,分享一下学习过程.如有讲错的地方,恳请指正! 图像旋转,想想真简单啊,不就是将图像矩阵乘上一个旋转平移矩阵就完了吗?实际上还真没这么简单.首先这个旋转平移矩阵怎么获得?通 ...
- Redis安装和基础介绍
一:初识Redis Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型.Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到 ...
- php复习整理1--位运算符
前言 子曰:"温故而知新,可以为师矣." php复习整理系列即是对已掌握的知识的温习,对久不使用的知识点进行重新学习,从而对php基础知识的掌握更加牢固.当然因为是重新温习, ...
- PLECS_直流电机基本系统模型
1.模型图 2.模型仿真结果 (1)Step阶跃t=1s,R=20Ω,V_dc = 120V,那么此时 电源电压波形: 电机电枢电流波形: 电机电磁转矩: 电机转速波形: (2)其他参数不变将R=30 ...
- js收藏代码
js收藏代码~ 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncon ...
- STAThread 和 MTAThread
STAThread:single threaded apartment 直译过来是:单线程单元套间 MTAThread:multiple threaded apartment 直译过来是:多线程单元套 ...
- bzoj 2120 带修改莫队
2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MBSubmit: 7340 Solved: 2982[Submit][Status][Discuss] ...
- node.js简单搭建服务,访问本地站点文件
1.安装nodejs服务(从官网下载安装),node相当于apache服务器 2.在自己定义的目录下新建服务器文件如 server.js 例如,我在D:\nodeJs下创建了server.js文件 v ...