免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: liaoboda
打印 上一主题 下一主题

有关大量小文件传输的问题 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2007-10-16 19:49 |只看该作者
如果是海量数据的话,最好看看分布式文件系统例如 GFS。

论坛徽章:
0
52 [报告]
发表于 2007-10-16 19:53 |只看该作者
原帖由 liaoboda 于 2007-10-16 19:16 发表

我现在感觉问题很可能就在硬盘的随机性上边


这个随机性如何测试?我说的随机性不包括这种 cp -R 这样的递归操作,因为照道理上来看,它是很难实现并发的。

论坛徽章:
0
53 [报告]
发表于 2007-10-16 21:13 |只看该作者
原帖由 Chowroc 于 2007-10-16 19:49 发表
如果是海量数据的话,最好看看分布式文件系统例如 GFS。

试验过lustre GFS没测试过。不过听说这个对小文件不太好。我感觉我们会采用分步的,一部分对小文件的,一部分lustre。lustre对大文件真的非常快。如果上ib估计更不得了 呵呵

论坛徽章:
0
54 [报告]
发表于 2007-10-16 21:15 |只看该作者
原帖由 Chowroc 于 2007-10-16 19:53 发表


这个随机性如何测试?我说的随机性不包括这种 cp -R 这样的递归操作,因为照道理上来看,它是很难实现并发的。

具体不知道,你测试过没有?应为网络瓶颈基本排除,文件系统也基本能排除了,还有就是I/O 这个可能性也比较小 我测试过本机的sata sas scsi 都一样(就是在本机copy) raid试验过 1 0 5都差不多,就剩下硬盘的随机性了

论坛徽章:
0
55 [报告]
发表于 2007-10-17 09:53 |只看该作者
你能统计一下每秒钟处理多少个包.我说的不是网卡的流量,而是中断够用不

论坛徽章:
0
56 [报告]
发表于 2007-10-17 10:01 |只看该作者
原帖由 风流涕淌 于 2007-10-17 09:53 发表
你能统计一下每秒钟处理多少个包.我说的不是网卡的流量,而是中断够用不

用什么工具?谢谢

论坛徽章:
0
57 [报告]
发表于 2007-10-17 10:06 |只看该作者
俺在linux下iptraf 这个命令,不知道你的机器里有没有

论坛徽章:
0
58 [报告]
发表于 2007-10-17 10:21 |只看该作者
首先我觉得 2M 应该不能算小文件。

再者,我个人觉得象 copy,尤其是递归操作,不能称之为随机操作,因为在没有得到 /var/www/html 之前,你无法得到 /var/www/html/index.php。但是象 inotify 就不同,如果 /var/www/html/index.php 发生变化,你会立即得到通知,因此你不用从头走一次,而可以直接去取文件(如果是目录创建、目录/文件删除和移动,则连这一步也没有了),而通常这些文件的内容可以从 cache 里面找到。

但如果是从头开始做一个递归操作就不同。比如你现在 /var/www/html/xxx/yyy/zzz/aaa/x23579.jpg 已经在 cache 里面了,但是你要从头 copy,你就要先找 /var/www/html/aaa/bbb/ccc/x00017.jpg,而你的数据又是海量的,这意味着你很可能要先把 x23579.jpg 从 cache memory 里面换出,才能去读 x00017.jpg 的数据;下一次你要再读 x23579.jpg 的时候,又要换回来,这中间就有一个震荡,而且有多次磁盘存取。

比如我不做镜像,而使用每天 tar 或 copy 的方式来备份,那么每天夜间,常常是要六七个小时大量的资源为备份占用(在服务器上大量的读操作),但使用镜像之后,因为接近于实时,则我实际上将资源的使用在时间上平均化了,每天不会再有这种读取高峰,一般的网络流量也就几十 K 上百 K 的样子,而且我事实上也增加了内存 cache 的命中率。

论坛徽章:
0
59 [报告]
发表于 2007-10-17 12:58 |只看该作者
原帖由 Chowroc 于 2007-10-17 10:21 发表
首先我觉得 2M 应该不能算小文件。

再者,我个人觉得象 copy,尤其是递归操作,不能称之为随机操作,因为在没有得到 /var/www/html 之前,你无法得到 /var/www/html/index.php。但是象 inotify 就不同,如果 ...

你说的是对网站而言每个之间是有关系的,对你可能有用,对我我不存在/var/www/html 我直接是/md0/***在每一个这个边有很多2M的文件。所以inotify就不行了。

论坛徽章:
0
60 [报告]
发表于 2007-10-17 13:19 |只看该作者
原帖由 liaoboda 于 2007-10-17 12:58 发表

你说的是对网站而言每个之间是有关系的,对你可能有用,对我我不存在/var/www/html 我直接是/md0/***在每一个这个边有很多2M的文件。所以inotify就不行了。


不会呀,这应该还是一样的呀。就比如说 /md0/*** 吧,它应该是这样的吧:
/md0/x00001.jpg
/md0/x00002.jpg
/md0/x00003.jpg
......
/md0/x53294.jpg
/md0/x53295.jpg
......
那你在 cp -R /md0/ 的时候,也还是要从 x00001.jpg 开始往下走吧。当然,你文件命名可能不是这样的,但无论如何,/md0/ 这个目录对于它下面的文件排列总归是有个顺序的,而这个顺序对于 copy 这样的操作是无法改变的。

而且我觉得最重要的还是资源利用在时间分布上的平均化这一点更为有意义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP