全部产品
Search
文档中心

Alibaba Cloud DNS:Cara mengatasi pembatasan laju permintaan kueri DNS ECS?

更新时间:Dec 17, 2025

Setiap instans Elastic Compute Service (ECS) dalam Virtual Private Cloud (VPC) memiliki batas kueri DNS sebesar 5.000 permintaan per detik. Jika jumlah kueri DNS dari satu instans melebihi ambang batas ini, instans tersebut akan dikenai rate limiting, sehingga Service-Level Agreement (SLA) untuk ketersediaan tidak dapat dijamin. Untuk mengatasi masalah ini, pertimbangkan dua pendekatan berikut:

  • Tambah jumlah Instance ECS sehingga permintaan Kueri DNS dapat didistribusikan ke lebih banyak Instance ECS, sehingga mengurangi jumlah permintaan Kueri DNS untuk setiap Instance ECS.

  • Aktifkan layanan nscd (Name Service Cache Daemon) pada host ECS untuk akselerasi cache.

    Catatan

    Saat layanan nscd diaktifkan, diperlukan waktu lebih lama bagi perubahan pada catatan DNS untuk diterapkan.

Apa itu nscd?

nscd adalah layanan cache sistem yang menyimpan informasi name service, seperti passwd, group, hosts, services, dan netgroup. Layanan ini meningkatkan rasio hit cache sistem dengan mengurangi jumlah kueri name service dan volume lalu lintas, sehingga menghasilkan respons layanan yang lebih cepat. Panduan ini berfokus pada konfigurasi hosts untuk mengurangi jumlah kueri DNS dari instans ECS.

Perintah Linux umum untuk nscd

Perintah

Deskripsi

yum install -y nscd

Instal nscd.

systemctl start nscd

Mulai nscd.

systemctl stop nscd

Hentikan nscd.

systemctl restart nscd

Mulai ulang nscd.

systemctl status nscd

Periksa status operasional nscd.

nscd -g

Mengeluarkan status konfigurasi berbagai parameter dan statistik rasio hit cache setelah mereka diterapkan.

nscd -i

Membatalkan cache yang ditentukan. Anda dapat menentukan passwd, group, hosts, services, netgroup, dll. Contoh: nscd -i hosts.

cat /etc/nscd.conf

Periksa detail konfigurasi nscd saat ini.

vi /etc/nscd.conf

Ubah parameter konfigurasi nscd.

Menginstal nscd

nscd umumnya diinstal secara default di sistem operasi Linux. Jika Anda tidak yakin apakah nscd sudah diinstal pada Instance ECS Anda saat ini, jalankan perintah berikut untuk memeriksanya:

systemctl status nscd # Periksa status berjalan nscd.

Jika hasil deteksi menunjukkan hal berikut, berarti nscd belum terinstal.

image.png

Gunakan perintah berikut untuk menginstal:

yum install -y nscd

image.png

Sekarang jalankan perintah lagi untuk memeriksa status operasional nscd. nscd telah diinstal tetapi belum berjalan.

image.png

Mengaktifkan layanan nscd

Masukkan perintah berikut untuk mengaktifkan layanan nscd:

systemctl start nscd

Sekarang jalankan perintah lagi untuk memeriksa status operasional nscd. nscd sekarang sedang berjalan.

image.png

Catatan

Untuk menginstal nscd pada sistem operasi CentOS atau Red Hat, jalankan perintah: yum install -y nscd.

Untuk menginstal nscd pada sistem operasi Debian atau Ubuntu, jalankan perintah: apt-get install -y nscd.

Parameter konfigurasi nscd

Path file konfigurasi default untuk nscd adalah /etc/nscd.conf. Anda dapat melihat konfigurasi nscd dengan menjalankan perintah berikut:

cat /etc/nscd.conf

image.png

Deskripsi parameter konfigurasi utama

Parameter konfigurasi

Deskripsi

debug-level

reload-count

