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

  • Saldo DANA Gratis dari Kode Redeem Terbaru 2026, APK JadiDuit Penipu?
  • Ngefans Maxwell Clash of Champions? Begini Cara Masuk Saluran WA-nya Biar Update Terus!
  • Ini Cara Pakai greatonlinetools.com buat Nambah Likes dan Iseng ke Teman!
  • Cara Pakai Bug Token M7 Mobile Legends, Banjir Skin Prime Cuma Modal Browser!
  • Pusing Gagal Simpan Data Internet Dapodik 2026.b? Ini Trik Jitu Mengatasinya!
  • Mau Cuan Tambahan? Ini Cara Mudah Jadi Clipper di Ternak Klip Modal HP Doang!
  • Akun PTK Silang Merah di Dapodik 2026.b Bikin Panik? Jangan Dihapus, Coba Trik Ini Dulu!
  • Ini Trik Supaya Bisa Mancing Otomatis di Fish It Roblox Pakai GG Game Space
  • Sering Stuck Saat Registrasi Dapodik 2026.b? Coba Cara Offline Ini, Dijamin Lancar!
  • Belum Tahu? Ini Trik Isi Data Internet Dapodik 2026.B Biar Validasi Aman!
  • Belum Tahu? Inilah Cara Dapat Saldo E-Wallet Cuma Modal Tidur di Sleep Time Tracker
  • Padahal Negara Maju, Kenapa Selandia Baru Nggak Bangun Jembatan Antar Pulau? Ini Alasannya!
  • Nonton Drama Bisa Dapat 1 Juta? Cek Dulu Fakta dan Bukti Penarikan Aplikasi Gold Drama Ini!
  • Takut Saldo Habis? Gini Cara Stop Langganan CapCut Pro Sebelum Perpanjangan Otomatis
  • Gini Caranya Hilangkan Invalid Peserta Didik di Dapodik 2026 B Tanpa Ribet, Cuma Sekali Klik!
  • Rombel Hilang di Dapodik 2026 B? Tenang, Gini Cara Mudah Mengatasinya Tanpa Menu Aksi!
  • Pusing Lihat Ratusan Invalid Sarpras di Dapodik 2026 B? Tenang, Ini Cara Membereskan Datanya
  • Validasi Merah Terus? Ini Cara Tuntas Isi Data Listrik & Internet di Dapodik 2026 B
  • Inilah Trik Install Dapodik 2026.B Tanpa Patch, Wajib Uninstall Versi Lama!
  • Apakah APK PinjamAja Penipu?
  • Ini Trik Cepat Cuan di Clear Blast Tanpa Undang Teman
  • Belum Tahu? Inilah Suku Bajau Punya Gen “Mutan” Mirip Fishman One Piece, Ini Faktanya!
  • Inilah Paket PLTS Hybrid 6kVA Aspro DML 600 yang Paling Powerful!
  • Suku Tsaatan: Suku Mongolia Penggembala Rusa Kutub
  • Game Happy Rush Terbukti Membayar atau Cuma Scam Iklan?
  • Cara Nonton Drama Dapat Duit di Free Flick, Tapi Awas Jangan Sampai Tertipu Saldo Jutaan!
  • APK Pinjol Rajindompet Penipu? Ini Review Aslinya
  • Keganggu Iklan Pop-Up Indosat Pas Main Game? Ini Trik Ampuh Matikannya!
  • Belum Tahu? Inilah Cara Upload Reels Instagram Sampai 20 Menit, Konten Jadi Lebih Puas!
  • Apa itu Negara Somaliland? Apa Hubungannya dengan Israel?
  • What is OpenEverest? The Future of Database Management on Kubernetes
  • T3g: Code is Cheap Now, Software Isn’t
  • Is the New $130 Raspberry Pi AI Hat+ 2 Worth Your Allowance? A Detailed Review
  • Create AI Voices on Your CPU: Pocket TTS Explained for Beginners
  • Building Your First Server: Windows Server Setup and Active Directory
  • Begini Cara Mencegah Output Agen AI Melenceng Menggunakan Task Guardrails di CrewAI
  • Tutorial AI Lengkap Strategi Indexing RAG
  • Cara Membuat AI Voice Agent Cerdas untuk Layanan Pelanggan Menggunakan Vapi
  • Inilah Cara Belajar Cepat Model Context Protocol (MCP) Lewat 7 Proyek Open Source Terbaik
  • Inilah Cara Menguasai Tracing dan Evaluasi Aplikasi LLM Menggunakan LangSmith
  • Clipper Malware? Ini Pengertian dan Bahaya yang Mengintai Kalian
  • Kronologi Serangan Gentlemen Ransomware di Oltenia Energy
  • Apa itu CVE-2020-12812? Ini Penjelasan Celah Keamanan Fortinet FortiOS 2FA yang Masih Bahaya
  • Apa itu CVE-2025-14847? Ini Penjelasan Lengkap MongoBleed
  • Ini Kronologi & Resiko Kebocoran Data WIRED
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

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