GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara kerja batas deskriptor file linux?

Anda ingin melihat /proc/sys/fs/file-max sebagai gantinya

Dari linux/Documentation/sysctl/fs.txt terbaru:

file-max &file-nr:

Kernel mengalokasikan pegangan file secara dinamis, tetapi belum membebaskannya lagi.

Nilai dalam file-max menunjukkan jumlah maksimum penanganan file yang akan dialokasikan oleh kernel Linux. Saat Anda mendapatkan banyak pesan kesalahan tentang kehabisan pegangan file, Anda mungkin ingin meningkatkan batas ini.

Secara historis, tiga nilai dalam file-nr menunjukkan jumlah pegangan file yang dialokasikan, jumlah pegangan file yang dialokasikan tetapi tidak digunakan, dan jumlah maksimum pegangan file. Linux 2.6 selalu melaporkan 0 sebagai jumlah pegangan file gratis -- ini bukan kesalahan, ini hanya berarti bahwa jumlah pegangan file yang dialokasikan sama persis dengan jumlah pegangan file yang digunakan.

Upaya untuk mengalokasikan lebih banyak deskriptor file daripada file-max dilaporkan dengan printk, cari "VFS:file-max limitreached".

EDIT:kesalahan yang mendasarinya mungkin bukan sistem yang kehabisan deskriptor file global, tetapi hanya proses Anda. Sepertinya masalahnya adalah batas ukuran maksimum pilihan.


Sepertinya Anda tidak mencapai batas deskriptor file sistem. Lihat jawaban ini.

Mungkin proses server Anda menggunakan select dan dengan demikian terbatas pada 1024 deskriptor? Jika Anda beralih ke mekanisme lain, mis. poll Anda tidak akan dibatasi hingga 1024 deskriptor lagi.

select() berfungsi dengan fd_set s

Ini dari dokumentasi POSIX dari select.h:

Berikut ini harus didefinisikan sebagai makro:

FD_SETSIZE

Maximum number of file descriptors in an fd_set structure.

Coba temukan atau hasilkan FD_SETSIZE di sistem Anda.

Jika Anda menemukan FD_SETSIZE terlalu rendah untuk Anda, saya lebih suka mencoba menjauh dari select daripada mencoba meningkatkan FD_SETSIZE yang biasanya lebih sulit.


Linux
  1. Bagaimana Mengelola Kemampuan File Linux

  2. Cara Mengosongkan File Log di Linux

  3. Bagaimana Mengganti Nama File di Linux?

  1. Cara menemukan File di Linux

  2. Cara Membuat Swap di Linux

  3. Cara membuat file swap di Linux

  1. Cara memindahkan file di Linux

  2. Cara Membuat File di Linux

  3. Cara memasang file iso di Linux