在Linux系统中使用md5sum校验数据一致性的耗时验证与分析

2017年Gdevops全球敏捷运维峰会-成都站(限时优惠),运维派作为本次峰会协办方,您可以点击这里了解详情

我们在Linux系统中校验文件一致性时,通常使用md5sum命令来生成文件的MD5码,下面先介绍下MD5:

MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。

因此可以通过md5sum来完成文件一致性的检查。

最近在一台8核CPU,24GB内存的SUSE LINUX服务器上为了校验一批压缩包文件的一致性,总结了一些经验跟大家分享:

1、通过多次校验不同大小的文件,发现md5sum生成校验码的时间是随文件增大而时间也随之增大的,平均值是每1GB耗时4~6秒;

2、当同时校验多个文件时,即使使用类似md5sum filename > filename.md5 &这样的命令,将其丢到系统后台执行,你会发现完成这批文件的md5sum校验的总时间=依次校验各个文件的md5sum耗时,其原因是:md5sum校验文件时,首先会完成的读取一遍文件,但系统硬件的IO能力是固定的,所以即使md5sum是并发,其总耗时也是不变的。

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

  1. 圣托马斯说道:

    意思是说,生成一个文件的MD5码就把服务器的IO占满了?

    • admin说道:

      是的,会尽可能的占用,类似于下载时抢占带宽。

      • jeasun说道:

        4-6s 读取1GB文件,读200MB/s,这么牛X???请问楼主是什么磁盘?

        • admin说道:

          普通的SATA硬盘读取是100MB/s,这个测试环境是使用的SAS硬盘,转速比SATA硬盘快,通常SAS硬盘的读取速度可以达到300MB/s,但由于还有校验码的生成,所以算起来的平均速度要比这个小一些。

Copyright © 2012-2017 YUNWEIPAI.COM - 运维派 - 粤ICP备14090526号-3
扫二维码
扫二维码
返回顶部