[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux_var] PATCH KERNEL LINUX



On Thu, Apr 07, 2011 at 09:13:35AM +0200, Giovanni Orlandi wrote:

> La riflessione "filosofica" è che senza dubbio c'è un problema di
> scalabilità nella gestione delle directory in Linux,
> (credo comune a tutti i S.O.) ed in particolare quando si supera le
> dimensioni di un set di gruppi di blocchi.

Dipende dai punti di vista. Il problema e' che se per rendere piu'
performante un caso particolare (milioni di file in una sola directory)
diventa piu' lento il resto c'e' il rischio che questo tipo di modifica
venga rifiutata (mia riflessione personale, beninteso, ma e' plausibile che
succeda).

> Un'altra riflessione riguarda la possibilità di avere un controllo sul
> contenuto dei dischi quando questi sono
> di dimensioni notevoli, il famigerato "du veloce" che ritengo sia un
> problema sentito da sempre.

Su questo fronte ci sono novita' anche sul fronte kernel. Pare che con il
kernel 2.6.38, e' stato migliorato la parte di VFS e pare che per esempio i
find, siano piu' veloci. Sperabilmente e' stata velocizzata anche la "du".

Seconda considerazione, per le dentry (voci all'interno della directory) e
per gli inode, esiste una cache dedicata. Forse da qualche parte e'
possibile configurare la dimensione di questa cache in modo di essere
ragionevolmente sicuri, che queste voci siano tutte nella cache.

Ho provato a fare una ricerca, ma al momento ho trovato solo questo
settaggio:

vfs_cache_pressure 

Controls the tendency of the kernel to reclaim the memory
which is used for caching of directory and inode objects. At the default
value of vfs_cache_pressure=100 the kernel will attempt to reclaim dentries
and inodes at a fair rate with respect to pagecache and swapcache reclaim.
Decreasing vfs_cache_pressure causes the kernel to prefer to retain dentry
and inode caches. When vfs_cache_pressure=0, the kernel will never reclaim
dentries and inodes due to memory pressure and this can easily lead to
out-of-memory conditions. Increasing vfs_cache_pressure beyond 100 causes
the kernel to prefer to reclaim dentries and inodes


Probabilmente riducendo il valore di questo parametro puoi fare in modo che
la cache dei dentries e inodes venga liberata meno spesso in caso linux
abbia bisogno di piu' ram. Credo che ti servano valori molto bassi di
vfs_cache_pressure, tipo 10 o forse meno. 

> Credo sia "fondamentale" cercare di capire "perché" il du è immensamente
> lento.
> Dipende dal fatto che le informazioni necessarie sono sparse in molte zone
> del disco, e che col du classico
> vengono ripetutamente lette, facendo spostare le testine un po quà ed un po
> là.
> Finché il sistema ha abbastanza Ram da tenere in cache una buona parte delle
> informazioni necessarie
> si riesce ad avere risultati accettabili, ma con le partizioni di grandi
> dimensioni diventa veramente arduo.

Purtroppo credo che il punto sia questo. Il settaggio di sopra potrebbe
essere utile perche' gli dice di sacrificare piu' "facilmente" la pagecache,
contro la dentry e inode cache.

Saluti,
  Diego Roversi

-- 
Per cancellare l'iscrizione: <talking-unsubscribe at ml.linuxvar.it>
Archivi web e configurazione: http://ml.linuxvar.it/ml/