서버세팅에 조언을 구합니다. ㅠ _ㅠ > 자유게시판

자유게시판

서버세팅에 조언을 구합니다. ㅠ _ㅠ 정보

서버세팅에 조언을 구합니다. ㅠ _ㅠ

본문

질게로 가야하나 하고 기웃거려봤지만... 마땅한 분류도 없고 ㅠ 딱히 정답이 있는 문제가 아닌지라...
자게에 끄적거려봅니다. ㅠ

현재 제가 가진 서버중에서 웹서버 녀석이 일주일에 2~3회 정도 메모리 부족으로 죽습니다. ㅠ
아파치를 쓰고 있구요. 현재 같이 물려 쓰고 있는 몇가지 아파치 모듈때문에 nginx로 가지는 못하는 상황입니다.

게다가 제 서버세팅능력이 현저하게 낮은지라... 서버를 안죽이게 세팅을 못하는 상황이에요.
서버성능은 멀티쓰레딩 활성화해서 8코어(실질물리적 코어는 4코어), 메모리는 16기가입니다.

웹서버는 아파치 2.2.x 와 php 5.2.x 사용중이구요.
httpd 데몬이 수없이 떠 있는 상황이고, 자주 죽습니다. = ㅁ=; 머엉

동접자는... 구글 통계에 의하면..


이렇습니다. 피크시간때는 2500~3000정도 찍습니다.

도메인 하나에 대한 동접자이고, 실질적으로는 동접 100~200 정도 되는 도메인들이 이 웹서버에 5개가 더 몰려져있으니, 기본동접은 조금 더 많습니다. = _=

하루 페이지뷰는 대략 1백만 뷰 정도 됩니다.

이 상황에서 위 사양의 웹서버 튜닝을 잘한다면 어느정도 안죽고 잘 굴러갈 수 있을지... 영 불가능하다면... 안정적인 웹호스팅으로 옮겨볼까도 생각중인데요.

8코어 16기가 서버세팅을 그래도 바꾸어서 자체서버로 돌리는게 나을지... (이게 낮다면 어떤 설정값을 해주어야 할까요? ㅠ) 아니면 트래픽제한이 좀 넉넉한 웹호스팅으로 옮기는게 나을지 웹호스팅은 아무래도 서버전체가 뒤지는 일은... 그 업체에서 잘 관리를(?) 할테니 없을거 같다는 생각이거든요.

여러분들이라면 어떻게 대처를 하시겠습니까? ㅠ _ㅠ

덧붙여 별도의 웹서버를 한개 더 구축해서 nginx로 간다면, 더 잘 버틸 수 있을까요?


추천
0
  • 복사

댓글 11개

nginx로 옛날에 대충 이미지만 빼가지고 서버구축을 해본적이 있는데 연결수 1024로 제한해두었을 경우 약 10~15초내에 연결수 1024를 초과해서 뻗어버리더군요. 그래서 그 당시 연결수를 10240 으로 해서 돌리긴했습니다만... 이미지뿐이라면 괜찮겠지만 저기에 디비도 물리고 PHP까지 돌아간다면 nginx로도 뻗을거 같아서 스크립트파일까진 다 옮겨보진 못했습니다. ㅠ
nginx + php 5.3x 로 변경후 상당히 개선되더군요.
메모리 다차고 스왑까지 다 차면 서버가 뻗기 마련인데 
nginx+php는 서버가 뻗는경우는 없었던것 같네요.

일단 웹서버단은 튜닝하는데 한계가 있고 웹프로그램(DB)튜닝이 선행되어야 할것 같습니다.

한때는 메모리 상태를 확인하는 스크립트를 짜서 크론으로 돌렸던 적도 있습니다. ㅡㅡㅋ
스왑메모리를 사용하기 시작하면 아파치,mysql 을 재시작해주는거죠.
서버 한대로 사용중이면 대단한거네요
서버 한대였다면, 디비서버 웹서버 분리 하시고요, 더 여유가 된다면 이미지 서버까지 분리를 하셔야겠네요
기본 페이지뷰 100만이면 혼자서 관리하기는 힘드시겠네요
DB가 안죽는 상황에서 웹서버만 죽는다면, 몇가지 아파치 모듈쪽을 의심해봐야겠네요.
웹서버는 4코어짜리 하나 두대정도 더 장만하시는게 안정적인 서비스가 가능할것 같습니다.
서버는 피크시간대 기준으로 구성을 해야죠. 로그 분석을 통해서 주로 access 되는 페이지를 찾은다음에 이를 캐시화 할수 있는지, 캐쉬화 할수 없다면, 동적으로 변경되는 데이타를 memcached 에 변경시점에 담고, 각 php 모듈이 memcached를 통해서 페이지를 생성하도록 구성하는게 좋을것 같습니다.

그런데...... 서버가 죽는다는게 다운된다는것인지, 더 이상 접속을 받아들이지 않는다는것인지 모르겠네요. 더 이상 접속을 받아들이지 않는다면, port 자원이 모두 time_wait 상태이기 때문이 아닐까 추측됩니다. 이부분은 커널 소프트 옵션을 통해서 어느정도 튜닝이 가능합니다
디비는 버텨줍니다... ㅠ _ㅠ
주로 읽히는부분에 보안적인 문제때문에 캐시화 하는건 현재로선 좀 힘듭니다. 실시간으로 서버에서 로드가 되었는지 안되었는지 체크를 하다보니...

서버가 죽는다는건, 아파치가 메모리부족 에러를 내고 뻗으면 SSH접속뿐만 아니라 다른접속도 전혀 받아들이지 못해 결국 물리적으로 재부팅을.... ㅠ _ㅠ
받아들일수 있는 소켓의 수는 커널컴파일을 통해 10240 정도까지 늘려둔 상태인데도 이러네요 ㅠ
알쯔님 사이트가 하나의 서버로 버티셨다는 자체가 놀랍습니다. ^^
우선 고려되는 점이 디비서버와 웹서버의 분리가 아닐까 합니다.
아니면 주 사이트와 시스템부하를 많이주는 사이트나 모듈을 사이트를 따로 분리시키는 방법도 있을듯 합니다.
서버 좀 만질줄 아는 분이 제 서버를 많이들 보시곤 가셨는데...
하나같이 하는말이... 이 서버로 이정도 동접을 못버틸리가 없다고!
제가 개발한 프로그램에 문제가 있거나 서버설정에 문제가 있다고들만 하셔서... ㅠ _ㅠ
© SIRSOFT
현재 페이지 제일 처음으로