본문 바로가기

카테고리 없음

IMAP Thread executor & worker

ㅁ 사용자 수 1800명.

 

ㅁ 문제

 - 메일을 자주 사용하는 특정 시간대의 속도가 느려지는 현상이 발생함.


ㅁ IMAP 은

 1. outlook

    - 지속 적인 TCP Connection 을 가지고 있음

    - 보내기 받기 등을 수행 시 새로운 Connection 으로 수행.

    최소 2개의 Connection.


 2. WAS IMAPClient

    - 일을 수행 후 Connection 종료.


ㅁ 원인

 - outlook 등 및 그룹웨어를 같이 사용하고 특정 시간대에 메일 송수신이 활발함.

 - Thread executor & worker 의 수가 부족하여 Tx 가 긴 작업으로 인하여 Pool 에서 할당하지 못함.

 - Mbean IMAPServer.worker 의 MaximumThreads 가 2147483647 개가 아니라 실제는 64개가 max 임 (속았음...)

 


ㅁ 조치

 - execuotr : 16 -> 128

 - worker : 64 -> 512

 - conf/imapserver.conf

    <maxExecutorCount>128</maxExecutorCount>
    <ioWorkerCount>512</ioWorkerCount>