main.cf에 있는 목록을 사용한 접미사 성능

main.cf에 있는 목록을 사용한 접미사 성능

postfix의 다양한 옵션에 할당할 항목 목록을 정의하려면 다음과 같이 쉼표로 구분된 목록을 사용할 수 있습니다.

relay_domains = example.com,example.net,example.org

또는 다음과 같은 해시 맵:

relay_domains = hash:/etc/postfix/relay_domains

그런 다음 postmap을 사용하여 해당 키, 값 항목 파일을 bdb 파일로 변환합니다.

내 질문은: 목록을 지정하는 대신 해시 맵을 사용하는 성능상의 이유가 있습니까?

답변1

두 경우 모두 성능이 중요한지 판단할 수 있는 데이터나 지표가 없습니다. 이 두 사건이 어떤 배경 과정을 거쳐서 이루어졌는지 설명하려고 합니다.

postfix 데몬이 실행 중일 때 다음과 같은 이유로 둘 사이에는 차이가 거의 없습니다.

  • 를 사용할 때 main.cfpostfix는 구성 파일을 구문 분석하여 메모리에 저장하고 postfix가 다시 시작되거나 관리자가 postfix reload명령을 내릴 때까지 파일을 다시 확인하지 않습니다.
  • 해시 테이블을 사용할 때 postfix는 테이블을 구문 분석하고 메모리에 저장하며 파일이 변경되었는지 주기적으로 확인합니다. 데이터베이스가 변경된 경우 postfix는 다음 클라이언트 요청을 처리하기 전에 종료되므로 새 프로세스가 새 데이터베이스로 초기화될 수 있습니다.원천

이제 목록을 변경하려면

  • 변경한 후에 main.cf는 를 호출해야 합니다 postfix reload. 마스터 데몬이 구성 파일을 다시 읽고 새 구성을 선택할 수 있도록 하위 프로세스를 종료하도록 합니다.원천
  • 해시 테이블을 변경한 후에는 호출할 필요가 없습니다 postfix reload.

postfix reload아직도 (1) ​​수동으로 호출하여 하위 프로세스를 다시 시작하는 것과 (2) 해시 테이블에 의해 트리거되는 하위 프로세스를 다시 시작하는 것의 차이점을 이해하지 못합니다 .

여기에 읽은 후 몇 가지 지식이 있습니다.postfix 매뉴얼 페이지, 특히데몬 프로세스부분. 이는 (1) 수동 호출을 통해 하위 프로세스를 다시 시작하는 postfix reload것과 (2) 해시 테이블에 의해 트리거되는 하위 프로세스를 다시 시작하는 것의 차이점을 이해하는 데 도움이 됩니다 .

Postfix에는 다음과 같은 마스터 프로세스가 있습니다.주인. 처음으로 호출되어 '마스터' 프로그램으로 사용됩니다. 요청 시 smtpd, qmgr, trivial-rewrite와 같은 다른 데몬을 호출했습니다.

네 가지 종류의 postfix 데몬이 있습니다.

  1. 죽지 않아 main.cf에 대한 변경 사항을 자동으로 적용하지 않는 데몬입니다. postfix reload구성 변경 후 호출하면 프로세스가 이를 다시 읽게 됩니다. 여기에는 다음이 포함됩니다.주인.
  2. 지속 프로세스가 된 데몬은 main.cf에 대한 변경 사항을 자동으로 선택하지 않습니다. postfix reload구성 변경 후 호출하면 프로세스가 이를 다시 읽게 됩니다. 여기에는 다음이 포함됩니다.qmgr,tlsmgr,확인하다.
  3. 한 시간에서 몇 시간 사이의 범위에서 실행될 수 있는 장기 실행 프로세스입니다. 구성 변경 후 호출하면 postfix reload구성 변경 속도가 빨라집니다. 여기에는 다음이 포함됩니다.사소한 재작성,찾다,포스트 스크린,프록시맵
  4. 제한된 시간 동안만 실행되는 단기 실행 프로세스입니다. postfix reload프로세스가 다시 실행될 때 main.cf를 다시 읽으므로 호출이 필요하지 않습니다. 이를 포함하여smtp,smtpd,현지의세 가지 이외의 다른 프로세스는 위의 범주로 분류됩니다.

를 사용하여 main.cf목록을 저장하지만 호출하지 않는 postfix reload경우

  • 데몬 카테고리 4는 수명이 짧기 때문에 프로세스 부활 후 즉시 픽업됩니다.
  • 데몬 카테고리 3은 효과를 얻기까지 약간의 시간이 필요합니다.
  • main.cf데몬 카테고리 1과 2는 다음을 호출할 때까지 다시 읽지 않습니다 postfix reload.

해시 테이블을 사용하여 목록을 저장하고 postmap파일을 편집한 경우

  • 데몬 카테고리 2,3,4는 파일 변경 사항을 감지합니다. 따라서 postfix를 다시 로드할 필요가 없습니다.
  • 데몬 카테고리 1에는 해시 유형 매개변수 값이 없습니다. 따라서 마스터 데몬에는 아무런 영향을 미치지 않습니다.

결론

그렇지 않으면 위의 두 경우 사이의 성능 차이가 거의 없는 것 같습니다. 테이블을 거의 변경하지 않으면 차이를 무시할 수 있습니다. 예외적으로 postfix reload해시 테이블을 자주 수행하거나 변경하는 경우 처리 과정에서 성능 문제가 발생합니다 qmgr. 보다여기그리고여기

추가 정보:Postfix 성능 읽어보기

관련 정보