Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Mengatasi Error “Terlalu Banyak File Terbuka” di Linux

Posted on October 30, 2023

Jika Anda melihat kesalahan “Terlalu banyak file terbuka” pesan di Linux, proses Anda telah mencapai batas atas file yang boleh dibuka, biasanya 1.024. Anda dapat meningkatkan batas sementara menjadi, misalnya, 2.048 file, dengan perintah “ulimit -n 2048”. Tingkatkan batas secara permanen dengan mengedit file konfigurasi systemd.

Pada komputer Linux, sumber daya sistem dibagi di antara pengguna. Cobalah untuk menggunakan lebih dari batas wajar Anda dan Anda akan mencapai batas atas. Anda mungkin juga menghambat pengguna atau proses lain.

Apa yang dimaksud dengan Kesalahan Terlalu Banyak File Terbuka?

Di antara trilyunan pekerjaan lainnya, kernel komputer Linux selalu sibuk mengamati siapa yang menggunakan berapa banyak sumber daya sistem yang terbatas, seperti RAM dan siklus CPU. Sistem multi-pengguna memerlukan perhatian terus-menerus untuk memastikan orang dan proses tidak menggunakan lebih banyak sumber daya sistem daripada yang seharusnya.

Tidak adil, misalnya, jika seseorang menghabiskan begitu banyak waktu CPU sehingga komputer terasa lambat untuk semua orang kalau tidak. Meskipun Anda satu-satunya orang yang menggunakan komputer Linux, ada batasan yang ditetapkan untuk sumber daya yang dapat digunakan oleh proses Anda. Bagaimanapun, Anda masih hanyalah pengguna lain.

Beberapa sumber daya sistem sudah diketahui dan jelas, seperti RAM, siklus CPU, dan ruang hard drive. Namun masih banyak lagi sumber daya yang dipantau dan setiap pengguna — atau setiap proses yang dimiliki pengguna — memiliki batas atas yang ditetapkan. Salah satunya adalah jumlah file yang dapat dibuka oleh suatu proses sekaligus.

Jika Anda pernah melihat pesan kesalahan “Terlalu banyak file terbuka” di jendela terminal atau menemukannya di log sistem Anda, itu berarti batas atas telah telah kena, dan proses tidak diijinkan untuk membuka file lagi.

Mengapa Banyak sekali File yang Dibuka?

Ada batasan sistem untuk jumlah file terbuka yang dapat ditangani oleh Linux. Seperti yang akan kita lihat nanti, ini adalah angka yang sangat besar, namun masih ada batasnya. Setiap proses pengguna memiliki alokasi yang dapat mereka gunakan. Mereka masing-masing mendapat bagian kecil dari total sistem yang dialokasikan kepada mereka. Nbsp

Apa yang sebenarnya dialokasikan adalah sejumlah pegangan file. Setiap file yang dibuka memerlukan pegangan. Bahkan dengan alokasi yang cukup besar, di seluruh sistem, penanganan file dapat digunakan lebih cepat dari yang Anda bayangkan.

Linux mengabstraksi hampir semuanya sehingga tampak seolah-olah itu adalah sebuah file. Terkadang hanya berupa file biasa saja. Namun tindakan lain seperti membuka direktori juga menggunakan pegangan file. Linux menggunakan file blok khusus sebagai semacam driver untuk perangkat keras. File khusus karakter sangat mirip, tetapi lebih sering digunakan dengan perangkat yang memiliki konsep throughput, seperti pipa dan port serial.

Block file khusus menangani blok data pada satu waktu dan file khusus karakter menangani setiap karakter secara terpisah. Kedua file khusus ini hanya dapat diakses dengan menggunakan file handle. Perpustakaan yang digunakan oleh suatu program menggunakan pegangan file, aliran menggunakan pegangan file, dan koneksi jaringan menggunakan pegangan file.

Mengabstraksi semua persyaratan yang berbeda ini sehingga muncul sebagai file menyederhanakan antarmuka dengannya dan memungkinkan hal-hal seperti perpipaan dan aliran berfungsi.

Anda dapat melihat bahwa di balik layar Linux membuka file dan menggunakan pegangan file hanya untuk menjalankannya sendiri — apalagi proses pengguna Anda. Jumlah file yang terbuka bukan hanya jumlah file yang Anda buka. Hampir semua yang ada di sistem operasi menggunakan pegangan file.

Cara Memeriksa Batas Penanganan File

Jumlah maksimum pegangan file di seluruh sistem dapat dilihat dengan perintah ini.

cat /proc/sys/fs/file-max

Ini mengembalikan sejumlah besar yang tidak masuk akal 9,2 triliun. Itulah sistem teoritis maksimum. Ini adalah nilai terbesar yang dapat Anda simpan dalam bilangan bulat bertanda 64-bit. Apakah komputer Anda yang buruk benar-benar dapat menangani banyak file yang dibuka sekaligus adalah masalah lain. Nbsp

Pada tingkat pengguna, tidak ada nilai eksplisit untuk jumlah maksimum file terbuka yang dapat Anda miliki. Tapi secara kasar kita bisa menyelesaikannya. Untuk mengetahui jumlah maksimum file yang dapat dibuka oleh salah satu proses Anda, kita dapat menggunakan perintah ulimit dengan opsi -n (buka file).

ulimit -n

Dan untuk mengetahui jumlah maksimum proses yang dapat dimiliki pengguna, kami akan menggunakan ulimit dengan opsi -u (proses pengguna).

ulimit -u

Mengalikan 1024 dan 7640 menghasilkan 7.823.360. Tentu saja, banyak dari proses tersebut sudah digunakan oleh lingkungan desktop Anda dan proses latar belakang lainnya. Jadi itu adalah nilai maksimum teoritis lainnya, dan sesuatu yang tidak akan pernah Anda capai secara realistis. Angka yang penting adalah jumlah file yang dapat dibuka oleh suatu proses. Secara default, ini adalah 1024. Perlu dicatat bahwa membuka file yang sama 1024 kali secara bersamaan sama dengan membuka 1024 file berbeda secara bersamaan. Setelah Anda menggunakan semua pegangan file, Anda selesai.

Dimungkinkan untuk menyesuaikan jumlah file yang dapat dibuka oleh suatu proses. Sebenarnya ada dua nilai yang perlu dipertimbangkan saat Anda menyesuaikan angka ini. Salah satunya adalah nilai yang saat ini disetel, atau yang Anda coba setel. Ini disebut batas lunak. Ada batas kerasnya juga, dan ini adalah nilai tertinggi yang dapat Anda naikkan batas lunaknya.

Cara memikirkan hal ini adalah batas lunak sebenarnya adalah “nilai saat ini” dan batas atas adalah nilai tertinggi yang bisa dimiliki nilai saat ini. mencapai. Pengguna biasa, non-root, dapat menaikkan batas lunaknya ke nilai berapa pun hingga batas kerasnya. Pengguna root dapat meningkatkan batas kerasnya.

Untuk melihat batas lunak dan keras saat ini, gunakan ulimit dengan opsi -S (lunak) dan -H (keras), serta opsi -n (buka file).

ulimit -Sn
ulimit -Hn

To menciptakan situasi di mana kita dapat melihat batas lunak diberlakukan, kami membuat program yang berulang kali membuka file hingga gagal. Ia kemudian menunggu penekanan tombol sebelum melepaskan semua pegangan file yang digunakannya. Program ini disebut open-files.

./open-Files

Ini membuka 1021 file dan gagal saat mencoba membuka file 1022.

1024 dikurangi 1021 adalah 3. Apa yang terjadi dengan tiga pegangan file lainnya? Mereka digunakan untuk aliran STDIN, STDOUT, dan STDERR. Mereka dibuat secara otomatis untuk setiap proses. Ini selalu memiliki nilai deskriptor file 0, 1, dan 2.

Kita dapat melihatnya menggunakan perintah lsof dengan opsi -p (proses) dan ID proses dari program file terbuka. Dengan mudah, ia mencetak ID prosesnya ke jendela terminal.

lsof -p 11038

Tentu saja, Dalam situasi dunia nyata, Anda mungkin tidak tahu proses mana yang baru saja melahap semua pegangan file. Untuk memulai penyelidikan, Anda dapat menggunakan rangkaian perintah yang disalurkan ini. Ini akan memberi tahu Anda lima belas pengguna pegangan file paling produktif di komputer Anda.

lsof | awk '{ print $1 " " $2; }' | sort -rn | unik -c | sort -rn | head -15

