All Products
Search
Document Center

:Pemecahan masalah kegagalan koneksi jarak jauh atau error "Too many open files" akibat penyesuaian parameter nofile

Last Updated:Jun 21, 2026

Gejala

  • Kegagalan koneksi jarak jauh:

    • Saat Anda menggunakan SSH atau Workbench untuk terhubung ke instans, koneksi ditolak atau timeout.

    • Saat Anda menggunakan VNC untuk login, muncul pesan System error setelah memasukkan kredensial yang benar.

  • Perilaku aplikasi tidak normal:

    Log aplikasi atau output command line menampilkan error Too many open files.

    ./test3.sh: redirection error: cannot duplicate fd: Too many open files
    ./test3.sh: line 13: /tmp/testfile_20: Too many open files
    Error opening file 20: Too many open files

Penyebab

Batas resource nofile terlalu ketat: Parameter nofile dalam file /etc/security/limits.conf menentukan jumlah maksimum file yang dapat dibuka oleh suatu proses. Jika suatu proses mencoba membuka lebih banyak file daripada batas ini, sistem dapat melaporkan error atau menolak koneksi baru.

Prosedur

Jika Anda dapat login ke instans, Anda dapat langsung mengubah file konfigurasi. Jika tidak dapat login, Anda harus memperbaiki konfigurasi dengan menyambungkan disk sistem ke instans lain.

Dengan akses ke instans

  1. Login ke Instance ECS sebagai pengguna root.

    1. Buka halaman Konsol ECS - Instances. Di pojok kiri atas, pilih kelompok sumber daya dan wilayah tempat instans berada.

    2. Buka halaman detail instans target. Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk login sebagai root user dan buka terminal.

  2. Ubah file konfigurasi.

    Edit file /etc/security/limits.conf. Ubah nilai parameter hard nofile dan soft nofile menjadi nilai default 65535. Simpan file dan keluar.

    * soft nofile 65535
    * hard nofile 65535
    root soft nofile 65535
    root hard nofile 65535
    • Tanda bintang (*) berlaku untuk semua pengguna biasa, sedangkan root berlaku untuk pengguna root.

    • hard nofile: Batas keras jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi batas yang ditetapkan oleh parameter kernel fs.nr_open. Jika dilanggar, Anda mungkin tidak dapat login ke instans.

    • soft nofile: Batas saat ini jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi batas hard nofile. Jika dilanggar, konfigurasi ini akan diabaikan.

      Jika nilai soft nofile lebih besar daripada nilai hard nofile, nilai efektif nofile adalah nilai parameter hard nofile.
  3. Terapkan konfigurasi baru.

    1. Logout dari Instance ECS, lalu login kembali sebagai pengguna target agar perubahan diterapkan.

    2. Jalankan perintah sudo ulimit -n. Jika output-nya 65535, berarti batas nofile telah diperbarui.

  4. Mulai ulang aplikasi terkait dan verifikasi bahwa aplikasi berfungsi secara normal.

Tanpa akses ke instans

Penting

Jika tersedia snapshot historis dari disk sistem, kami menyarankan Anda terlebih dahulu membuat snapshot baru untuk backup data saat ini. Lalu, kembalikan disk sistem menggunakan snapshot historis tersebut dan verifikasi bahwa instans telah dipulihkan.

