GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Perintah Ls Lambat Mengganggu Di Direktori Nfs Dengan Banyak File?

Saya perhatikan di direktori dengan banyak file di NFS jika saya melakukannya

ls *

lalu tekan Ctrl-C itu bisa memakan waktu cukup lama ( katakanlah 20 detik ) sebelum ls kembali.

Mengapa? Bisakah perintah ls diperbaiki agar lebih responsif?

Jawaban yang Diterima:

Saat Anda menjalankan ls * , hal pertama yang terjadi adalah shell memperoleh daftar direktori saat ini. Jika direktorinya besar dan servernya lambat, ini bisa memakan waktu cukup lama.

Setelah shell memperoleh daftar nama file di direktori saat ini, shell akan mengurutkan daftar tersebut (yang sangat cepat dibandingkan dengan interaksi jaringan apa pun), lalu memanggil ls . ls perintah mencari setiap file secara bergantian dan mengambil metadatanya (stat panggilan) untuk memeriksa apakah itu sebuah direktori; jika file adalah direktori, ls mencantumkan isinya daripada direktori itu sendiri.

Saat Anda menekan Ctrl +C , ini tidak akan mengganggu operasi NFS saat ini. Anda tidak dapat menginterupsi operasi sistem file di mana saja, karena ini dapat membuat sistem dalam keadaan tidak konsisten. Bahkan membaca file dapat memperbarui waktu aksesnya. Sebagian besar waktu, operasi baca atau tulis dasar pada file dilakukan secara instan menurut standar manusia, tetapi NFS adalah pengecualian, terutama dengan data dalam jumlah besar melalui jaringan yang lambat.

Dengan demikian menekan Ctrl +C hanya akan berlaku:

  • jika shell saat ini membuat daftar nama file, ketika daftar itu diambil sepenuhnya;
  • jika ls telah dimulai dan saat ini memperoleh metadata tentang file, ketika server memasok metadata;
  • jika ls telah dimulai dan saat ini mencantumkan direktori, ketika daftar telah diambil sepenuhnya, atau setidaknya setelah sebagian.

Ini bukan kesalahan ls perintah (yang bahkan mungkin belum dimulai). Ini bahkan bukan kesalahan shell:ini kesalahan NFS. NFS cukup lambat.


Linux
  1. Mengapa Rm Dapat Menghapus File Read-only?

  2. File Cat Dengan Direktori?

  3. Tidak Dapat Menghapus File Dari Direktori dengan Kesalahan "Daftar argumen terlalu panjang"

  1. Menggunakan –exclude Dengan Perintah Du?

  2. Memeriksa Ukuran Direktori dengan du Command di Linux

  3. Cara Mengubah Kepemilikan File dan Direktori dengan Perintah chown

  1. Tutorial Perintah Linux zforce dengan Contoh

  2. Perintah CD Linux dengan Contoh

  3. Menghitung jumlah file dalam direktori dengan perintah terminal OSX