Discussione:
numero massimo file per directory
(troppo vecchio per rispondere)
motion musso aka: sathia
2006-10-09 11:17:21 UTC
Permalink
ciao, sto facendo un robot che scarica delle immagini da diversi siti
internet, attualmente una directory ha 9368 file, mi chiedevo dato che
siamo circa al 10% del lavoro se esiste un limite nel filesystem o se
aumenta organicamente la dimensione degli inode.

ah, si tratta di ext3


grazie

Sat_
--
una volta qui era tutto <table>
mallin shetland
2006-10-09 12:32:03 UTC
Permalink
... esiste un limite nel filesystem...
Si', esiste un limite, anzi ne esistono
diversi.
In pratica pero` li puoi ignorare tranquillamente;
le directory non prevedono limitazioni sul numero
massimo di file mentre la dimensione massima di una
directory e` dell'ordine dei Terabyte o Petabyte
(dipende dal filesystem)
... se aumenta
organicamente la dimensione degli inode.
No, la dimensione degli i-node e` fissa ed e`
piuttosto piccola (credo per ext3 sia 128 byte).
Quello che succede in caso di riempimento
dipende dal filesystem; per esempio ext3 alloca
blocchi indiretti, doppiamente indiretti e
triplamente indiretti.

PS questa domanda era da icoli
motion musso aka: sathia
2006-10-09 12:32:16 UTC
Permalink
Post by mallin shetland
... esiste un limite nel filesystem...
Si', esiste un limite, anzi ne esistono
diversi.
In pratica pero` li puoi ignorare tranquillamente;
le directory non prevedono limitazioni sul numero
massimo di file mentre la dimensione massima di una
directory e` dell'ordine dei Terabyte o Petabyte
(dipende dal filesystem)
ora mi è chiaro
Post by mallin shetland
... se aumenta
organicamente la dimensione degli inode.
No, la dimensione degli i-node e` fissa ed e`
piuttosto piccola (credo per ext3 sia 128 byte).
Quello che succede in caso di riempimento
dipende dal filesystem; per esempio ext3 alloca
blocchi indiretti, doppiamente indiretti e
triplamente indiretti.
grazie mille.
Post by mallin shetland
PS questa domanda era da icoli
ops. grazie lo stesso per aver risposto.

ciao
Ipc2
2006-10-09 12:30:24 UTC
Permalink
Post by motion musso aka: sathia
ciao, sto facendo un robot che scarica delle immagini da diversi siti
internet, attualmente una directory ha 9368 file, mi chiedevo dato che
siamo circa al 10% del lavoro se esiste un limite nel filesystem o se
aumenta organicamente la dimensione degli inode.
ah, si tratta di ext3
grazie
Sat_
Circa 10^6 senza problemi di performances. Il limite assoluto e' 130x10^15.
motion musso aka: sathia
2006-10-09 12:32:49 UTC
Permalink
Post by Ipc2
Circa 10^6 senza problemi di performances. Il limite assoluto e' 130x10^15.
direi che sono contento allora.

grazie
Enrico "Henryx" Bianchi
2006-10-09 22:29:45 UTC
Permalink
Post by Ipc2
Circa 10^6 senza problemi di performances
Considerando che per ogni file system ext3 che ho avuto, la sola directory
/usr/bin e` abbastanza per provocare rallentamenti alla scansione della
directory[1], direi che la tua affermazione e` abbastanza forte...

Enrico
[1] ATTENZIONE: il rallentamento vi e` solo E SOLTANTO per la directory
incriminata, e solo E SOLTANTO se viene richiesta una scansione completa
di tale directory (e.g. l'accesso diretto ad un file non crea problemi)
Ipc2
2006-10-09 23:51:50 UTC
Permalink
Post by Enrico "Henryx" Bianchi
Post by Ipc2
Circa 10^6 senza problemi di performances
Considerando che per ogni file system ext3 che ho avuto, la sola directory
/usr/bin e` abbastanza per provocare rallentamenti
ls -l | wc -l
3730

Capita solo a te, che posso farci?
Kronos
2006-10-10 14:19:02 UTC
Permalink
Post by Enrico "Henryx" Bianchi
Post by Ipc2
Circa 10^6 senza problemi di performances
Considerando che per ogni file system ext3 che ho avuto, la sola directory
/usr/bin e` abbastanza per provocare rallentamenti alla scansione della
directory[1], direi che la tua affermazione e` abbastanza forte...
dir_index

Luca
--
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani
Kronos
2006-10-10 14:19:48 UTC
Permalink
Post by Enrico "Henryx" Bianchi
Post by Ipc2
Circa 10^6 senza problemi di performances
Considerando che per ogni file system ext3 che ho avuto, la sola directory
/usr/bin e` abbastanza per provocare rallentamenti alla scansione della
directory[1], direi che la tua affermazione e` abbastanza forte...
tune2fs(8), dir_index.