Untuk melihat lebih banyak atau lebih sedikit entri sesuaikan parameter -15 dengan perintah head. Setelah Anda mengidentifikasi prosesnya, Anda perlu mencari tahu apakah proses tersebut nakal dan membuka terlalu banyak file karena di luar kendali, atau apakah proses tersebut benar-benar memerlukan file tersebut. Jika memang membutuhkannya, Anda perlu meningkatkan batas penanganan filenya.

Cara Meningkatkan Batas Lunak

Jika kita meningkatkan batas lunak dan menjalankan program kita lagi, kita akan melihatnya membuka lebih banyak file. Kami akan menggunakan perintah ulimit dan opsi -n (buka file) dengan nilai numerik 2048. Ini akan menjadi batas lunak baru.

ulimit -n 2048

Kali ini kami berhasil membuka 2045 file. Seperti yang diharapkan, ini tiga kurang dari 2048, karena pegangan file yang digunakan untuk STDIN , STDOUT , dan STDERR.

Cara Mengubah Batas File Secara Permanen

Meningkatkan batas lunak hanya memengaruhi shell saat ini. Buka jendela terminal baru dan periksa batas lunaknya. Anda akan melihat itu adalah nilai default lama. Namun ada cara untuk menetapkan nilai default baru secara global untuk jumlah maksimum file terbuka yang dapat dimiliki suatu proses yang persisten dan bertahan saat reboot. NbspNasihat lama sering kali menyarankan Anda mengedit file seperti “/etc/sysctl.conf” dan “/etc/security/limits.conf.” Namun, pada distribusi berbasis systemd, pengeditan ini tidak berfungsi secara konsisten, terutama untuk sesi log-in grafis.

Teknik yang ditunjukkan di sini adalah cara melakukan ini pada distribusi berbasis systemd. Ada dua file yang perlu kita kerjakan. Yang pertama adalah file “/etc/systemd/system.conf”. Kita harus menggunakan sudo .

sudo gedit /etc/systemd/system.conf

Search untuk baris yang berisi string “DefaultLimitNOFILE.” Hapus hash “#” dari awal baris, dan edit angka pertama sesuai batas lunak proses yang Anda inginkan. Kami memilih 4096. Angka kedua pada baris itu adalah batas keras. Kami tidak menyesuaikan ini.

Simpan file dan tutup editor.

Kami perlu mengulangi operasi itu pada file “/etc/systemd/user.conf”.

sudo gedit /etc/systemd/user.conf

Lakukan penyesuaian yang sama pada baris yang berisi string “DefaultLimitNOFILE.”

Simpan file dan tutup editor. Anda harus me-reboot komputer Anda atau menggunakan perintah systemctl dengan opsi daemon-reexec agar systemd dijalankan kembali dan menyerap pengaturan baru.

sudo systemctl daemon-reexec

Membuka jendela terminal dan memeriksa batas baru akan menampilkan nilai baru yang Anda tetapkan . Dalam kasus kami yaitu 4096.

ulimit -n

Kami dapat menguji ini adalah nilai operasional langsung dengan menjalankan kembali program serakah file kami.

./open-Files

Program gagal membuka file nomor 4094, artinya 4093 adalah file yang dibuka. Itu nilai yang kami harapkan, 3 kurang dari 4096.

Ingat Bahwa Semuanya adalah File

Itulah mengapa Linux sangat bergantung pada penanganan file. Sekarang, jika Anda mulai kehabisan, Anda tahu cara menambah kuota.

