请教各位:linux下数百万个文件夹,处理提高存储速度?
我公司新建的网站是提供相册服务的,每个注册会员会有自己的一个文件夹,上传的所有图片均存储在该文件夹下。
如:我的会员帐号是test1,则会有一个文件夹:
usr/local/apache/htdocs/alumni/test1/
现在会员有四万多人,也就有了四万多个文件夹,除开程序及数据库等效率,发现文件夹和文件的速度越来越慢,包括在服务器端打开“alumni”文件夹后显示文件夹列表也相当慢,请问有什么办法提高文件夹物理存储速度吗?
------解决方案--------------------用raid0可以提高物理存储速度
------解决方案--------------------或者可以使用负载均衡的集群,像openmosix
------解决方案--------------------或者采用多层结构。
------解决方案--------------------或许你可以试试reiserfs 文件系统
ReiserFS基于快速平衡树(balanced tree)搜索,平衡树在性能上非常卓越,这是一种非常高效的算法。ReiserFS搜索大量文件时,搜索速度要比ext2快得多。
参考:
http://www.linuxforum.net/docnew/showthreaded.php?Cat=&Board=sys&Number=619&page=0&view=collapsed&sb=5&o=all&fpart=
------解决方案--------------------reiserfs不错
另外,需要自己对文件进行包裹, 例如把1000个文件放在一个文件中存储, 用的时候先读文件头,确认文件的位置,然后再根据长度和偏移量来读取返回.也就是自己在系统的FS上再实现一个超简单的FS,
------解决方案--------------------另外, 一个目录下最好不要超过300个文件,目录也属于文件
------解决方案--------------------还有就是用系统的文件索引功能提高文件的查询速度.