smtpd 데몬에 분기가 너무 많습니까?

smtpd 데몬에 분기가 너무 많습니까?

smtpd내 웹 서버의 프로세스 목록에 많은 분기가 있습니다. 무슨 뜻이에요?

내 편지함이 꽉 찼나요?

   postfix   2662  0.0  0.9 106336  4856 ?        S    17:37   0:00 smtpd -n 
   smtp -t inet -u -c -o stress yes
   postfix   2800  0.0  0.9 106336  4860 ?        S    15:59   0:00 smtpd -n 
   smtp -t inet -u -c -o stress yes
   postfix   3644  0.0  0.9 106336  4864 ?        S    13:47   0:00 smtpd -n 
   smtp -t inet -u -c -o stress 
   postfix   3732  0.0  0.9 106336  4872 ?        S    14:36   0:00 smtpd -n 
   smtp -t inet -u -c -o stress yes
   postfix   3835  0.0  0.9 106336  4868 ?        S    14:36   0:00 smtpd -n 
   smtp -t inet -u -c -o stress yes
   postfix   4309  0.0  0.9 106336  4864 ?        S    13:48   0:00 smtpd 
   -n smtp -t inet -u -c -o stress 
   postfix   4603  0.0  0.9 106336  4860 ?        S    16:13   0:00 smtpd -n 
   smtp -t inet -u -c -o stress yes
   postfix   4843  0.0  0.9 106336  4864 ?        S    13:49   0:00 smtpd -n 
   smtp -t inet -u -c -o stress 

내 프로세스 목록에는 이와 같은 줄이 많이 있습니다. pstree의 출력은 다음과 같습니다.

 ├─master─┬─anvil
 │        ├─cleanup
 │        ├─pickup
 │        ├─proxymap
 │        ├─qmgr
 │        └─100*[smtpd]

편집: 최근에 외부 IP의 localhost에서 수신하도록 mysql을 변경했습니다. 이제 메일 로그에 다음 오류가 표시됩니다.

warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on   
'127.0.0.1' (111)
May 21 22:23:00 postfix/trivial-rewrite[15741]: fatal: mysql:/etc/postfix/mysql-   
virtual_mailbox_domains.cf(0,lock|fold_fix): table lookup problem
May 21 22:23:01  postfix/smtpd[31036]: warning: problem talking to service rewrite:    
Success
May 21 22:23:01  postfix/smtpd[30757]: warning: problem talking to service 
rewrite:     
Connection reset by peer

내 로그가 넘쳐서 이미 600MB를 넘었습니다. 외부 IP를 수신하도록 postfix를 어떻게 변경합니까? localhost가 아닌 내 집 위치에서 mysql에 연결해야 합니까?

답변1

smtpd는 들어오는 메일(로컬 또는 원격)을 처리하기 위해 Postfix에 의해 실행됩니다. 한 번에 100개의 메일을 실행하는 경우 서버가 많은 메일을 처리하고 있는 것입니다. 메일이 그렇게 많이 생성되지 않는다고 생각한다면 서버가 반송된 메일을 많이 받고 있거나 사용자가 인식하지 못하는 메일을 많이 보내고 있는 것일 수 있습니다.

smtpd 프로세스 수의 기본 제한은 100이며 항상 이 제한에 도달하는 것 같습니다.

접미사 배치를 확인하여 수행 중인 작업을 확인하세요.

이것이 합법적인 연결이지만 사용할 수 있는 연결 수를 줄이고 싶은 경우,

/etc/postfix/main.cf:
    default_process_limit = 10

제한사항을 변경하세요.

업데이트 결과 문제가 MySQL 연결과 관련된 것으로 나타났습니다. 다른 답변과 마찬가지로 127.0.0.1 및 외부 IP 주소를 수신하도록 MySQL을 수정할 수 있습니다. MySQL이 로컬 연결을 수신하는 것을 중지하는 것은 드문 일입니다.

MySQL의 경우 바인드 주소를 0.0.0.0으로 설정하여 모든 인터페이스를 강제로 수신하도록 하거나 구성 파일의 바인드 주소 섹션을 주석 처리합니다(동일한 효과 달성).

답변2

오류 로그에서 인용한 오류는 Postfix가 127.0.0.1의 MySQL 서버에 연결할 수 없다는 내용입니다. 이는 MySQL 서버에 127.0.0.1에서 수신 대기하지 말라고 지시했기 때문입니다. 프로세스 수가 많은 이유는 가상 사서함 조회를 위해 MySQL을 쿼리하려는 시도가 여러 번 실패했기 때문일 수 있습니다.

MySQL이 실제로 수신 대기 중인 주소를 사용하여 MySQL 서버에 연결을 시도하도록 Postfix에 지시해야 합니다. /etc/hosts파일에 호스트 이름 항목이 있으면 해당 항목을 사용하십시오 . 그렇지 않으면 MySQL이 수신 대기하도록 구성한 IP 주소를 사용하십시오.

alias_maps = mysql:/etc/postfix/mysql-aliases.cfPostfix 파일이 있다고 가정 하면 다음과 같이 main.cf업데이트하면 됩니다 ./etc/postfix/mysql-aliases.cf

hosts = a.b.c.d

a.b.c.dMySQL을 수신하도록 구성한 주소는 어디에 있습니까?

관련 정보