각 imap 프로세스를 자동으로 이온화합니다.

각 imap 프로세스를 자동으로 이온화합니다.

프로세스가 시작될 때 프로세스를 이온화하고 싶습니다.

호스팅 환경에서는 이전 Parallels Confixx 서버를 사용합니다. (예, 알고 있습니다. Confixx는 오래되었지만 문제는 아닙니다.)

Express를 사용하여 메일을 보내는데 때로는 프로세스 /usr/bin/imap Maildir가 전체 I/O를 소비하여 CPU 부하가 높아지는 경우도 있습니다. 우리는 항상 ionice –c 3 –p [PID]프로세스를 수동으로 이온화( )하고 I/O가 삭제됩니다. 각 imap 프로세스를 자동으로 이온화하는 가장 좋은 방법은 무엇입니까? 저는 특급 메일 서버에 대한 경험이 많지 않습니다.

답변1

ionice기본 IMAP 프로세스에서 실행하면 됩니다. 이 설정은 하위 프로세스에 상속됩니다.

find /path -printf""어쩌면 페이지 캐시에 메타데이터를 유지하기 위해 매분마다 모든 메일 디렉토리에서 이를 실행하는 것이 도움이 될 수도 있습니다 (데이터가 너무 많아 다른 콘텐츠에 더 많은 캐시가 필요한 경우 제외).

답변2

또 다른 솔루션으로 택배 프로세스를 분리할 수 있습니다.그룹계층 구조를 지정하고 매개변수를 지정합니다(귀하의 경우 IO 대역폭).블록 IO 컨트롤러.

나는 다음에서 파생될 수 있는 특히 간단한 예를 찾았습니다.이 링크.

또한, cpuact, memory, net_prio와 같은 다른 컨트롤러 매개변수를 지정할 수 있습니다. 다음에서 더 많은 콘텐츠를 찾을 수 있습니다.리눅스 커널 문서.

답변3

기본 프로세스의 ionice가 작동하지 않는 것 같아서 "courier-imap" 및 "courier-imap-ssl"에 대한 init 스크립트를 수정했는데 이것이 작동하는 것 같습니다.

case "$1" in
    start)
    if [ "$START" = "yes" ]; then
            log_daemon_msg "Starting $PROGRAM" "$DAEMON"
            umask $IMAP_UMASK
            ulimit -v $IMAP_ULIMITD
            /usr/bin/env - /bin/sh -c " set -a; \
            bindir=${bindir}; \
            . ${sysconfdir}/imapd; \
            if [ "$SSLCONFIG" ]; then . ${sysconfdir}/imapd-ssl; fi; \
            IMAP_STARTTLS=$IMAPDSTARTTLS ; export IMAP_STARTTLS ; \
            PROXY_HOSTNAME=$PROXY_HOSTNAME;
            TLS_PROTOCOL=$TLS_STARTTLS_PROTOCOL ; \

            ionice -c3 /usr/sbin/courierlogger -pid=$PIDFILE -start $LOGGEROPTS \

            $TCPD -address=$ADDRESS \
                    -maxprocs=$MAXDAEMONS -maxperip=$MAXPERIP \
                    $TCPDOPTS \
                    $PORT ${libexecdir}/courier/imaplogin \
                            ${bindir}/imapd $MAILDIRPATH"
            log_end_msg 0
    fi

누구든지 개선을 위한 제안 사항이 있으면 알려주시기 바랍니다.

관련 정보