Mengapa pemeriksaan disk Ext4 jauh lebih cepat daripada NTFS?

11

Saya mempunyai situasi hari ini di mana saya me-restart komputer saya dan mengatakan saya perlu memeriksa disk untuk konsistensi. Sekitar 10 menit kemudian (pada "1%" selesai), saya menyerah dan memutuskan untuk membiarkannya berjalan ketika saya pulang.

Sebagai perbandingan, komputer di rumah saya menggunakan Ext4 untuk semua partisi, dan pemeriksaan disk (yang berjalan sekitar seminggu sekali) hanya perlu beberapa detik. Saya ingat membaca bahwa melakukan pemeriksaan disk cepat adalah prioritas, tetapi saya tidak tahu bagaimana mereka bisa melakukannya.

Jadi, bagaimana cara Ext4 memeriksa disk dengan sangat cepat? Apakah ada beberapa terobosan besar dalam melakukan ini setelah NTFS keluar (~ 10 tahun yang lalu)?

Catatan: Disk NTFS ~ 300 GB dan disk Ext4 ~ 500 GB. Keduanya sekitar setengah penuh.

Brendan Long
sumber
Saya belum memiliki Windows chkdsk volume NTFS saat boot sejak 2008 R2 dirilis. Bahkan dalam cluster CSV dengan beberapa node mengakses volume NTFS yang sama mengunci puluhan ribu file indeks Lucene. Cukup mengesankan.
Brain2000

Jawaban:

10

Ada dua alasan utama perbedaan kinerja, dan dua mungkin alasan Pertama, alasan utama:


Peningkatan Kinerja ext4 vs NTFS

Berbagai tolok ukur telah menyimpulkan bahwa sistem file ext4 yang sebenarnya dapat melakukan berbagai operasi baca-tulis lebih cepat dari partisi NTFS. Perhatikan bahwa meskipun tes ini tidak menunjukkan kinerja dunia nyata, kami dapat memperkirakan hasil ini dan menggunakannya sebagai salah satu alasan.

Adapun mengapa ext4 benar-benar berkinerja lebih baik maka NTFS dapat dikaitkan dengan berbagai alasan. Misalnya, ext4 mendukung alokasi tertunda secara langsung. Namun, sekali lagi, keuntungan kinerja sangat bergantung pada perangkat keras yang Anda gunakan (dan dapat sepenuhnya dinegasikan dalam kasus tertentu).

Persyaratan Pemeriksaan Sistem File yang Dikurangi

Sistem file ext4 juga mampu melakukan pemeriksaan sistem file yang lebih cepat dari sistem file penjurnalan yang setara lainnya (mis. NTFS). Menurut halaman Wikipedia:

Di ext4, grup blok yang tidak terisi dan bagian dari tabel inode ditandai seperti itu. Ini memungkinkan e2fsck untuk melompati mereka sepenuhnya pada pemeriksaan dan sangat mengurangi waktu yang diperlukan untuk memeriksa sistem file ukuran ext4 yang dibangun untuk mendukung. Fitur ini diimplementasikan dalam versi 2.6.24 dari kernel Linux.


Dan sekarang, keduanya mungkin alasan:


Utilitas Pengecekan Sistem File Sendiri

Aplikasi tertentu dapat menjalankan rutinitas berbeda pada sistem file untuk benar-benar melakukan "pemeriksaan" kesehatan. Ini dapat dengan mudah dilihat jika Anda menggunakan fsck utilitas yang diatur pada Linux versus chkdsk utilitas pada Windows. Aplikasi ini ditulis pada sistem operasi yang berbeda untuk sistem file yang berbeda. Alasan saya membawa ini sebagai mungkin alasannya adalah panggilan sistem tingkat rendah di setiap sistem operasi berbeda, sehingga Anda mungkin tidak dapat langsung membandingkan utilitas menggunakan dua sistem operasi yang berbeda.

Disk Fragmentasi

Yang ini mudah dimengerti, dan juga membantu kita untuk memahami perbedaan antara sistem file. Meskipun semua data digital yang disimpan dalam file adalah sama, bagaimana itu disimpan di hard drive sangat berbeda dari filesystem ke filesystem. Fragmentasi file jelas dapat meningkatkan kecepatan akses, lebih disebabkan oleh perbedaan kecepatan.

