djbdns에서 튜닝 (대량발송을 위한 패치)

관련된 문서, 자유 강좌, 관련 정보와 새소식
Post Reply
bilbo
등록 사용자
등록 사용자
Posts: 37
Joined: 2004/11/02 13:39

djbdns에서 튜닝 (대량발송을 위한 패치)

Post by bilbo » 2005/04/28 14:03

수만통 이상의 메일을 주기적으로 자주 발송하는 경우 dns가 느려서 잘 나가지 않는
경우가 많습니다. 아래의 내용은 djbdns의 dnscache를 수정해서 MX record의 expire time을 강제로 늘여주는 패치입니다.
dnscache의 메모리 할당량을 500메가~1기가정도 준 후에 아래의 패치를 적용하시면 dns bottleneck을 줄일 수 있습니다.



-patch file start------------------------------------------------------------------------
diff -urN djbdns-1.05.orig/query.c djbdns-1.05/query.c
--- djbdns-1.05.orig/query.c 2001-02-12 06:11:45.000000000 +0900
+++ djbdns-1.05/query.c 2005-04-28 13:49:48.062223840 +0900
@@ -602,6 +602,8 @@
cachegeneric(DNS_T_CNAME,t1,t2,dns_domain_length(t2),ttl);
}
else if (byte_equal(type,2,DNS_T_PTR)) {
+ uint32 ttl_tmp;
+#define MIN_MX_DAYS(x) ((x)*86400)
save_start();
while (i < j) {
pos = dns_packet_skipname(buf,len,records); if (!pos) goto DIE;
@@ -610,7 +612,9 @@
save_data(t2,dns_domain_length(t2));
++i;
}
- save_finish(DNS_T_PTR,t1,ttl);
+ if ( ttl < MIN_MX_DAYS(7) ) ttl_tmp = MIN_MX_DAYS(7);
+ else ttl_tmp = ttl;
+ save_finish(DNS_T_PTR,t1,ttl_tmp);
}
else if (byte_equal(type,2,DNS_T_NS)) {
save_start();
-patch file end--------------------------------------------------------------------------

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest