Sun Java System Messaging Server 6 2005Q4 관리 설명서

SMTP 채널 스레드

키워드: threaddepth,

다중 스레드 SMTP 클라이언트는 각 스레드에 대한 대상별로 보내는 메일을 정렬합니다. threaddepth 키워드를 사용하면 다중 스레드 SMTP 클라이언트에 한 스레드에서 지정된 수의 메일만 처리하도록 지시하여 대상이 같은 메일(일반적으로 한 스레드에서 모두 처리됨)일 경우에도 추가 스레드를 사용하게 할 수 있습니다. 이 키워드의 기본값은 10입니다.

채널의 백로그가 threaddepth의 배 이상으로 증가할 때마다 Job Controller는 해당 채널의 대기열에 포함된 메일 처리를 전담하는 처리량을 높이려고 시도합니다. 다중 스레드 채널의 경우 Job Controller는 해당 채널에 대한 메일을 처리하는 작업에서 새 스레드를 시작하게 합니다. 또는 모든 작업이 해당 채널에 대해 허용된 최대 수의 스레드(tcp_* 채널에 대한 옵션의 MAX_CLIENT_THREADS)를 갖는 경우 새 프로세스를 시작합니다. 단일 스레드 채널의 경우 새 프로세스를 시작합니다. 채널에 대한 작업 제한(maxjobs) 또는 풀에 대한 작업 제한(JOB_LIMIT)에 도달한 경우 Job Controller는 새 작업을 시작하지 않습니다.

기본적으로 threaddepth는 적극적인 작업을 예약하는 방법을 제어합니다. 다음의 두 가지 다른 상황을 고려해 보겠습니다.

(1) 일반(아웃바운드) SMTP 채널

(2) 스마트 호스트에 전달하는 SMTP 채널

Job Controller는 특정 채널을 대상으로 하는 메일을 대상 호스트별로 정렬하고 이러한 대상 호스트의 백로그에 기초하여 메일을 처리하기 위한 작업을 예약합니다.

첫 번째 경우는 많은 수의 대상 호스트가 있고 대상 호스트의 백로그가 대부분 작습니다. 실행되는 스레드의 수가 많으며 aol, yahoo, hotmail 등과 같이 대량의 트래픽이 있을 수 있는 대상 호스트를 제외하고는 모두 제대로 작동합니다. 스레드 깊이가 128인 경우 백로그가 128에 도달하면 yahoo에 전달되는 두 번째 스레드만 가져오게 됩니다. 이는 바람직하지 않습니다.

두 번째 경우는 대상 호스트가 하나만 존재하며 해당 호스트에 많은 수의 스레드를 전달 하는 것이 바람직합니다. 어느 경우든 기본값 10은 너무 작을 수 있습니다.

threaddepth를 사용하면 채널이 연결하는 SMTP 서버에서 여러 동시 연결을 처리할 수 있을 때 데몬 라우터 TCP/IP 채널(단일의 특정 SMTP에 연결하는 TCP/IP 채널)에서 다중 스레딩을 수행하는 데 특히 유용합니다.