全部产品
Search
文档中心

:Mengurangi pembatasan permintaan DNS yang dimulai oleh instance ECS

更新时间:Jun 21, 2025

Setiap instance Elastic Compute Service (ECS) dalam virtual private cloud (VPC) diizinkan untuk memulai hingga 5.000 permintaan Sistem Nama Domain (DNS) per detik. Jika batas ini terlampaui, pembatasan dapat dipicu dan tingkat layanan yang dijamin dalam perjanjian tingkat layanan (SLA) mungkin tidak dapat dipertahankan. Untuk mengatasi masalah ini, kami menyarankan Anda menggunakan salah satu dari dua metode berikut:

  • Tingkatkan jumlah instance ECS. Dengan cara ini, permintaan DNS dapat didistribusikan ke lebih banyak instance ECS, sehingga mengurangi jumlah permintaan DNS yang dimulai oleh setiap instance.

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

    null

    Jika nscd diaktifkan, pembaruan catatan DNS akan memerlukan waktu lebih lama untuk diterapkan.

Apa itu nscd?

Sebagai layanan caching sistem operasi, nscd menyediakan caching untuk permintaan layanan nama seperti permintaan untuk basis data passwd, group, hosts, services, dan netgroup. nscd meningkatkan rasio hit cache, sehingga mengurangi jumlah permintaan layanan nama dan mempercepat respons layanan. Topik ini menjelaskan cara mengonfigurasi basis data hosts untuk mengurangi permintaan DNS yang dimulai oleh instance ECS.

Perintah Linux umum terkait nscd

Perintah

Deskripsi

yum install -y nscd

Menginstal nscd.

systemctl start nscd

Memulai nscd.

systemctl stop nscd

Menghentikan nscd.

systemctl restart nscd

Memulai ulang nscd.

systemctl status nscd

Memeriksa status nscd.

nscd -g

Mengembalikan konfigurasi setiap parameter dan rasio hit cache setelah konfigurasi diterapkan.

nscd -i

Menghapus data cache tertentu. Anda dapat menghapus data cache dalam basis data passwd, group, hosts, services, atau netgroup. Sebagai contoh, Anda dapat menjalankan perintah nscd -i hosts untuk menghapus data cache dalam basis data hosts.

cat /etc/nscd.conf

Memeriksa konfigurasi nscd.

vi /etc/nscd.conf

Memodifikasi konfigurasi nscd.

Instal nscd

Secara default, nscd umumnya sudah diinstal dalam sistem operasi Linux. Jika Anda tidak yakin apakah nscd telah diinstal pada instance ECS, jalankan perintah berikut:

systemctl status nscd#Periksa status nscd.

Jika hasil seperti gambar berikut ditampilkan, nscd belum diinstal.

image.png

Jalankan perintah berikut untuk menginstal nscd:

yum install -y nscd

image.png

Jalankan perintah seperti pada gambar berikut untuk memeriksa status nscd. Jika hasil seperti gambar berikut ditampilkan, nscd telah diinstal tetapi belum dimulai.

image.png

Aktifkan nscd

Jalankan perintah berikut untuk mengaktifkan nscd:

systemctl start nscd

Jalankan perintah seperti pada gambar berikut untuk memeriksa status nscd. Jika hasil seperti gambar berikut ditampilkan, nscd sedang berjalan.

image.png

null

Untuk menginstal nscd di Community Enterprise Operating System (CentOS) atau Red Hat Enterprise Linux, jalankan perintah yum install -y nscd.

Untuk menginstal nscd di Debian atau Ubuntu, jalankan perintah apt-get install -y nscd.

Konfigurasi nscd

File /etc/nscd.conf adalah file konfigurasi default nscd. Jalankan perintah berikut untuk melihat konfigurasi nscd:

cat /etc/nscd.conf

image.png

Parameter utama

Parameter

Deskripsi

debug-level

reload-count