Berkaitan dengan pembaruan cache aktif. Parameter konfigurasi ini menentukan jumlah kali permintaan cache berhasil secara aktif memeriksa dan memperbarui cache.

paranoia

Mode paranoia. Jika diaktifkan, nscd akan memulai ulang secara berkala.

restart-interval

Jika paranoia diaktifkan, parameter ini menunjukkan interval waktu mulai ulang.

enable-cache

Aktifkan layanan cache.

positive-time-to-live

Waktu hidup untuk cache respons sukses.

negative-time-to-live

Waktu hidup untuk cache respons gagal. Disarankan untuk menyetelnya ke 0 untuk mencegah cache gagal mempengaruhi permintaan bisnis.

check-files

Secara berkala periksa waktu modifikasi file cache seperti /etc/passwd, /etc/group, /etc/hosts. Jika file telah diubah sejak pemeriksaan terakhir, cache dibatalkan.

persistent

Jika diaktifkan, nscd mempertahankan konten cache sebelumnya setelah dimulai ulang. Jika paranoia diaktifkan, disarankan untuk mengaktifkan fitur ini.

shared

Pemetaan memori untuk melayani database nscd dibagikan dengan klien. Defaultnya adalah ya. Jika Anda ingin menggunakan perintah nscd -g untuk memeriksa rasio hit cache, shared perlu disetel ke tidak.

max-db-size

Ukuran maksimum database cache nscd, dalam byte.

Penting
  • positive-time-to-live tidak memiliki arti praktis. Nilai TTL didasarkan pada TTL yang dikembalikan oleh permintaan Kueri DNS.

Menguji efektivitas cache nscd

Menguji dengan nscd dinonaktifkan

  1. Jalankan perintah berikut pada Instance ECS untuk menangkap paket UDP pada port 53:

    tcpdump -i any udp and port 53
  2. Kemudian, dengan nscd dinonaktifkan, jalankan perintah berikut pada Instance ECS beberapa kali, uji tiga kali berturut-turut.

    ping -c 1 -n www.taobao.com # Kirim satu perintah ping ke nama domain www.taobao.com.

    image.png

  3. Periksa hasil pengambilan paket yang sesuai. Anda dapat melihat tiga permintaan Kueri DNS pada port 53, dan setiap permintaan Kueri DNS mengembalikan catatan resolusi domain. Ini membuktikan bahwa catatan Kueri DNS tidak dicache, dan Instance ECS perlu mengirim permintaan Kueri DNS melalui port 53 setiap kali.

    image.png

Menguji dengan nscd diaktifkan

  1. Jalankan perintah mulai untuk mengaktifkan layanan nscd, dan konfirmasikan bahwa nscd diaktifkan menggunakan perintah kueri status.

  2. Dengan nscd diaktifkan, jalankan perintah berikut pada Instance ECS, uji enam kali berturut-turut. Pada saat yang sama, tangkap paket pada port 53 Instance ECS.

    ping -c 1 -n www.taobao.com

    image.png

  3. Periksa hasil pengambilan paket yang sesuai. Anda dapat melihat bahwa hanya satu permintaan Kueri DNS yang ditangkap pada port 53, membuktikan bahwa permintaan Kueri DNS mengenai cache nscd dan tidak mengirim permintaan Kueri DNS melalui port 53.image.png

    Penting

    Selama pengambilan paket, Anda mungkin memperhatikan bahwa bahkan setelah perintah ping selesai, tcpdump masih menangkap paket permintaan Kueri DNS untuk nama domain terkait pada interval tertentu. Hal ini disebabkan oleh mekanisme refresh aktif nscd dan merupakan perilaku normal. Anda dapat menonaktifkan mekanisme refresh aktif dengan menyetel parameter reload-count ke 0.

  4. Anda juga dapat memeriksa statistik hit cache. Jalankan perintah ping beberapa kali dalam periode tertentu, lalu jalankan perintah berikut untuk melihat statistiknya:

    nscd -g # Output konfigurasi semua parameter aktif dan statistik rasio hit cache.

    image.png