RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'멀티큐'에 해당되는 글 1
multi-queue?

 리눅스의 sendmail을 이용하여 메일을 발송하면 /var/spool/mqueue/ 디렉토리에 내용을 저장한 뒤에 SMTP로 이용하여 메일을 보내고 완료되면 삭제되는 방식이다.
 소규모 메일 서버라면 상관이 없겠지만 바로바로 발송이 완료되어 삭제가 되어서 큰 문제는 생기지 않지만, 회사의 홍보물 등의 대량으로 뿌리는 메일일 경우에는 문제가 발생할 수도 있다.
 적게는 몇 천, 많게는 몇 만건이상의 메일이 /var/spool/mqueue/ 디렉토리에 쌓이게 되고 이는 성능저하와 시스템 불안정을 초래하기도 한다. 특히나 상대방이 스팸(?) 메일을 받기 싫다고 이상한 메일 주소를 적으면 기하급수적으로 쌓이게 된다.

mailq 명령어를 치면 끝도 없이 올라가는 미발송 쿼리를 볼 수 있다.

 이러한 단점을 해소 하기 위한 것이 바로 multi queue 인것이다. 쉽게 말해서는 /var/spool/mqueue/q1 ,q2, q3 ... 디렉토리를 생성하여 한 디렉토리에 부하가 걸리는 것을 방지하여 병목현상을 줄인다고 생각하면 된다.
그렇다면 장점은 무엇인가?

첫번째, 디렉토리 분산으로 하나의 디스크 파티션을 사용하였을때 생길 수 있는 병목현상을 줄인다.
두번째, queue runner(메일 발송이 안된 메일을 다시 보내기 위한 데몬)이 다중으로 처리하여 효율성을 높힐 수 있다.
세번째, 한 디렉토리에 많은 파일이 있을 때 생기는 속도 저하를 피할 수 있다.

sendmail 8.10버전 이 후버전 부터는 multi queue를 지원하므로 대용량 메일 발송 서버라면 필히 설정을 하도록 하자.

가장 먼저 sendmail 버전부터 확인하고 시작하자.
# echo \$Z | /usr/sbin/sendmail -bt -d0

병렬처리 할 디렉토리 생성
# mkdir /var/spool/mqueue/q{1,2,3,4,5,6,7,8,9}

sendmail QueueDirectory 설정
# vi /etc/mail/sendmail.cf
# queue directory
O QueueDirectory=/var/spool/mqueue/q*

sendmail 재시작
# service sendmail restart

정상적으로 mail queue가 설정이 되어있는지 확인
# [uzoogom]root:~ > mailq
/var/spool/mqueue/q1 is empty
/var/spool/mqueue/q2 is empty
/var/spool/mqueue/q3 is empty
/var/spool/mqueue/q4 is empty
/var/spool/mqueue/q5 is empty
/var/spool/mqueue/q6 is empty
/var/spool/mqueue/q7 is empty
/var/spool/mqueue/q8 is empty
/var/spool/mqueue/q9 is empty

이걸로 완료.
다 기능에 비해서 설정이 무지 쉬우니 왠만하면 꼭 해주자!
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/01   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)