Menentukan jumlah maksimum kali sistem secara otomatis memeriksa data cache permintaan DNS yang berhasil dan memperbarui data cache tersebut.

paranoia

Menentukan apakah mode paranoia diaktifkan. Jika mode ini diaktifkan, nscd akan memulai ulang secara berkala.

restart-interval

Menentukan interval pemulai ulang jika mode paranoia diaktifkan.

enable-cache

Menentukan apakah layanan cache diaktifkan.

positive-time-to-live

Menentukan time-to-live (TTL) data cache permintaan DNS yang berhasil.

negative-time-to-live

Menentukan TTL data cache permintaan DNS yang gagal. Kami menyarankan Anda untuk menetapkan parameter ini ke 0 untuk mencegah layanan Anda terpengaruh.

check-files

Menentukan apakah akan memeriksa waktu modifikasi file cache. File-file tersebut mencakup file /etc/passwd, /etc/group, dan /etc/hosts. Jika file diubah setelah pemeriksaan terakhir, file cache akan dibersihkan.

persistent

Menentukan apakah akan mempertahankan data cache setelah nscd memulai ulang. Kami menyarankan Anda untuk mengaktifkan fitur ini jika mode paranoia diaktifkan.

shared

Menentukan apakah akan berbagi pemetaan memori basis data nscd dengan klien. Nilai default adalah ya. Jika Anda ingin menjalankan perintah nscd -g untuk memeriksa rasio hit cache, atur shared ke tidak.

max-db-size

Ukuran maksimum basis data nscd. Satuan: byte.

null
  • positive-time-to-live dapat diabaikan. TTL yang dikembalikan oleh permintaan DNS harus diutamakan.

  • Anda dapat menjalankan perintah nscd -g untuk memeriksa rasio hit cache hanya ketika shared diatur ke tidak.

Periksa hasil caching nscd

Hasil caching saat nscd dinonaktifkan

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

    tcpdump -i any udp and port 53
  2. Jalankan perintah berikut pada instance ECS sebanyak tiga kali saat nscd dinonaktifkan:

    ping -c 1 -n www.taobao.com#Ping nama domain www.taobao.com.

    image.png

  3. Lihat paket UDP yang ditangkap. Anda dapat menemukan bahwa tiga permintaan DNS dikirim melalui port 53, dan setiap permintaan DNS direspons dengan catatan DNS. Ini menunjukkan bahwa catatan DNS tidak di-cache. Akibatnya, instance ECS perlu mengirim permintaan DNS ke port 53 setiap kali.

    image.png

Hasil caching saat nscd diaktifkan

  1. Jalankan perintah untuk mengaktifkan nscd dan periksa apakah nscd telah diaktifkan.

  2. Jalankan perintah berikut pada instance ECS enam kali berturut-turut saat nscd diaktifkan: Tangkap paket di port 53 instance ECS.

    ping -c 1 -n www.taobao.com

    image.png

  3. Lihat paket yang ditangkap. Anda dapat menemukan bahwa hanya permintaan DNS pertama yang dikirim ke port 53. Ini menunjukkan bahwa permintaan DNS berikutnya mengenai catatan DNS yang di-cache oleh nscd dan tidak dikirim melalui port 53.image.png

    null

    Saat menangkap paket, Anda akan menemukan bahwa meskipun Anda telah melakukan ping ke nama domain, perintah tcpdump masih dapat menangkap paket permintaan DNS untuk nama domain tersebut pada interval reguler. Hal ini disebabkan oleh mekanisme reload otomatis nscd, yang merupakan fenomena normal. Anda dapat menetapkan reload-count ke 0 untuk menonaktifkan mekanisme reload otomatis.

  4. Jalankan perintah berikut untuk memeriksa situasi hit cache setelah Anda mem-ping nama domain beberapa kali berturut-turut:

    nscd -g# Mengembalikan konfigurasi setiap parameter dan rasio hit cache setelah konfigurasi diterapkan.

    image.png