博必发线上开户 1

虹软人脸识别速度测试征集

场景是一张有10张脸的图片(下图),在包含1万张人脸的库(准备了100张人脸的特征文件,循环100次当做1万个样本)里面进行比对。想得出在不同cpu的情况下,多少线程数是最快的?要多少时间(包括:总体、图片转换、人脸检测、获取特征值、人脸比对的耗时)?主要瓶颈在哪里?

因为公司项目涉及到了从不同服务器拷贝大量小图片的工作,所以做了个测试来测拷贝小文件的性能。

我的程序分别测试1-10个线程的耗时,不同线程数量分别执行3遍取平均值,结论保存在ret.txt文件。

测试了76000个小文件,每个大小200K-300K左右,一共87250M

博必发线上开户 1 

两台都是linux centos7.5 内存140G ,cpu 为intel E5-2620,千兆网卡。

程序下载:
1.不带sdk的,2.4M
2.包含sdk的,23.4M

磁盘大小为500G,型号是Seagate Constellation ES的ST500nm0011

欢迎大家下载测试,并将结果接龙。

为排除系统缓存的影响,每次测试前,都执行

我的笔记本(Intel Core i3-6100U的cpu,4G内存)的结果:
TaskNumber:1,Total:23192,ImageConvert:0,Detect:37,Extract:1958,Match:21197
TaskNumber:2,Total:15987,ImageConvert:0,Detect:32,Extract:1310,Match:14645
TaskNumber:3,Total:11815,ImageConvert:0,Detect:34,Extract:1122,Match:10659
TaskNumber:4,Total:11558,ImageConvert:0,Detect:40,Extract:1075,Match:10443
TaskNumber:5,Total:11215,ImageConvert:0,Detect:35,Extract:985,Match:10195
TaskNumber:6,Total:11238,ImageConvert:0,Detect:43,Extract:1105,Match:10090
TaskNumber:7,Total:11083,ImageConvert:0,Detect:35,Extract:1075,Match:9973
TaskNumber:8,Total:10875,ImageConvert:0,Detect:44,Extract:1084,Match:9747
TaskNumber:9,Total:10947,ImageConvert:0,Detect:48,Extract:1126,Match:9773
TaskNumber:10,Total:11761,ImageConvert:0,Detect:31,Extract:1042,Match:10688

sync

腾讯云服务器(Intel Xeon E5-26xx 2.29GHz,8G内存)的结果:
TaskNumber:1,Total:25779,ImageConvert:0,Detect:35,Extract:1794,Match:23950
TaskNumber:2,Total:13207,ImageConvert:0,Detect:34,Extract:943,Match:12230
TaskNumber:3,Total:11748,ImageConvert:0,Detect:34,Extract:794,Match:10920
TaskNumber:4,Total:8760,ImageConvert:0,Detect:31,Extract:633,Match:8096
TaskNumber:5,Total:10352,ImageConvert:0,Detect:35,Extract:693,Match:9624
TaskNumber:6,Total:9789,ImageConvert:0,Detect:33,Extract:615,Match:9141
TaskNumber:7,Total:9128,ImageConvert:0,Detect:32,Extract:600,Match:8496
TaskNumber:8,Total:8121,ImageConvert:0,Detect:32,Extract:606,Match:7483
TaskNumber:9,Total:8877,ImageConvert:0,Detect:35,Extract:656,Match:8186
TaskNumber:10,Total:7928,ImageConvert:0,Detect:35,Extract:632,Match:7261

echo 3 > /proc/sys/vm/drop_caches

这两条命令清除缓存

不同的传递方式性能如下:

| 方式         | 耗时             | 平均速率     
|命令                                                            
                  |

————- :—————-:

| scp           | 00:59:38     |24.2M/S         |scp -r srcDir
destIp:destDir                                         |

| rsync        | 00:14:59      |96.9M/S        |rsync -aW -e ssh srcDir
destIp:destDir                      |

| tar             | 00:14:58     |96.9M/S        | ssh destIp `tar -xf

  • -C destDir`                                   |

有同事指出,先打包(由于是图片,再次压缩没有多大的意义,不压缩只打包,大小增大为91075M),再scp是不是会快一些。我也测试了一下这种方案的性能,数据如下:

| 过程         | 耗时               | 平均速率    |命令                
                                                            |

————- :——————:

| 打包          | 00:50:56       |                    |tar -cf
srcDir.tgz srcDir                                               |

| 传输(scp)  | 00:15:32       |97.1M/s     |scp srcDir.tgz
destIp:destDir                                     |

博必发线上开户,| 解包          | 00:28:04        |                  |tar -xf
destIp:destDir/destDir.tgz -C destIp:destDir  |

网上有很多资料都说ftp的方式很慢,多线程下载小文件的方式我没有(如果以后有时间,我会测的),但下载打包后的整个大文件我测了一下,性能如下:

| 传输(ftp)    | 00:13:54        |108.4M/s         |ftp get dstDir.tgz  
                                               |

结论:

1.linux系统跨网络拷贝小文件,打包后再传递的方式很不可取,因为要来回写磁盘,打包落盘的时间比传输长。

2.rsync和tar的方式都比较快,差距不大。scp的方式慢。

参考链接

https://serverfault.com/questions/18125/how-to-copy-a-large-number-of-files-quickly-between-two-servers