sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #14103
Re: Max antal filer i et dir
On Wed, 6 Oct 1999, Hans Peter Palboel wrote:
> Jeg har prøvet at finde ud af om der er en øvre grænse for antallet af
> filer i et ext2 dir. Det er ikke meget dokumentation på ext2 jeg har
> kunnet finde. Er der nogen, som kender svaret?
Ikke så vidt jeg ved, kun begrænset af din diskstørrelse. Der er dog en
begrænsning på antal filer[1] der kan være på en disk. df -i siger:
Filesystem Inodes IUsed IFree %IUsed Mounted on
/dev/hdc4 2182592 142391 2040201 7% /
Ja, her kan der være 2 millioner flere filer/kataloger, og der er 5000
megabyte plads tilbage, så det er nok pladsen man løber tør for først.
Men, ext2 bruger en linær søgning for at finde filerne; altså når du
bruger om fil "foo" i et katalog starter den fra fil #1 i det kataloger,
kigger på navnet osv. indtil den når til "foo".
Det er OK indtil nogle tusinde filer i samme katalog; alle filnavne ligger
sammen så den skal ikke lede rundt på disken for at load indeholdet af et
katalogt. Men det kan godt påvirke hastigheden når der er mange filer.
Derfor benytter man typisk en hierarkisk opdeling af filer. Fx hvis du har
500 000 filer du skal tilgå kunne du oprette 25 kataloger og 25 kataloger
under hver af disse kataloger. I hver af disse 525 kataloger har du så
1000 filer. Du skal så bare have en algoritme hvorpå du sikrer dig at
filerne er nogenlunde lige fordelt mellem katalogerne. Du kan fx se på
proxy-serveren Squid der benytter denne metode.
Men ext2 er ellers hurtig. Ofte stille folk der kommer fra SystemV/Solaris
spørgsmålet: hvorfor er der ikke et tmpfs system på Linux. Svaret fra
filsystemsfolkene er at det at oprette filer på en ext2 partition er lige
så hurtigt.
Nyere filsystemer, som ext3 / XFS, vil fjerne denne linære katalogsøgning.
[1] Egentlig er det ikke filer men inoder, altså tæller 10 navne hvor af 9
af link til fil #1 som een inode.
--
==============================================================================
Erwin Andreasen Herlev, Denmark <erw@xxxxxx> UNIX System Programmer
<URL:http://www.andreasen.org> <*> Goodbye, Richard!
==============================================================================
Follow ups
References