Kecepatan menulis NTFS sangat lambat (<15MB / s) di Ubuntu

18

Saat menyalin file besar atau menguji kecepatan menulis dd, kecepatan tulis maksimum yang bisa saya dapatkan adalah sekitar 12-15MB / s pada drive menggunakan sistem file NTFS. Saya menguji beberapa drive (semua terhubung menggunakan SATA) yang semuanya mendapat kecepatan menulis 100MB / s + pada Windows atau ketika diformat dengan ext4, jadi itu bukan masalah alignment atau drive.

topmenunjukkan penggunaan CPU yang tinggi untuk mount.ntfsproses tersebut.

AMD dual core processor (2.2 GHz)
Versi kernel: versi 3.5.0-23-generic
Ubuntu 12.04
ntfs-3g: keduanya 2012.1.15AR.1(versi default Ubuntu) dan2013.1.13AR.2

Bagaimana saya bisa memperbaiki kecepatan Write?

Zulakis
sumber
Sudahkah Anda mencoba menguji dd dengan akses drive mentah (pada drive atau partisi, tidak masalah)? Perhatikan bahwa pengujian dengan cara itu akan menghancurkan sistem file dan akan kehilangan data apa pun di dalamnya. Ini akan mem-bypass driver NTFS sepenuhnya.
Bob
Ya saya baru saja melakukannya, hasilnya adalah 149MB/s.
Zulakis
Hanya ingin tahu, saya harus bertanya apakah drive ini adalah salah satu dari drive 4k itu dan jika karena itu sistem file Anda mungkin tidak selaras?
Waxhead
4
Saya percaya bahwa versi gratis NTFS-3G lumpuh sehingga menggunakan 4 KiB menulis tanpa caching, menyebabkan kinerja penulisan sangat lambat pada SSD dan drive USB. Perusahaan di belakang pengemudi menyarankan untuk membeli versi komersial untuk kinerja yang lebih baik. Tampaknya tidak ada yang cukup peduli untuk benar-benar memperbaiki (dan jika perlu, bercabang) versi open source karena masalah ini telah ada selama hampir satu dekade, sejak NTFS-3G pertama kali dirilis.
Tronic
1
Dengan laptop Ubuntu 2015.04 yang sama, saya memformat NTFS hard disk eksternal 320GB dan stik USB 32GB. Menyalin gambar 2GB ke yang pertama butuh selamanya (6 jam tersisa diperkirakan setelah 30 menit), tetapi untuk yang kedua (stik USB) hanya butuh satu atau dua menit. Saya tidak mengubah pengaturan apa pun di antara keduanya.
Nicolas Raoul

Jawaban:

18

Posting sebelumnya berada di jalur yang benar dengan referensi yang disediakan:

mungkin periksa di sini untuk ide tentang apa yang menyebabkannya. http://www.tuxera.com/community/ntfs-3g-faq/#slow

Pertanyaan aslinya menyebutkan memperhatikan masalah dengan transfer file besar. Dalam pengalaman saya dengan menyalin file media atau melakukan backup, opsi kunci dalam FAQ di atas adalah:

Penanganan masalah: menggunakan opsi mount "big_writes" umumnya mengurangi penggunaan CPU, asalkan perangkat lunak yang meminta penulisan mendukung blok besar.

Cukup tambahkan opsi big_writes, mis

sudo mount -o big_writes /media/<mount_dir> /dev/<device>

Linux NAS saya dengan CPU spec rendah sekarang mengelola file besar NTFS menulis sekitar tiga kali lebih cepat. Ini meningkat dari ~ 17MB / s menjadi 50MB / s +. Bahkan melihatnya mengintip sekitar 90MB / s di iotop yang mungkin dekat dengan kemampuan drive eksternal (2,5 "USB3 HDD).

Dari halaman manual NTFS-3G:

 big_writes
              This option prevents fuse from splitting write buffers  into  4K
              chunks,  enabling  big  write buffers to be transferred from the
              application in a single step (up to some system limit, generally
              128K bytes).

Catatan penutup:

  • opsi big_writes mungkin tidak akan membantu benchmark penulisan acak 4K ;-)
  • Sementara Tuxera tampaknya memesan driver pro NTFS untuk mitra sistem yang disematkan, Paragon menawarkan alternatif gratis untuk penggunaan pribadi. Driver NTFS yang disebut NTFS & HFS untuk Linux 9.0 Express dan versi profesional. Namun saya tidak menjamin untuk produk ini dan ketika saya mencoba versi sebelumnya (v8.5), saya tidak dapat membuatnya bekerja dengan versi Linux Kernel saya pada saat itu.
JPvRiel
sumber
Opsi big_writes membuat disk saya berubah dari 300kb / s menjadi 35mb / s! Terima kasih!
JosFabre
10 karakter membuat perbedaan dunia, terima kasih banyak!
João Miguel Brandão
big_writesitu ditinggalkan pada tahun 2016, namun, 3 tahun kemudian beberapa distro masih menggunakan versi bahkan lebih tua dari libfuse.
Dmitry Grigoryev
2

mungkin periksa di sini untuk ide tentang apa yang menyebabkannya. http://www.tuxera.com/community/ntfs-3g-faq/#slow

Ini terdengar agak seperti 'masa lalu' ketika file io tidak menggunakan DMA secara default. Sekarang ini tidak mungkin, tetapi apakah BIOS menggunakan emulasi IDE untuk drive SATA? Karena jika meniru IDE maka mungkin juga meniru mode non-DMA.

Potensi memperlambat lainnya adalah jika kompresi file ntfs. Apakah kompresi diaktifkan pada folder yang Anda tulis? Jika ya, itu akan membuat file baru di folder itu terkompresi juga.

BeowulfNode42
sumber
Bagaimana saya bisa menguji apakah menggunakan DMA? Terlepas dari ini, saya sudah mencoba semua saran di halaman.
Zulakis
Uhm, dari apa yang saya baca, DMA hanya relevan untuk drive IDE? Saya hanya menggunakan drive SATA.
Zulakis
Menurut en.wikipedia.org/wiki/Serial_ATA#Transport_layer , sepertinya DMA adalah satu-satunya pilihan untuk SATA. Mari kita cari tahu apakah bios-nya menggunakan emulasi ide
BeowulfNode42
0

Ini adalah utas lama, tetapi bagi orang yang mencari solusi untuk masalah yang sama: apakah Anda memiliki cpuspeed aktif? ntfs-3g haus CPU dan dalam kasus saya cpuspeed secara keliru mendeteksi beban rendah untuk proses dengan banyak IO menunggu, akhirnya melambatkan inti dan membuat pengemudi kelaparan.

Coba nonaktifkan cpuspeed (jika mis. Berjalan sebagai layanan) dan uji lagi.

irisx
sumber
Bagaimana cara saya menentukan bahwa cpuspeed aktif? Apakah itu daemon atau pengaturan?
Daniel
0

big_writesitu ditinggalkan pada tahun 2016, perilaku yang sesuai selalu diaktifkan ketika menggunakan libfuseversi 3.0.0 atau yang lebih baru. Pada sistem Linux modern, kinerja NTFS yang buruk biasanya berarti:

  • disk terpecah-pecah
  • Kompresi disk NTFS diaktifkan
  • opsi pemasangan yang tidak memadai seperti syncyang digunakan
Dmitry Grigoryev
sumber