Apache 웹 서버 성능 최적화: Prefork 및 Worker MPM 설정 가이드



아파치 웹 서버(Apache HTTP Server)에서 프로세스 수 조절은 웹 서버의 성능을 최적화하고 안정성을 높이기 위해 중요한 작업입니다. 
서버의 트래픽, 사용 환경, 리소스에 따라 적절한 프로세스 수를 설정하면 서버가 더 효율적으로 동작할 수 있습니다. 
이 글에서는 Apache의 주요 멀티 프로세싱 모듈(MPM)인 Prefork와 Worker에서 프로세스 수를 조절하는 방법을 살펴보겠습니다.

---
### Apache의 MPM 종류
Apache는 요청을 처리하는 방식을 결정하는 **멀티 프로세싱 모듈(MPM)**을 제공합니다. 대표적인 MPM은 아래와 같습니다:

- Prefork MPM: 각 요청을 별도의 프로세스로 처리하는 방식. 메모리 사용이 높지만, 각 프로세스가 독립적이어서 안정성이 높습니다.
- Worker MPM: 하나의 프로세스 내에서 여러 스레드로 요청을 처리하는 방식. 메모리 효율이 뛰어나지만, 스레드가 공유하는 리소스에 대한 주의가 필요
- Event MPM: Worker MPM의 확장형으로, 비동기 요청을 더 효율적으로 처리할 수 있습니다.

---
# Prefork MPM 설정
**Prefork MPM**은 요청마다 개별 프로세스를 생성하여 처리합니다. 
이 설정을 통해 각 요청이 독립적으로 처리되므로 메모리 사용이 많지만, 안정성이 높은 방식입니다.

1. 설정 파일 열기: /etc/httpd/conf/httpd.conf 또는 /etc/apache2/apache2.conf 파일을 편집기로 엽니다.
2. Prefork 설정 추가 및 수정:
```
<IfModule prefork.c>
    StartServers       5            # 시작 시 생성할 프로세스 수
    MinSpareServers    5            # 최소 유휴 프로세스 수
    MaxSpareServers    10           # 최대 유휴 프로세스 수
    MaxRequestWorkers  150          # 동시에 처리할 최대 클라이언트 수
    MaxConnectionsPerChild 0        # 각 프로세스의 최대 요청 수 (0은 무제한)
</IfModule>
```
3. Apache 재시작: 설정을 저장하고, Apache를 재시작하여 변경 사항을 적용합니다.
```
sudo systemctl restart apache2
```
( 시스템적으로 설치되어있으면 위 명령어, 아니라면 설치 경로에서 재시작 필요 ) 

---
# Worker MPM 설정
Worker MPM은 하나의 프로세스 내에서 여러 스레드가 동작하여 여러 요청을 처리합니다. 더 적은 메모리를 사용하며, 많은 동시 접속을 효율적으로 처리할 수 있습니다.

1. 설정 파일 열기: /etc/httpd/conf/httpd.conf 또는 /etc/apache2/apache2.conf 파일을 편집기로 엽니다.
2. Worker 설정 추가 및 수정:
```
<IfModule worker.c>
    StartServers        3               # 시작 시 생성할 프로세스 수
    MaxRequestWorkers   150             # 동시에 처리할 최대 클라이언트 수
    MinSpareThreads     75              # 최소 유휴 스레드 수
    MaxSpareThreads     250             # 최대 유휴 스레드 수
    ThreadsPerChild     25              # 각 프로세스에 생성될 스레드 수
    MaxConnectionsPerChild 0            # 각 프로세스의 최대 요청 수 (0은 무제한)
</IfModule>

```
3. Apache 재시작: 설정을 저장하고, Apache를 재시작하여 변경 사항을 적용합니다.
```
sudo systemctl restart apache2
```
( 시스템적으로 설치되어있으면 위 명령어, 아니라면 설치 경로에서 재시작 필요 ) 

---
## 설정 시 주의사항
- 서버 리소스 고려: 사용 중인 서버의 CPU와 메모리 크기를 고려하여 설정을 조정하세요.
- 테스트: 설정을 변경한 후, Apache의 성능을 테스트하여 최적화 여부를 확인하는 것이 중요합니다.
- 권장: 설정 파일을 수정하기 전에 백업을 만들어, 필요 시 복원할 수 있도록 합니다.



추가로 읽으면 좋을 것

댓글

이 블로그의 인기 게시물

윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석

대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석

키움 OPEN API MFC 개발 (1)