Terbaru

  • Game & Aplikasi Android Terbaik Saat Diskon Liburan Natal! Jangan Ketinggalan!
  • Apa Itu Game Prison Escape Journey? Ini Pengertian dan Cara Mainnya untuk Pemula
  • Pixelated 083: Tier List The Gang – Ranking Game Android Terbaik!
  • “Listrik Gratis” dari Solar Panel Cuma Mitos?! Ini Sisi Gelap PLTS
  • Samsung Galaxy Z-Fold: Uji Jatuh Bebas yang Mengguncang Keandalan Lipatannya
  • Google One 2026: Apa yang Akan Jadi Fitur Utama dan Harga yang Diharapkan?
  • Apa Itu Error 0x800704f8? Ini Pengertian dan Cara Mengatasinya
  • Android Akhirnya Dapat GPS Darurat di India! Setelah Hampir 10 Tahun
  • Apa Itu GetContact Premium? Ini Pengertian dan Cara Daftarnya
  • Android Maze Figure: Koleksi Baru Google yang Bikin Penggemar Bergairah!
  • Google Update Besar-besaran Desember 2025: Apa yang Akan Memengaruhi Pengalaman Anda?
  • Masih Pusing Hitung Gaji Manual? Waktunya Pakai Aplikasi HR
  • Apa Itu Dustruco? Ini Pengertian dan Cara Pasangnya di HP Kalian
  • Apa Itu Aplikasi Dooie Live? Ini Pengertian dan Cara Pakai Aplikasinya untuk Cari Jodoh
  • Apa Itu Battle Emote Jefri Nichol dan Om Telolet Om di MLBB? Ini Penjelasannya
  • Apa itu Game Luna Mobile dan Bagaimana Cara Menangnya?
  • Apa Itu Kompensasi Sistem Trail Mobile Legends? Ini Penjelasan dan Cara Klaim Hadiahnya
  • Apa Itu Update Google Pixel 2 Desember 2025? Ini Penjelasannya!
  • Ini Cara Reset Desil di Aplikasi Cek Bansos Biar Valid (Update Januari 2026)
  • Apa Itu EZNET Wireless dan Fiber Optic? Ini Perbedaan dan Pengertian Lengkapnya
  • Pengertian Rework Magic Wheel dan Rank Mythic Eternal: Apa itu Perubahan Sistem Baru Mobile Legends?
  • Apa Itu Diamond Combo? Pengertian Game Puzzle Viral yang Katanya Bisa Hasilkan Cuan
  • Apa Itu Showbox? Pengertian, Fungsi, dan Cara Menggunakannya di Android
  • Cara Mengatasi Fitur Monet Facebook Pro Tiba-tiba Hilang
  • Google Bikin Kejutan! Pixel 10 Diskon Gila-gilaan di YouTube Premium
  • Apa Itu Google CC? Ini Pengertian Agen Produktivitas AI Eksperimental Terbaru
  • Apa Itu Ultras Seblak di eSport? Pengertian dan Fenomena Baru Suporter eSport
  • Android 16: Animasi Folder Baru yang Mengubah Cara Kita Berinteraksi!
  • Android 16: Notifikasi Lokasi ‘Blue Dot’ – Fitur Baru yang Perlu Kalian Ketahui!
  • Apa Itu Risiko Auto Click di Event Spongebob Mobile Legends? Ini Penjelasannya
  • Apa itu Cosmic Desktop: Pengertian dan Cara Pasangnya di Ubuntu 26.04?
  • Apa Itu Auvidea X242? Pengertian Carrier Board Jetson T5000 dengan Dual 10Gbe
  • Elementary OS 8.1 Resmi Rilis: Kini Pakai Wayland Secara Standar!
  • Apa Itu Raspberry Pi Imager? Pengertian dan Pembaruan Versi 2.0.3 yang Wajib Kalian Tahu
  • Performa Maksimal! Ini Cara Manual Update Ubuntu ke Linux Kernel 6.18 LTS
  • Jelang Natal 2025 Fireworks.AI Beri Update Baru di NVIDIA Nemotron 3? Ini Penjelasan Lengkapnya
  • Apa Itu Elestio VibeCoder? Ini Pengertian dan Penjelasan Lengkapnya
  • Apa Itu Elestio Get A Team? Ini Pengertian Karyawan AI Digital
  • Apa itu RunPod? Ini Pengertian dan Tutorial Cara Deploy Pod Pertamamu
  • Apa Itu Migrasi Pod di RunPod? Ini Pengertian dan Cara Kerjanya
  • Gila! 574 Penjahat Siber Diciduk Interpol di Afrika, Kok Bisa Jaringannya Segede Ini?
  • Apa Itu Regulasi Drone Asing FAA? Ini Pengertian dan Implikasinya
  • Apa Itu Insiden Data Breach Nissan? Ini Kronologi dan Penjelasannya
  • Apa Itu Skandal Instacart? Pengertian Dark Pattern dan Refund 940 Miliar
  • Apa Itu Kerentanan UEFI? Pengertian Celah Keamanan DMA pada Booting Awal
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ

©2025 emka.web.id | Design: Newspaperly WordPress Theme