Jika tidak tersedia snapshot historis, siapkan sebuah instans Linux yang sehat dan berada di zona yang sama dengan instans bermasalah. Anda kemudian dapat mengubah parameter nofile dengan menyambungkan disk sistem dari instans bermasalah ke instans yang sehat.

  1. Lepaskan disk sistem.

    Pastikan instans bermasalah berada dalam status Stopped dan lakukan langkah-langkah berikut:

    1. Untuk mencegah kehilangan data secara tidak sengaja, buat snapshot manual dari disk sistem.

    2. Buka halaman Konsol ECS - Instances. Di pojok kiri atas, pilih kelompok sumber daya dan wilayah tempat instans berada.

    3. Klik ID instans bermasalah untuk membuka halaman Instance Details. Lalu, klik tab Block Storage.

    4. Pada bagian System Disk, temukan kolom Actions dan pilih 更多 > Detach.

    5. Pada kotak dialog Detach Disk, konfirmasi informasi dan klik OK. Saat status instans berubah menjadi No System Disk, berarti disk berhasil dilepas.

  2. Sambungkan disk tersebut sebagai data disk ke instans yang sehat.

    Pastikan instans yang sehat berada dalam status Running dan lakukan langkah-langkah berikut:

    1. Sambungkan disk sistem dari instans bermasalah ke instans yang sehat.

      1. Klik ID instans yang sehat untuk membuka halaman detailnya.

      2. Klik tab Block Storage, lalu klik Attach Disk.

      3. Pada halaman Attach to Instance, pilih disk sistem yang telah dilepas pada bagian Disk dan klik Next.

      4. Pada halaman Partition Disk and Create and Mount File Systems, pilih Configure Later untuk menyelesaikan penyambungan.

    2. Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk login sebagai root user dan buka terminal.

    3. Pasang sistem file.

      1. Identifikasi nama partisi dari disk bermasalah.

        lsblk -f
        vda                                                      
        ├─vda1                                                   
        ├─vda2 vfat         7938-FA03                            /boot/efi
        └─vda3 ext4   root  33b46ac5-7482-4aa5-8de0-60ab4c3a4c78 /
        vdb                                                      
        ├─vdb1                                                   
        ├─vdb2 vfat         7938-FA03                            
        └─vdb3 ext4   root  33b46ac5-7482-4aa5-8de0-60ab4c3a4c78                                  

        Pada contoh ini, partisi root dari disk bermasalah vdb adalah vdb3. Inilah partisi yang perlu Anda pasang. Penjelasan partisi-partisi tersebut sebagai berikut:

        • vdb1/vdb2: Partisi ini berisi file boot sistem dan dapat diabaikan.

        • vdb3: Ini adalah partisi root yang berisi file sistem operasi dan data pengguna. Partisi ini harus dipasang.

      2. Buat direktori dan pasang sistem file.

        mkdir <mount_point> && sudo mount /dev/<partition_name> <mount_point>

        Parameter

        Deskripsi

        <partition_name>

        Nama partisi root dari disk bermasalah yang telah Anda identifikasi pada langkah sebelumnya.

        <mount_point>

        <mount point> kustom harus merupakan path kosong yang dimulai dengan / dan harus unik.

        Penting

        Jika Anda memasang sistem file pada direktori yang tidak kosong, file asli dalam direktori tersebut akan disembunyikan dan menjadi tidak dapat diakses. Lakukan dengan hati-hati.

        Sebagai contoh, untuk memasang partisi target vdb3 ke direktori /test yang baru dibuat, jalankan perintah mkdir /test && sudo mount /dev/vdb3 /test.
      3. Periksa hasil pemasangan.

        Jalankan perintah lsblk. Jika partisi target memiliki titik pemasangan di kolom MOUNTPOINT, berarti sistem file berhasil dipasang.

  3. Ubah file konfigurasi.

    Edit file <mount_point>/etc/security/limits.conf. Ubah nilai parameter hard nofile dan soft nofile menjadi nilai default 65535. Simpan file dan keluar.

    * soft nofile 65535
    * hard nofile 65535
    root soft nofile 65535
    root hard nofile 65535
    • Tanda bintang (*) berlaku untuk semua pengguna, sedangkan root berlaku untuk pengguna root.

    • hard nofile: Menentukan batas keras jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi nilai parameter kernel <mount point>/proc/sys/fs/nr_open. Jika dilanggar, Anda mungkin tidak dapat login ke instans.

    • soft nofile: Batas saat ini jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi batas hard nofile. Jika dilanggar, konfigurasi ini akan diabaikan.

      Jika nilai soft nofile lebih besar daripada nilai hard nofile, nilai efektif nofile adalah nilai parameter hard nofile.
  4. Sambungkan kembali disk ke Instance ECS asal sebagai disk sistem.

    1. Lepaskan pemasangan sistem file.

      Ganti <mount_point> dengan titik pemasangan yang sebenarnya.

      umount <mount_point>
      Sebagai contoh, jalankan perintah umount /test.
    2. Lepaskan disk sistem yang telah diperbaiki.

      1. Kembali ke Konsol ECS dan buka tab Block Storage pada halaman detail instans yang sehat.

      2. Pada kolom Actions untuk disk sistem yang telah diperbaiki, klik Detach.

      3. Pada kotak dialog Detach Disk, klik OK.

    3. Sambungkan kembali disk sistem yang telah diperbaiki ke instans asal.

      1. Buka tab Block Storage pada halaman detail instans bermasalah dan klik Attach Disk.

      2. Pada halaman Attach to Instance, pilih disk sistem yang telah diperbaiki dari daftar Disk. Konfigurasikan Logon Credentials dan klik Next.

      3. Pada halaman Partition Disk and Create and Mount File Systems, pilih Configure Later untuk menyelesaikan penyambungan.

    4. Jalankan Instance ECS.

  5. Login ke Instance ECS asal dan verifikasi bahwa instans berfungsi secara normal.

Rekomendasi

  • Tangani file sistem inti dengan hati-hati: Sebelum mengubah file sistem kritis, selalu buat snapshot manual. Pastikan Anda memahami risikonya dan hanya lakukan perubahan yang diperlukan.

  • Siapkan Pemantauan Peringatan: Pantau konfigurasi ulimit -n pada instans kritis. Dengan memeriksa secara berkala nilai waktu proses ulimit -n terhadap konfigurasi yang diharapkan, Anda dapat memverifikasi batas resource dan menerima peringatan jika terjadi perubahan yang tidak sah.