GNU/Linux >> Belajar Linux >  >> Linux

Cara (benar-benar) menonaktifkan NCQ di Linux

Berkat @frostschutz, saya bisa mengukur performa tulis di Linux tanpa fitur NCQ. Parameter boot kernel libata.force=noncq menonaktifkan NCQ sepenuhnya.

Mengenai masalah kinerja tulis Seagate 6TB saya, tidak ada perubahan kecepatan. Linux masih mencapai 180 MiB/dtk.

Tapi kemudian saya punya ide lain:
Driver Linux tidak menggunakan transfer potongan 32 MiB. Buffer kernel jauh lebih kecil, terutama jika NCQ dengan 32 antrean diaktifkan (32 antrean * 32 MiB => 1 GiB buffer AHCI).

Jadi saya menguji pengontrol SATA saya dengan transfer 256 KiB dan voila, mungkin mencapai 185 MiB/dtk.

Jadi saya kira firmware Seagate ST6000AS0002 tidak mampu menangani transfer burst ATA yang besar. Standar ATA memungkinkan hingga 65.536 blok logis, yang setara dengan 32 MiB.

SMR - Perekaman Magnetik Sirap

Kemungkinan lain untuk kinerja penulisan yang buruk bisa jadi adalah teknik perekaman magnetik sirap, yang digunakan oleh Seagate di perangkat pengarsipan ini. Jelas, saya memicu efek langka dengan implementasi FPGA saya.


Menyetel kedalaman antrean ke 1 (/sys/block/sd*/device/queue_depth ) menonaktifkan NCQ, tidak perlu menggunakan parameter kernel libata.force=noncq (yang hanya dapat disetel saat boot).

komit 360f654e7cda850034f3f6252a7a7cff3fa77356

 Date:   Sat Sep 30 19:45:00 2006 +0900

 [PATCH] libata: turn off NCQ if queue depth is adjusted to 1
 
 Turn off NCQ if queue depth is adjusted to 1.

Linux
  1. Cara menonaktifkan halaman selamat datang Apache default di Redhat Linux

  2. Cara Menonaktifkan Perintah Shutdown dan Reboot di Linux

  3. Cara Mengubah, Menghapus, atau Menonaktifkan Kata Sandi Pengguna di Linux

  1. UNIX / Linux :Cara mengunci atau menonaktifkan akun pengguna

  2. Cara menonaktifkan perintah khusus untuk pengguna tertentu di Linux

  3. Bagaimana cara menonaktifkan konfigurasi otomatis pada IPv6 di Linux?

  1. Cara Memblokir atau Menonaktifkan Login Pengguna Normal di Linux

  2. Cara menonaktifkan firewall di CentOS 8 Linux

  3. Bagaimana cara menonaktifkan ipv6 pada antarmuka tertentu di linux?