Kemarin, saya telah menghapus 71 GB file di server rumah / media saya.
Ruang Kosong sebelum: 117 GB
Ruang kosong setelah: 126 GB
Jadi, alih-alih memiliki 71 GB ruang kosong tambahan, saya hanya punya 9 GB. Saya telah memeriksa ulang bahwa tidak ada file yang terbuka dan saya benar-benar telah menghapus 71 GB dan ruang kosong benar-benar meningkat hanya 9 GB.
Saya juga mencoba menyinkronkan, tetapi tidak ada efek.
Ini bukan pertama kalinya itu terjadi. Memang, saya telah melihat perilaku ini sejak bertahun-tahun. Pertama di ext3, sekarang di ext4.
Ketika ini terjadi, saya bisa mendapatkan kembali ruang kosong dengan melepas dan kemudian menginstal ulang sistem file. Dalam kasus ini, unmount membutuhkan waktu hingga 2 menit, bukannya hampir tanpa waktu.
Saat ini, saya tidak dapat dengan mudah melepas dan memasang kembali sistem file, karena sibuk secara permanen dari perangkat lunak perekam video saya, server owncloud untuk keluarga saya, dan beberapa layanan lainnya yang belum saya miliki sejauh ini. Dan saya tidak ingin bangun jam 3 malam hanya untuk melepas dan memasang kembali.
Tidak, utilitas 'at' tidak akan berfungsi karena salah satu layanan melakukan tugas yang berjalan lama yang tidak dapat dilanjutkan dan dengan demikian memerlukan pemeriksaan status manual untuk menemukan momen yang baik ketika dapat ditutup, yaitu tugas baru saja selesai.
Tapi pagi ini, saya perhatikan bahwa ruang telah dibebaskan semalam. Tampak bagi saya seolah-olah ada semacam pembersihan, dan ini mungkin hal yang sama yang membutuhkan waktu tambahan saat melepas.
Sejauh ini, saya hanya memperhatikan perilaku ini ketika menghapus sejumlah besar data. Di sisi lain, saya tidak yakin apakah itu terjadi secara teratur dan perbedaannya terlalu kecil untuk diperhatikan.
Sistem file dibuat dengan 0% dicadangkan untuk root ( mkfs -m 0
). Menurut fsck -f
(Saya melakukan ini selalu antara unmount dan remount), sistem file tidak rusak, dan menurut tes diagnostik diperpanjang SMART, perangkat keras juga OK.
[EDIT]
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name: bigdata
Last mounted on: /bigdata
Filesystem UUID: 6aebd17a-e064-41dc-9c68-c9a3acbe4f66
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 121413632
Block count: 485645568
Reserved block count: 0
Free blocks: 29081276
Free inodes: 121382378
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 908
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Tue Dec 25 23:42:35 2012
Last mount time: Fri Jan 3 17:37:36 2014
Last write time: Fri Jan 3 17:37:36 2014
Mount count: 37
Maximum mount count: -1
Last checked: Thu Apr 18 17:03:40 2013
Check interval: 0 (<none>)
Lifetime writes: 14 TB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: be2b977e-5127-4843-9123-fe33b6d7b573
Journal backup: inode blocks
[/ EDIT]
Jadi, inilah 2 pertanyaan saya:
- Apa yang terjadi disini? Mengapa ruang dibebaskan di umount atau dengan penundaan alih-alih segera dihapus?
- Apakah ada sesuatu yang bisa saya lakukan untuk memicu membebaskan ruang saat ini tanpa melepas dan memasang kembali?
lsof | grep -i deleted
biasanya merupakan cara terbaik untuk memeriksanya.Jawaban:
Ada dua faktor yang mungkin berinteraksi.
Tidak seperti Windows Anda dapat menghapus file yang terbuka. Jika Anda menghapus film yang sedang diputar, itu akan dihapus dari direktori, tetapi akan tetap ada sebagai file hingga program streaming menutupnya. Setelah perangkat lunak streaming menutupnya, ruang akan dirilis. The
fuser -m
perintah dapat digunakan untuk menemukan id proses dari setiap proses dengan file yang terbuka. Beberapa program mungkin tidak segera menutup file ketika selesai dengan mereka.Ini adalah sistem file yang dijurnal. Perubahan ditulis ke jurnal dan kemudian dilakukan. Butuh beberapa saat untuk melakukan perubahan. Sistem operasi akan sering menyimpan perubahan disk dan hanya melakukan perubahan pada disk secara berkala. Menjalankan
sync
perintah harus menghapus setiap perubahan yang tertunda ke disk. Memasang disk dengansync
opsi akan meningkatkan kecepatan ke disk, tetapi bekerja dengan lebih keras.sumber