Breakthrough
sumber
1
Yang membingungkan saya adalah bahwa poin kedua Anda pada awalnya sepertinya akan memiliki efek terbesar, tetapi partisi Ext4 saya memiliki ruang sebanyak yang digunakan oleh total partisi NTFS saya - bukannya jauh lebih cepat, mereka harus dengan kecepatan yang sama. Saya kira kemungkinan bahwa peningkatan kinerja Ext4 membuatnya lebih cepat untuk memeriksa juga, tetapi Ext4 tidak bahwa jauh lebih cepat daripada NTFS (tentu bukan beberapa urutan perbedaan besarnya yang saya lihat dalam pemeriksaan filesystem).
Brendan Long
Saya tidak yakin apa yang Anda maksud ... Secara umum, konten file membutuhkan lebih banyak ruang daripada indeks pada kebanyakan sistem file modern (termasuk ext4 dan NTFS). Sistem file hanya menyimpan konten secara berbeda, yang (seperti yang saya sebutkan, di beberapa kasing) memungkinkan untuk kinerja yang lebih tinggi.
Breakthrough
Yang membingungkan saya adalah bahwa bagian yang benar-benar diperiksa harus memiliki ukuran yang sama pada keduanya (karena partisi Ext4 saya memiliki ruang sebanyak yang digunakan oleh total partisi NTFS), tetapi partisi Ext4 melakukan pemeriksaan dalam hitungan detik, sedangkan NTFS seseorang butuh berjam-jam.
Brendan Long
1
@ Brendan Lama jika Anda melihat tautan pertama dalam jawaban saya, beberapa orang menemukan bahwa membaca file sebenarnya lebih cepat dengan drive menggunakan ext4 versus NTFS. Meskipun data digital disimpan di dalamnya file-nya sama , ini tidak disimpan dengan cara yang sama pada disk. Namun, jika Anda mengatakan NTFS yang dibutuhkan jam , maka Anda mungkin memverifikasi setiap sektor pada drive, jadi Anda mungkin melewatkan beberapa pemeriksaan alternatif dalam pemeriksaan sistem file ext4 (menjelaskan perbedaan kecepatan yang besar). Jauh lebih cepat untuk memverifikasi setiap file daripada seluruh permukaan disk.
Breakthrough
Jawaban ini hanyalah daftar poin pembicaraan ext4 vs NTFS tanpa relevansi dengan pertanyaan. Sistem file jurnal tidak perlu diperiksa dalam operasi biasa. Pemeriksaan otomatis berarti ada kesalahan serius. Tanpa mengetahui apa yang salah, mustahil mengetahui mengapa pengecekannya sangat lambat. Membandingkannya dengan cek mingguan ext4 adalah membandingkan apel dan jeruk.
benrg
3

Dari pemahaman saya, ext4 mencoba menulis data ke celah terbuka terus-menerus terbesar di mana tidak ada data saat ini berada. Ini sangat mengurangi latensi ketika file-file tersebut harus dibaca karena, sebagian besar, seluruh konten dari file individual sebagian besar akan terletak pada satu track kontinu sehingga drive head akan memiliki sedikit mencari lakukan ketika menemukan setiap blok yang berisi data yang membentuk satu file itu.

Itu (ext4) masih bisa menjadi terfragmentasi tetapi jauh lebih sedikit dan tidak harus dengan cara yang mempengaruhi kinerja baca / tulis sangat seperti dengan NTFS. Pada NTFS, data ditulis ke blok terbuka pertama di jalur kepala.

Jadi di mana pun kepala terletak dan ada blok terbuka ia menulis data sebanyak itu sesuai kemudian menulis di mana pun ia mendarat di tempat lain di disk ketika kepala harus pindah, katakanlah, ke bagian lain dari disk untuk mengakses file berbeda yang harus dibuka di program yang baru saja Anda muat sementara file lain sedang ditulis.
Ini berarti bahwa jika file tersebut besar kemungkinan akan menyebar dalam blok yang terpisah satu sama lain pada trek yang terpisah dan itulah mengapa defragmenting sering diperlukan untuk NTFS.

Juga mengapa server umumnya tidak menggunakannya karena ada I / O yang lebih berat terjadi dengan server di mana data terus-menerus ditulis dan dibaca dari disk 24/7.

Juga saya tidak yakin tetapi jika chkdsk memeriksa integritas masing-masing file (yang saya percaya keduanya dan fsck lakukan) maka itu juga akan lebih lambat dibandingkan karena apa yang baru saja saya jelaskan tentang fragmentasi pada NTFS.

jesse james
sumber
Baik NTFS chkdsk atau ext4 fsck membaca data file. Tidak ada gunanya, karena tidak ada checksum atau cara lain untuk memverifikasi integritasnya.
benrg
0

Windows seharusnya tidak perlu memeriksa volume NTFS saat startup. Jika ya, ada yang salah serius — sesuatu yang jauh lebih buruk daripada hanya BSOD atau pemadaman listrik. Ada kemungkinan besar bahwa sebagian data Anda juga rusak oleh apa pun yang merusak metadata sistem file. Pemeriksaan disk tidak dapat mendeteksi itu; satu-satunya tujuannya adalah untuk menghindari korupsi lebih lanjut.

KB2854570 daftar beberapa alasan bahwa ini bisa terjadi. Salah satunya adalah hibernasi OS dengan volume yang terpasang, memodifikasi isi volume, kemudian melanjutkan dari hibernasi dengan volume (kembali) terpasang. Jika Anda melakukannya, ada kemungkinan besar korupsi data diam.

Saya tidak tahu mengapa filesystem ext4 Anda memeriksa sendiri seminggu sekali, tapi itu mungkin (semoga) bukan karena krisis yang sebanding yang berulang setiap minggu. Itu mungkin hanya melakukan pemeriksaan kewarasan rutin, dan bukan pemeriksaan konsistensi penuh.

benrg
sumber