Deskripsi masalah
Kegagalan koneksi jarak jauh:
Saat menghubungkan ke instans Elastic Computing Service (ECS) menggunakan Secure Shell (SSH) atau Workbench, koneksi ditolak atau timeout sehingga sesi tidak dapat dibuat.
Saat login melalui Virtual Network Computing (VNC), muncul pesan "System error" setelah memasukkan username dan password yang benar, dan proses login gagal.
Error aplikasi:
Log aplikasi atau output command line menampilkan error "Too many open files".

Penyebab
Masalah ini disebabkan oleh batas resource nofile yang terlalu ketat. Parameter nofile dalam file /etc/security/limits.conf menentukan jumlah maksimum file yang dapat dibuka oleh suatu proses. Jika nilai ini diatur terlalu rendah, proses yang melebihi batas tersebut akan melaporkan error atau gagal login.
Solusi
Jika Anda masih dapat login ke instans, ubah langsung file konfigurasinya. Jika tidak dapat login, sambungkan System Disk ke instans lain untuk memperbaikinya.
Jika Anda dapat login ke instans
Login ke instans ECS sebagai pengguna root.
Buka halaman ECS console - Instances. Di pojok kiri atas halaman, pilih wilayah dan kelompok sumber daya dari instans target.
Buka halaman detail instans target, klik Connect, lalu pilih Workbench. Ikuti petunjuk di layar untuk login sebagai pengguna root dan buka terminal.
Ubah file konfigurasi.
Edit file
/etc/security/limits.conf. Ubah nilai parameterhard nofiledansoft nofilemenjadi nilai default65535, lalu simpan file dan keluar.* soft nofile 65535 * hard nofile 65535 root soft nofile 65535 root hard nofile 65535*berlaku untuk semua pengguna standar, sedangkanrootberlaku untuk pengguna root.hard nofile: Ini adalah batas keras jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi batas yang ditetapkan oleh parameter kernel/proc/sys/fs/nr_open. Melebihi batas ini dapat mencegah Anda login ke instans.soft nofile: Ini adalah batas saat ini jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi batashard nofile. Jika melebihi, konfigurasi akan diabaikan.Jika nilai
soft nofilediatur lebih tinggi daripada nilaihard nofile, maka nilaihard nofileyang digunakan sebagai batas efektif.
Terapkan konfigurasi baru.
Logout lalu login kembali ke instans ECS dengan akun pengguna target untuk menerapkan perubahan.
Jalankan
sudo ulimit -n. Output65535menunjukkan bahwa batasnofiletelah diperbarui.
Restart aplikasi terkait dan pastikan aplikasi berfungsi dengan benar.
Jika Anda tidak dapat login ke instans
Jika tersedia Snapshot historis dari System Disk, pertama-tama buat snapshot baru untuk backup data saat ini. Kemudian, kembalikan sistem disk menggunakan snapshot historis dan verifikasi bahwa instans telah dipulihkan.
Jika tidak tersedia Snapshot historis, Anda memerlukan instans Linux yang sehat di Zona yang sama dengan instans bermasalah. Anda akan menyambungkan sistem disk yang bermasalah ke instans sehat tersebut sebagai Data Disk untuk mengubah parameter nofile.
Lepaskan sistem disk.
Pastikan instans bermasalah berada dalam status Stopped, lalu ikuti langkah-langkah berikut:
Untuk mencegah kehilangan data akibat operasi tidak sengaja, kami menyarankan Anda membuat snapshot dari sistem disk untuk mencadangkan data saat ini.
Buka halaman ECS console - Instances. Di pojok kiri atas halaman, pilih wilayah dan kelompok sumber daya dari instans target.
Klik ID instans bermasalah untuk membuka halaman Instance Details, lalu klik tab Block Storage.
Pada bagian System Disk, temukan kolom Actions dan pilih .
Pada dialog Detach Cloud Disk, konfirmasi informasi lalu klik OK. Disk berhasil dilepas ketika status instans berubah menjadi No System Disk.
Sambungkan disk sebagai Data Disk ke instans yang sehat.
Pastikan instans sehat berada dalam status Running, lalu ikuti langkah-langkah berikut:
Sambungkan sistem disk bermasalah ke instans sehat.
Klik ID instans sehat untuk membuka halaman detailnya.
Klik tab Block Storage, lalu klik Attach Cloud Disk.
Pada halaman Attach to Instance, pilih sistem disk yang telah dilepas di bagian Disk, lalu klik Next.
Pada halaman Partition Disk and Create and Mount File Systems, pilih Configure Later untuk menyelesaikan penyambungan.
Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk login sebagai pengguna root dan buka terminal.
Pasang sistem file.
Identifikasi nama partisi dari disk bermasalah.
lsblk -fvda ├─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-60ab4c3a4c78Dalam contoh ini, disk bermasalah adalah
vdb, dan partisi root-nya adalahvdb3. Inilah partisi yang perlu dipasang. Partisi-partisi tersebut dijelaskan sebagai berikut:vdb1/vdb2: Berisi file boot sistem dan dapat diabaikan.vdb3: Berisi file sistem operasi dan data. Partisi ini harus dipasang.
Buat direktori dan pasang sistem file.
mkdir <mount_directory> && sudo mount /dev/<partition_name> <mount_directory>Parameter
Deskripsi
<partition_name>Ganti dengan nama partisi root dari disk bermasalah yang telah Anda identifikasi pada langkah sebelumnya.
<mount_directory>Direktori mount kustom. Harus berupa path kosong yang dimulai dengan
/. Anda dapat menyesuaikan namanya, tetapi harus unik.PentingPada direktori yang tidak kosong, file aslinya akan disembunyikan dan tidak dapat dibaca. Lakukan dengan hati-hati.
Sebagai contoh, untuk memasang partisi target
vdb3ke direktori baru bernama/test, jalankanmkdir /test && sudo mount /dev/vdb3 /test.Periksa apakah sistem file telah dipasang.
Jalankan perintah
lsblk. Jika partisi target memiliki direktori mount yang tercantum (MOUNTPOINT), berarti sistem file telah berhasil dipasang.
Ubah file konfigurasi.
Buka file
<mount_directory>/etc/security/limits.confuntuk diedit. Ubah nilai parameterhard nofiledansoft nofilemenjadi nilai default65535, lalu simpan file dan keluar.* soft nofile 65535 * hard nofile 65535 root soft nofile 65535 root hard nofile 65535*berlaku untuk semua pengguna standar, sedangkanrootberlaku untuk pengguna root.hard nofile: Ini adalah batas keras jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi batas yang ditetapkan oleh parameter kernel/proc/sys/fs/nr_open. Jika melebihi, Anda mungkin tidak dapat login ke instans setelah direstart.soft nofile: Ini adalah batas saat ini jumlah file yang dapat dibuka. Nilai ini tidak boleh melebihi batashard nofile. Jika melebihi, konfigurasi akan diabaikan.Jika nilai
soft nofilediatur lebih tinggi daripada nilaihard nofile, maka nilaihard nofileyang digunakan sebagai batas efektif.
Sambungkan kembali disk ke instans ECS asal sebagai sistem disk.
Lepaskan sistem file.
Ganti
<mount_directory>dengan path mount yang sebenarnya.umount <mount_directory>Untuk contoh ini, Anda akan menjalankan
umount /test.Lepaskan sistem disk yang telah diperbaiki.
Kembali ke Konsol ECS dan buka tab Block Storage pada halaman detail instans sehat.
Pada kolom Actions untuk sistem disk yang telah diperbaiki, klik Detach.
Pada dialog Detach Cloud Disk, klik OK.
Sambungkan kembali sistem disk yang telah diperbaiki ke instans asal.
Buka tab Block Storage pada halaman detail instans bermasalah dan klik Attach Cloud Disk.
Pada halaman Attach to Instance, pilih sistem disk yang telah diperbaiki di bagian Disk, konfigurasikan Logon Credentials, lalu klik Next.
Pada halaman Partition Disk and Create and Mount File Systems, pilih Configure Later untuk menyelesaikan penyambungan.
Jalankan instans ECS.
Login ke instans ECS asal dan verifikasi bahwa masalah telah teratasi.
Rekomendasi
Tangani file sistem inti dengan hati-hati: Sebelum mengubah file sistem inti apa pun, selalu buat snapshot untuk mencadangkan data Anda. Pastikan perubahan tersebut memang diperlukan dan pahami risiko potensialnya. Jangan ubah parameter sistem yang tidak Anda pahami.
Pemantauan dan peringatan: Untuk stabilitas dan keamanan sistem inti Anda, pertimbangkan untuk menerapkan mekanisme pemantauan terhadap konfigurasi
ulimit -npada semua instans inti. Dengan memeriksa secara berkala nilai runtimeulimit -nterhadap konfigurasi yang diharapkan, Anda dapat memastikan bahwa batas resource sistem memenuhi standar Anda dan menerima peringatan tepat waktu jika terjadi perubahan yang tidak sah.
> Detach