개발노트

고즐의 개발 및 서버 개발 노트

Webmin Scheduled Cron Jobs 메뉴 20초 로딩 지연 해결 방법

# WebminCronDelayFix # WebminPerformanceTuning # ScheduledCronJobsSlow

Tips 2025.12.24 1일 전 12 회 읽음 1



시스템 설정 최적화를 통한 조회 지연 해결

nsswitch 설정 수정과 불필요한 외부 인증 서비스 참조 제거를 통해 사용자 조회 단계의 타임아웃을 차단한다.


nsswitch.conf 파일의 인증 항목 정리

리눅스 시스템에서 사용자 및 그룹 정보를 조회할 때 외부 인증 서버를 참조하는 설정이 포함되어 있으면 통신 응답 대기 시간이 발생한다. 특히 클라우드 환경에서 sss(System Security Services Daemon) 설정이 활성화되어 있으나 실제 서버가 연결되지 않은 경우 시스템은 정확히 20초의 타임아웃을 채운 뒤에야 다음 단계로 넘어간다.

이를 해결하기 위해 터미널에서 설정 파일을 열어 passwd, shadow, group 항목 뒤에 붙은 sss를 삭제하고 오직 files만 남기도록 수정해야 한다. netgroup 항목과 hosts 항목에 포함된 불필요한 모듈 참조 역시 지연의 원인이 되므로 함께 정리하여 로컬 파일 참조 우선순위를 높여야 한다.

 vi /etc/nsswitch.conf passwd: files shadow: files group: files 


sssd 서비스 비활성화 및 설정 적용

설정 파일 수정 후에는 시스템에 설치된 sssd 서비스가 더 이상 작동하지 않도록 중지하고 부팅 시 자동 실행을 비활성화하는 조치가 병행되어야 한다. 만약 서비스 유닛이 로드되지 않았다는 메시지가 출력되더라도 설정 파일 내의 참조를 지우는 것이 성능 개선에 있어 더 본질적인 역할을 수행한다.

변경된 이름 서비스 설정이 즉시 시스템 전체에 반영되도록 nscd(Name Service Cache Daemon) 서비스를 재시작하거나 Webmin 데몬을 다시 구동한다. 시스템 레벨에서 crontab 명령어의 실행 속도를 직접 측정하여 지연이 사라졌는지 최종적으로 검증하는 과정이 필요하다.

 systemctl stop sssd systemctl disable sssd systemctl restart webmin 


Webmin 모듈 설정 변경으로 UI 응답성 개선

크론 모듈의 상세 옵션을 조정하여 페이지 렌더링 시 발생하는 불필요한 연산과 외부 조회를 최소화한다.


프로세스 매칭 및 사용자 이름 조회 차단

Webmin의 Scheduled Cron Jobs 모듈은 기본적으로 각 작업과 연결된 실제 프로세스를 확인하고 사용자 번호를 이름으로 변환하는 과정을 거친다. 이 과정에서 발생하는 시스템 함수 호출은 nsswitch 설정과 맞물려 심각한 속도 저하를 유발하며 특히 작업 목록이 많을수록 지연 시간은 비례하여 증가한다.

모듈 설정 내 Configurable options 메뉴에서 Match usernames when finding job processes 옵션을 No로 변경하여 불필요한 대조 작업을 생략해야 한다. 또한 Show user names for cron jobs 항목을 비활성화하거나 /etc/passwd 파일만 참조하도록 강제하면 텍스트 변환에 소요되는 지연 시간을 완전히 제거할 수 있다.


스케줄 계산 및 출력 제한 설정

모든 크론 작업의 다음 실행 예정 시간을 실시간으로 계산하여 표시하는 Show next time each job will run 기능은 사용자 경험을 높여주지만 CPU 자원을 과도하게 소모한다. 해당 기능을 꺼둠으로써 페이지 로드 시 발생하는 서버 측의 부하를 낮추고 인터페이스의 즉각적인 응답을 유도할 수 있다.

한 페이지에 표시할 최대 작업 수를 제한하고 무제한 표시 옵션을 끄는 것 역시 대규모 시스템 환경에서는 필수적인 조치이다. 브라우저 렌더링 부담을 줄이고 서버와 클라이언트 사이의 데이터 통신 효율을 높이면 전반적인 관리 도구의 구동 속도가 눈에 띄게 개선된다.

  • Match usernames when finding job processes: No 설정
  • Show next time each job will run: No 설정
  • Show user names for cron jobs: No 설정


네트워크 및 DNS 타임아웃 근본 원인 제거

Webmin 자체의 DNS 역조회 기능을 수동으로 비활성화하여 호스트네임 해석 과정의 병목을 제거한다.


Webmin 서비스의 DNS Lookup 비활성화

Webmin은 보안 기록과 인터페이스 표시를 위해 접속자의 IP 주소를 호스트네임으로 변환하려는 역조회 시도를 수행한다. DNS 서버 응답이 원활하지 않거나 search 도메인이 설정된 특수한 클라우드 환경에서는 이 과정에서 네트워크 타임아웃이 발생하여 모든 페이지 전환이 20초씩 지연된다.

miniserv.conf 설정 파일 내에 직접 dns_lookup=0 설정을 추가하거나 수정하여 시스템이 외부 서버에 질의하지 않도록 강제해야 한다. 이는 관리자 UI 내부의 메뉴에서 설정하는 것보다 더 확실하게 하부 엔진에 명령을 전달하는 방법이며 서비스 재시작 후에 즉시 효과가 나타난다.

 vi /etc/webmin/miniserv.conf dns_lookup=0 systemctl restart webmin 


임시 파일 정리 및 최종 검증

모든 설정이 완료된 후에도 속도가 개선되지 않는다면 /tmp/.webmin 디렉토리에 저장된 낡은 캐시 데이터가 원인일 수 있다. Webmin 서비스를 중지한 상태에서 관련 임시 디렉토리와 모듈 캐시 파일을 강제로 삭제하여 깨끗한 상태에서 새로운 설정을 로드하도록 유도한다.

마지막으로 strace 명령어를 사용하여 Webmin 프로세스가 특정 네트워크 주소나 파일 경로에서 멈춰 있는지 모니터링한다. 타임아웃을 의미하는 긴 대기 시간이 사라지고 페이지가 즉시 렌더링된다면 시스템과 관리 도구 사이의 모든 지연 요소가 성공적으로 제거된 것이다.

 rm -rf /tmp/.webmin rm -rf /var/webmin/module_cron systemctl start webmin 


결론은 설정 문제

저의 경우에는 설정 문제로 인해 생긴 문제 이므로 아래 부분을 먼저 확인하여 설정 후 저장 해 주세요.







문의답변