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.
nullJika 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.

Jalankan perintah berikut untuk menginstal nscd:
yum install -y nscd
Jalankan perintah seperti pada gambar berikut untuk memeriksa status nscd. Jika hasil seperti gambar berikut ditampilkan, nscd telah diinstal tetapi belum dimulai.

Aktifkan nscd
Jalankan perintah berikut untuk mengaktifkan nscd:
systemctl start nscdJalankan perintah seperti pada gambar berikut untuk memeriksa status nscd. Jika hasil seperti gambar berikut ditampilkan, nscd sedang berjalan.

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
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 |
max-db-size | Ukuran maksimum basis data nscd. Satuan: byte. |
positive-time-to-live dapat diabaikan. TTL yang dikembalikan oleh permintaan DNS harus diutamakan.
Anda dapat menjalankan perintah
nscd -guntuk memeriksa rasio hit cache hanya ketika shared diatur ke tidak.
Periksa hasil caching nscd
Hasil caching saat nscd dinonaktifkan
Jalankan perintah berikut pada instance ECS untuk menangkap paket UDP di port 53:
tcpdump -i any udp and port 53Jalankan perintah berikut pada instance ECS sebanyak tiga kali saat nscd dinonaktifkan:
ping -c 1 -n www.taobao.com#Ping nama domain www.taobao.com.
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.

Hasil caching saat nscd diaktifkan
Jalankan perintah untuk mengaktifkan nscd dan periksa apakah nscd telah diaktifkan.
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
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.
nullSaat 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.
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.