싱글 CPU시스템에 CPU추가시 Apache 재컴파일?
안녕하세요?
Apache(아파치)의 컴파일과 관련하여 질문을 드리고자 합니다.
먼저 상황을 가정하여 보겠습니다. (충분히 발생될 수 있는 상황이라서 ^^; )
초기 시스템 구축에 사용된 H/W 시스템은 듀얼을 지원하는 보드이지만,
경제적 상황 및 접수자 수에 따라서, 싱글(Single) CPU로 구축되었습니다.
따라서, 커널 컴파일에서도 SMP 옵션을 주지 않았습니다.
또한 MySQL 및 Apache 또한 Single CPU에서 컴파일 되었습니다.
이렇게 운용된 상황에서 접속자 수가 증가하여 CPU를 추가하고자 합니다.
메인보드의 빈 CPU소켓에 동일한 스테핑 CPU를 추가하여 Dual 모델이 되었습니다.
당연히 커널을 동일한 버젼으로 재컴파일했습니다. (SMP 옵션 추가하여)
그리고, MySQL 및 Apache 서비스를 계속 운용합니다.
자 그럼. 여기에서 질문이 있습니다.
분명 지금 운용되고 있는 MySQL과 Apache는 Single CPU일 때 컴파일 되었습니다.
그럼, MySQL 및 Apache 바이너리는 Dual CPU 상황에서 완벽하게 동작이 될까요?
(Dual 시스템에 맞게 퍼포먼스를 낼까요?)
아니면 Mysql과 Apache를 다시 컴파일해줘야 하나요?
(위 상황의 CPU를 P3, P4, Xeon 이라고 가정하겠습니다.)
추가질문 : 만일 정답이 다시 컴파일해야 한다라고 한다면,
리눅스 배포판들은 하드웨어가 SMP상황에 깔릴지, Single에 깔릴지
모르는 상황에서 Binary 파일 패키지들을 어떻게 구성해서 배포판을
만듭니까? (싱글 따로, SMP 따로 구성하지는 않는 것 같은데....)
#ifdefine으로 처리하는것 같은데 이것도 컴파일까지 종속되지만
바이너리에는 전달되지 않는것 아닌가요?
바쁘시지만 답변 부탁드립니다. 더운날 건강 조심하세요. ^^;
다시 컴파일하지 않으셔도 됩니다.
다시 컴파일하지 않으셔도 됩니다. 어차피 프로세스나 쓰레드별로 CPU를 할당하는 것이지 보통은 어플리케이션 안에 특별히 SMP를 위한 코드가 들어있지는 않습니다.
SMP 의 성능을 다
SMP 의 성능을 다 활용하려면 다시 빌드해야할지도 모릅니다.
아파치를 멀티쓰레드로 사용하려면 prefork 가 아닌 worker 나 prechild 로 컴파일 하셔야 할 겁니다.
기본적으로 쓰레드를 사용하지 않는 프로그램들에 대해서는 smp 버젼이 따로 필요없을 지도 모르겠지만..
멀티쓰레드를 사용할 지 안 할지 결정할 수 있는 아파치의 경우 멀티쓰레드로 빌드하면 확실히 성능에 향상이 있을 거라 생각됩니다.
---
Emerging the World!
Emerging the World!
worker나 prechild에서
worker나 prechild에서 php가 동작하나요?
제가 알기로 동작하는 기능의 제한이 심한걸로 알고 있습니다....
+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년
+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년
아파치는 아직 prefork
아파치는 아직 prefork 말고는 답이 없습니다.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
https://xenosi.de/
댓글 달기