웹메일 구축에 관한 작은 팁

관련된 문서, 자유 강좌, 관련 정보와 새소식
Post Reply
stone92
expert
expert
Posts: 661
Joined: 2004/07/26 09:13
Location: 분당
Contact:

웹메일 구축에 관한 작은 팁

Post by stone92 » 2006/01/09 20:00

글쓰기에 앞서 문서의 모든 데이터는 순수하게 개인적인 테스트에 의한 것이며
테스트 결과에 대해서는 정확하지 않을 수도 있음을 명시하며
언제나 그렇듯이 좋은 의견 항상 감사하게 받아 들이도록 하겠습니다..^^;
존칭은 생략합니다..^^;

Homepage:http://www.linuxstudy.pe.kr
Email: stone@linuxstudy.pe.kr
작성자: 김 경민
작성일: 2006년 1월 9일

1. 테스트 서버 사양 및 환경

OS: CentOS release 4.1 (Final)
CPU: P4 제온 2.8G 1EA
RAM: 1G
HDD: SCSI 10K RPM 36G 1EA, SCSI 10K RPM 73G 1EA
KERNEL: 2.6.15(테스트 시점의 가장 최근 커널임)
웹서버 환경 : apache 1.3.34 + php 4.4.1+mysql 3.23.58
메일서버 환경: QMAIL + mysql+ IMAP(포포리님의 phpmail로 웹메일 구축되어 있음)

완전 같은 환경에서 혼자 비교한 자료이므로 어쩌면 정확할 수도 있으며 아니면 나의 테스트 방법이 틀릴 수도 있을 것이다..^^;

-테스트 방법-
저장 메일수량:6000통(계정 모두 동일)
저장 메일 총용량: 1.7G(계정 모두 동일)
각각의 계정은 ext3파티션과 reiserfs 파티션에 계정의 홈디렉토리 위치함.

2. 비교자료
1.) 파일 시스템 비교
흔히들 웹 메일 서버처럼 다수의 작은 크기의 파일에서는 reiserfs 파일시스템을 추천한다.
물론 나 역시 reiserfs 파일시스템을 선호하는 편이다. 이상하게 의외의 결과가 나왔다. reiserfs 는2.6.15 커널 소스에 있는것을 그대로 사용했다.

php의 imap_sort 함수를 이용하여 메일 박스내의 모든 메일을 리스팅함
좀더 정확한 결과를 위해서 imap 데몬과 웹서버데몬은 테스트1회당 재시작했음.

-결과-
Ext3 : 평균 3.7초 Reiserfs: 평균 4.5초

-결론-
별로 큰 차이는 보이지 않았으나 예상외로 ext3에서의 속도가 조금 잘 나왔다.
하지만 시스템의 구성에 따라 얼마든지 달라질 수 있을 것이다.
시스템에는 궁합이라는게 있으니까..^^;

2.) IMAP서버 버전에 따른 속도 비교
보통 문서에 나오는 imap 서버는 maildir 형태의 메일박스를 사용하므로 보통 imap서버에 maildir 패치를 하거나 maildir 을 지원하는 courier-imap,bincimap 을 사용한다.
필자는 보통 인터넷에 돌아다니는 문서나 초기 포포리님이 만드신 매뉴얼처럼 uw-imap을 사용한다. 시간 나시는 분들은 다른 imap데몬을 이용한 테스트 결과를 알려주면 감사하겠다.

-테스트 방법-
Imap2001a, imap-2002d_HiHi_R2 버전을 이용하여 imap_sort 함수를 이용하여 메일박스내의 모든 메일을 리스팅함.
두버전은 모두 maildir 패치가 되어 있는 상태로 테스트함.

-결과-
Imap2001a: 5초 이내
imap-2002d_HiHi_R2: 측정불가 -.-;
-결론-
imap-2002d_HiHi_R2(이하hihi버전) 은 가급적 웹 메일 서버를 구축 하는데는 사용하지 말 것. 필자도 위의 버전을 사용하다 문제에 봉착했음.

본인이 대충 추론하는 문제는 다음과 같다.
hihi버전과 imap2001a의 차이를 살펴보니 imap데몬의 eml형태의 메일 파일의
처리방법이 달라서 생기는 문제가 아닌가 싶다..
저장되어 있는 파일의 형태를 보도록 하자.

hihi버전:
1134529547.4195_0.도메인:2,
1136161082.15640_0.도메인:2,
Imap2001a 버전:
1136518840.3349_0.도메인,U=2409,W=9174:2,
1136514498.29718_0.도메인,U=528,W=26223:2,

보면 알겠지만 메일 메시지의 UID 값의 처리방식이 두 버전에서 차이가 난다.
imap2001a에 적용된 maildir패치에서는 Maildir 하위에 .uidvalidity 파일에
최근 변경시간과 uid의 MAX값이 기록이 되는 형태로 되어있다.
또한 eml형태의 파일자체에도 UID값이 들어있다.
저장된 메일의 양이 얼마 안됨에도 불구하고 급격히 웹메일의 속도가 떨어진다면
한번 점검해 보기를 바란다.

rokmn3309
등록 사용자
등록 사용자
Posts: 30
Joined: 2004/06/07 15:07
Location: japan

죄송합니다만...

Post by rokmn3309 » 2006/02/27 23:23

안녕하세요.. 좋은 팁 보았습니다.

다름이 아니라. 제가 지금 imap-2002d_HiHi_R2 이 버전을 사용중인데
말씀하신 문제가 생기는것 같거든요..
그래서 상위걸로 업데이트를 할려고 하는데
imap-2004c1랑 imap-2004c1-allmaildir20050315.patch 파일은
구했습니다만은 mysql patch는 없어서 어떻게 해야할지 좀 막막한데요.
글을 읽어 보니 포포리님이 만드신 웹메일 사용하신다고 하셨는데
imap으로 db유저로 로그인 하는 부분을 사용안하시는건가요?
mysql패치에 대한 언급이 없던데, 이 부분을 어떻게 하셨는지 알려 주실 수 있으신지요....

imap-2001a 버전으로 패치들을 가지고 계신다면은 올려 주실 수 있으신지요.

그럼 수고하십시오..

HiHi
등록 사용자
등록 사용자
Posts: 3
Joined: 2004/10/07 23:59

안녕하세요~ imap-2002d_HiHi_R2 제작한 사람입니다~

Post by HiHi » 2006/08/04 12:08

안녕하세요~~ ^^
imap-2002d_HiHi_R2 버젼 제작한 사람입니다.
예전에 제가 쓸일이 있어서 직접 패치를 했었는데, 사용하다보니 메일 갯수가 많아질수록 메일 리스트 속도가 급격히 느려지는 문제가 있네요.
이러한 원인은 메일 리스트를 만들때, imap 자체가 물리적으로 접근해 메일 리스트를 만들기 때문(모든 eml파일을 엑세스)입니다.
이러한 방식은 메일 갯수가 많아지면, 느려질 수 밖에 없습니다.
리스트가 느려지지 않으려면, Exchange 서버처럼, 리스트 정보를 따로 관리해야 합니다. 최근의 imap 이라면 이러한 부분이 패치되지 않았을까 하네요...
아무튼, 패치한지도 오래되고해서, 관련일을 지금은 하지 않아 잊고있었는데, 의외로 쓰시는 분들이 많군요.
시간나면, 수정방법을 찾아보도록 하겠습니다~ ^^

hihkhihk@gmail.com

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests