Disk yavaş dolduruyor ancak görünür dosya boyutu değişikliği yok


16

df

 Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/vda1       30830588 22454332   6787120  77% /
none                   4        0         4   0% /sys/fs/cgroup
udev             1014124        4   1014120   1% /dev
tmpfs             204996      336    204660   1% /run
none                5120        0      5120   0% /run/lock
none             1024976        0   1024976   0% /run/shm
none              102400        0    102400   0% /run/user

Bu% 77 dün sadece% 60 idi ve birkaç gün içinde% 100'e kadar dolduracak.

Bir süredir filessizleri izliyorum:

sudo du -sch /*


9.6M    /bin
65M     /boot
224K    /build
4.0K    /dev
6.5M    /etc
111M    /home
0       /initrd.img
0       /initrd.img.old
483M    /lib
4.0K    /lib64
16K     /lost+found
8.0K    /media
4.0K    /mnt
4.0K    /opt
du: cannot access ‘/proc/21705/task/21705/fd/4’: No such file or directory
du: cannot access ‘/proc/21705/task/21705/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/21705/fd/4’: No such file or directory
du: cannot access ‘/proc/21705/fdinfo/4’: No such file or directory
0       /proc
21M     /root
336K    /run
12M     /sbin
8.0K    /srv
4.1G    /swapfile
0       /sys
4.0K    /tmp
1.1G    /usr
7.4G    /var
0       /vmlinuz
0       /vmlinuz.old
14G     total

Bana her gün aynı sayıları veriyor (az ya da çok). Toplam 14G, disk boyutunun yarısından daha az. Gerisi nereye gidiyor?

Linux bilgim çok daha derinlere inmiyor.

Dosyaların burada görünmemesi mümkün mü? Alanın başka bir şekilde tahsis edilmesi mümkün müdür?


1
7.4 G /var, olağandışı büyüklükte beni vuruyor. Bir günlük dosyasının hızla dolduğundan şüpheleniyorum.
Jos

4
Silinen dosyalar var mı? Ne lsof -b 2>/dev//null | grep deleted(çıktı oldukça büyük olabilir, yinelenen iyi görünen girişleri atın)
muru

@muru evet bir sürü dosya bu şekilde görünür. Bu ne demek? Neredeler? Nasıl temizlerim?
nizzle

2
Yeniden başlatma birçoğunu temizlemelidir. Bunlar, daha sonra silinen çeşitli işlemler tarafından açılan dosyalardır. Biraz sahip olmak normaldir, ancak bunlardan biri çok büyürse, onu kullanarak kolay bir şekilde tespit edemezdiniz du.
muru

1
Logrotate.conf ile neyin yanlış olduğunu içeren ikinci bir soru sormak isteyebileceğinizi unutmayın, çünkü apache, logration gerçekleştiğinde dosyaları kapatmak için yapılandırılmalıdır. meselesi periyodik olarak tekrarlanmalı ve her hafta yeniden başlatılması üzüntü yaratmaktadır. [Yineleniyorsa, hizmet httpd yeniden başlatılırsa (veya yeniden yüklenirse) sorunu geçici olarak hafifletip
gidermediğini

Yanıtlar:


28

Disk alanında görünmez bir büyüme varsa, olası bir suçlu dosyalar silinir. Windows'da, bir şey tarafından açılan bir dosyayı silmeye çalışırsanız bir hata alırsınız. Linux'ta dosya silinmiş olarak işaretlenir, ancak uygulama gidinceye kadar veriler korunur. Bazı durumlarda, bu durum kendinizden sonra temizlemenin düzgün bir yolu olarak kullanılabilir - uygulama çökmeleri geçici dosyaların temizlenmesini engellemez.

Silinmiş, hala kullanılan dosyalara bakmak için:

lsof -b 2>/dev/null | grep deleted

Çok sayıda silinmiş dosyanız olabilir - bu kendi başına bir sorun değildir. Silinen tek bir dosya büyüyorsa bir sorundur.

Yeniden başlatma bunu düzeltmelidir, ancak yeniden başlatmak istemiyorsanız, ilgili uygulamaları ( lsofçıktıdaki ilk sütun ) kontrol edin ve makul görünümlü uygulamaları yeniden başlatın veya kapatın.

Şöyle bir şey görürseniz:

zsh   1724   muru   txt   REG   8,17   771448   1591515  /usr/bin/zsh (deleted)

Uygulama ve silinen dosyalar aynı olduğunda, bu muhtemelen uygulamanın yükseltildiği anlamına gelir. Bunları büyük disk kullanımı kaynağı olarak yok sayabilirsiniz (ancak hata düzeltmelerinin geçerli olması için programı yeniden başlatmanız gerekir).

Dosyaları /dev/shmpaylaşılan bellek nesneleridir ve diskte fazla yer kaplamaz (en fazla bir inode numarası, sanırım). Ayrıca güvenle göz ardı edilebilir. Adlandırılmış vteXXXXXXdosyalar VTE tabanlı bir terminal öykünücüsünden (GNOME Terminal, Terminator vb.) Alınan günlük dosyalarıdır. Bunlar olabilir Birlikte bir terminal penceresini açık varsa, büyük olması birçok (ve ortalama sürü şeyler olmanın çıktı).


1
OP sisteminde, / dev'in tamamı bir udev bağlama noktasıdır, bu nedenle altındaki hiçbir şey ana dosya sisteminde herhangi bir yer kaplamaz. Dahası, / dev / shm normalde yine de sadece bir bağlama noktası olan bir tmpfs olarak uygulanır, bu nedenle altındaki tek tek dosyalar dizin giriş alanını bile kaplamaz.
Kevin

3

Muru'nun mükemmel cevabına eklemek için:

  • df diskteki boyutu gösterir,
  • ve du dosya içeriğinin toplam boyutunu gösterir.

Belki du ile görmediğiniz şey çok, çok sayıda küçük dosyanın df -iortaya çıkmasıdır ...

Örneğin, 1'000'000 (1 milyon) küçük 1 bayt dosyaya sahipseniz, dutoplamda 1'000'000 bayt olarak sayılır, diyelim ki 1Mb (... saflar, lütfen rahatsız etmeyin)

Ancak diskte her dosya 2 şeyden oluşur:

  • 1 inode (dosyanın verilerini gösterir) ve bu inode tek başına 16kb (!) Olabilir,
  • Ve her dosyanın verileri (= dosyanın içeriği) disk bloklarına konur ve bu bloklar birkaç dosya verisi içeremez (genellikle ...), bu nedenle 1 baytlık verileriniz en az 1 blok içerecektir

Böylece, bir milyon dosya 1 bayt dosyaları 1'000'000'000 * size_of_a_blockveri için toplam yer artı artı 1'000'000'000 * size_of_an_inodeinode boyutu ... Bu 1 milyon "1 bayt" dosyaları için birkaç Gb disk kullanımı anlamına gelebilir.

1024 baytlık bloklarınız ve 256 baytlık başka bir inode boyutunuz varsa, 1'000'000 dosyalarınız duyaklaşık 1 MB olarak rapor edilir , ancak diskte kabaca 1.25 Gb olarak sayılır (görüldüğü gibi df)! (veya her bir inode da 1 özel disk bloğunda olması gerekiyorsa 2Gb bile ... Durumun bu olup olmadığını bilmiyorum)


1
Bir dosyanın görünen boyutunu göstermesini söyleyen bir seçeneği ( -bveya --apparent-size) açıkça kullanmadığınız sürece , aslında her zaman dosyanın diskindeki boyutu gösterir (blok boyutu kullanılarak kullanılan toplam blok sayısı). Bu aslında dosyanın görünür boyutundan daha büyük (normal durum) veya daha küçük (seyrek dosyalar söz konusu olduğunda) olabilir. dudu
Jonathan Callen

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.