ext4 dosya listesi çok yavaş içeren belirli bir dizinde çok yavaş


17

Arka fon

Küçük bir logrotate misshap'im vardı ... Logrotate, arşivlenmiş günlükleri misstake ile döndürür ve dosyamda ikinci dereceden bir büyümeye neden olur /var/log/. Ve rüzgarı yakaladığım zaman, bir şeylerin kötü olduğunu, /var/log/zaten birkaç milyon dosya içerdiğini ...

(Bazı hairloss ve find / sed / grep magic'den sonra) tüm rahatsız edici dosyaları kaldırmayı ve logrotate config'imi düzeltmeyi başardım. Ve her şeyin iyi olduğunu düşündüm ...

Sorun

Her ne zaman I ls/ du -hsveya başka bir şekilde listelediğimde /var/log/(şimdi 80mb arşiv / günlük ve en fazla birkaç yüz dosya içerir) bu işlemi iyi bir iki dakika boyunca askıya alır. Bunun bir şekilde logrotate misshap ile ilgili olduğuna inanıyorum ama emin değilim, başka bir şey olabilir. Her neyse, hata ayıklamaya veya bunun için bir düzeltme aramaya nerede kayboldum. Lütfen yardım edin: 3

Diğer bilgiler

uname -a
Linux xxx 3.3.8-gentoo #18 SMP Sat Sep 21 22:44:40 CEST 2013 x86_64 Intel(R) 
Core(TM)2 CPU 4400 @ 2.00GHz GenuineIntel GNU/Linux

cat /proc/meminfo 
MemTotal:        2051552 kB
MemFree:           75612 kB
Buffers:            9016 kB
Cached:          1740608 kB
SwapCached:            0 kB

CFQ IO scheduler + SLUB allocator 

Bunu düşündüm: Bir dizindeki kaç dosya çok fazla? (Net veri indirme) ilgili ama artık dosyaları kalmadı.

Düzenle

Bir çağrıdan sonra bile sorun devam ediyor, init 1 bu yüzden FS'den başka suçlanacak bir süreç olmadığını varsaymanın güvenli olduğunu düşünüyorum.

Çözüm (kabul edilen cevaptan uygulandığı şekliyle)

init 1
mv /var/log /var/log1
mkdir /var/log
chmod --reference=/var/log1 /var/log
chown --reference=/var/log1 /var/log
tar -C /var/log1 -cvp . | tar -C /var/log -xvp
rm -rf /var/log1
init 5

Yanıtlar:


26

Dizinlerin boyutu küçülür, küçülür. Tüm bu dosyaları geçici bir dizine (log2 gibi) taşımaya çalışın, ardından eski dizini rmdir ve geçici dosyayı yeni kalıcı olarak yeniden adlandırın.


Bunu sadece senin cevapladığın gibi yaptım. İşe yaradı :) Ne yazık ki, seni oylamak için yeterli itibarım yok: /
Emily L.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.