화살표
기술가이드서비스 이용에 필요한 문서와 매뉴얼을 모아두었습니다.
번호 제목 등록일
6 [리눅스팁] 아파치의 DSO 방식과 Static 방식의 차이점
안녕하세요. 하나로호스팅입니다.
아파치(Apache)의 DSO 방식과 Static 방식의 차이점을 간략히 정리했습니다.


아파치를 운용하는 방법에는 동적(DSO)방식과 정적(Static)방식이 존재 합니다.
이 두가지의 운용법은 시스템의 특성에 따라 퍼포먼스, 자원의 활용 등에서 차이가 생깁니다.

먼저 이 두가지 운용법에 대해 간략하게 설명하면 아래와 같습니다.

동적운용(DSO) : 아파치를 먼저 설치한 뒤 third-part 모듈의 확장이 필요한 경우
third-part 모듈만 따로 설치하여 사용이 가능
정적운용(Static) : third-part 모듈과 함께 아파치를 컴파일한 뒤 설치후 사용

이 두가지 운용법은 시스템 측면에서 크게 두가지의 차이점이 있습니다.

동적인 운용인 DSO 방식은 아파치에 설치된 모듈이 필요할 때만 시스템에 적재 됩니다.
따라서 아파치가 실행될 때 모든 모듈을 메모리에 적재해놓고 사용하는 것이 아니라,
필요한 요청이 있을 경우에만 메모리에 적재 되므로 시스템 자원을 효율적으로 사용할 수가 있습니다.
그러나 클라이언트에게 요청을 받았을 때 필요한 모듈을 메모리에 적재하게 되므로
클라이언트에게 응답하는 속도가 다소 느려지게 됩니다.
실제로 아파치 DSO관련문서 Advantage & Disadvantage를 읽어보게 되면
DSO 기반으로 운영할 경우, 아파치의 실행속도는 약 20%정도, 서버의 실행속도는 약 5%정도
느리게 할 수 있다는 점이 언급되어 있기도 합니다.

정적 운용인 Static 방식은 아파치가 실행될 때 모든 모듈을 메모리에 적재해놓습니다.
그렇기 때문에 DSO 방식과는 다르게 빠른 응답속도를 가질 수 있습니다.
그러나 만약 거의 사용되지 않는 모듈이 있을 경우에는 쓸데없는 시스템 자원 낭비이므로
이 점에 대해서는 비효율적이라고 볼 수 있습니다.
또한, 운영중에 필요한 third-part 모듈이 있을 경우 아파치를 재 컴파일 해야 되기도 합니다.

따라서 자주 사용되는 기본 모듈이나 확장 모듈 혹은 third-part 모듈 들은
아파치를 컴파일 할 때 정적으로 컴파일해서 사용하고 자주 사용되지 않는 모듈은
동적으로 설치를 해서 운영하게 되면 효율적인 시스템 관리를 할 수 있습니다.
그러나 최근 H/W의 성능이 매우 좋아짐에 따라 시스템 운영의 편리성을 위해

DSO로 운영하는것이 대부분 입니다.