Luca
--
Sono un mirabile incrocio tra Tarzan e Giacomo Leopardi.
In me convivono tutte le doti intelluttuali di Tarzan e
tutta la prestanza fisica di Giacomo Leopardi.
A. Borsani
Diesis
2006-10-10 11:12:44 UTC
Permalink
Post by Ipc2
Circa 10^6 senza problemi di performances. Il limite assoluto e' 130x10^15.
Grazie Sig. Spock
:D
--
Diesis
Ipc2
2006-10-10 12:23:50 UTC
Permalink
Post by Diesis
Post by Ipc2
Circa 10^6 senza problemi di performances. Il limite assoluto e' 130x10^15.
Grazie Sig. Spock
Bones, non si faccia prendere dall'emozione che offusca il ragionamento.
Vide
2006-10-09 14:06:14 UTC
Permalink
Post by motion musso aka: sathia
ciao, sto facendo un robot che scarica delle immagini da diversi siti
internet, attualmente una directory ha 9368 file, mi chiedevo dato che
siamo circa al 10% del lavoro se esiste un limite nel filesystem o se
aumenta organicamente la dimensione degli inode.
Più che altro occhio al limite dell'espansione di *, se dovrai averci a che
fare a livello di scripting.
--
Vide
motion musso aka: sathia
2006-10-09 15:36:14 UTC
Permalink
Post by Vide
Più che altro occhio al limite dell'espansione di *, se dovrai averci a
che fare a livello di scripting.
sì, ho già notato che mi dice "argument list too long" per ora non mi dà
particolari problemi, i riferimenti stanno anche in un database, alla
peggio seleziono da là.

grazie, ciao


Sat-
Ipc2
2006-10-09 17:03:21 UTC
Permalink
Post by motion musso aka: sathia
Post by Vide
Più che altro occhio al limite dell'espansione di *, se dovrai averci a
che fare a livello di scripting.
sì, ho già notato che mi dice "argument list too long"
usa xargs per quei lavori li'.
motion musso aka: sathia
2006-10-09 18:40:03 UTC
Permalink
Post by Ipc2
Post by motion musso aka: sathia
Post by Vide
Più che altro occhio al limite dell'espansione di *, se dovrai averci a
che fare a livello di scripting.
sì, ho già notato che mi dice "argument list too long"
usa xargs per quei lavori li'.
sì certo, per ora non mi serve, ma in caso userò senz'altro xargs

ciao
raktzo
2006-10-10 13:32:47 UTC
Permalink
Le limitazioni sono molto "larghe".
In genere non è una buona idea avere una dir con milioni di file, diventa
molto lento ogni operazione fatta sulla dir, dal semplice list(ls)
all'inserimento di un nuovo file(il S.O. deve sapere se esiste o no)
all'apertura del file(sia in R che in W), in pratica ogni operazione che
vada a cercare l'inode associato al file

Software che gestiscono grosse quantità di file fanno uso di una gerarchia
di directory che va a velocizzare(lavorando su piccoli set) le operazioni
sulla directory

Bye,
Raktzo
Alessandro Pellizzari
2006-10-10 16:14:36 UTC
Permalink
Post by motion musso aka: sathia
ciao, sto facendo un robot che scarica delle immagini da diversi siti
internet, attualmente una directory ha 9368 file, mi chiedevo dato che
siamo circa al 10% del lavoro se esiste un limite nel filesystem o se
aumenta organicamente la dimensione degli inode.
Occhio che viene creato un numero di "inode possibili" dipendente dalle
dimensioni del disco. Al momento della formattazione ci sono parametri
apposta per decidere il numero di inode disponibili (newsse hai
tantissimi file piccoli, largefile se ne hai pochi e grossi, ecc.).

Con solo 100.000 file non dovresti avere problemi, comunque.

Bye.
motion musso aka: sathia
2006-10-10 16:34:34 UTC
Permalink
Post by Alessandro Pellizzari
Post by motion musso aka: sathia
ciao, sto facendo un robot che scarica delle immagini da diversi siti
internet, attualmente una directory ha 9368 file, mi chiedevo dato che
siamo circa al 10% del lavoro se esiste un limite nel filesystem o se
aumenta organicamente la dimensione degli inode.
Occhio che viene creato un numero di "inode possibili" dipendente dalle
dimensioni del disco. Al momento della formattazione ci sono parametri
apposta per decidere il numero di inode disponibili (newsse hai
tantissimi file piccoli, largefile se ne hai pochi e grossi, ecc.).
Con solo 100.000 file non dovresti avere problemi, comunque.
Grazie mille, ora non ricordo la dimensione degli inode che ho dato quando
ho installato slackware (credo quella di default)

quando mi avvicinerò a cifre più significative farò un po' di directory mi
sa. grazie ancora

Sat_
Ipc2
2006-10-10 17:28:44 UTC
Permalink
Post by Alessandro Pellizzari
Post by motion musso aka: sathia
ciao, sto facendo un robot che scarica delle immagini da diversi siti
internet, attualmente una directory ha 9368 file, mi chiedevo dato che
siamo circa al 10% del lavoro se esiste un limite nel filesystem o se
aumenta organicamente la dimensione degli inode.
Occhio che viene creato un numero di "inode possibili" dipendente dalle
dimensioni del disco. Al momento della formattazione ci sono parametri
apposta per decidere il numero di inode disponibili (newsse hai
tantissimi file piccoli, largefile se ne hai pochi e grossi, ecc.).
Con solo 100.000 file non dovresti avere problemi, comunque.
Precisamente:
se V e' il volume in bytes, il numero di inode e'
min{V/2^13, #blocchi}

Il numero minimo di inodes e' V/2^23.
mallin shetland
2006-10-10 18:29:24 UTC
Permalink
Post by Alessandro Pellizzari
...
Occhio che viene creato un numero di "inode possibili"
dipendente dalle dimensioni del disco...
Quindi in teoria il numero massimo di file
_in_tutto_il_disco_ e` pari al numero di i-node.
Solo uno dei tanti limiti di un filesystem.

Ma in pratica cio` che limita il numero di
file _e'_sempre_ lo spazio sul disco ossia il
numero di blocchi.
Ed ecco un altro limite ;)

Loading...