포럼
저사양 서버의 XE
2013.02.04 17:53
요즘은 대부분의 서버가 듀얼코어 이상이고 메모리도 2기가 4기가 이상이다보니
저사양 서버를 언급하는것 자체가 무의미 할 수도 있겠습니다.
하지만, 가상서버 호스팅 상품이나 클라우드 서버 호스팅 상품이 많기 때문에
싱글코어 서버 환경을 생각해 보아야 합니다.
거기다가 윈도우 가상서버를 운영해 보았습니다.
제온CPU지만 싱글코어만 분양받고 램은 4기가 분양 받습니다. 상품 강제구성이 이렇습니다.
당연히 SSD가 아니라 HDD이며 윈도우 서버입니다.
iis 에다가 캐쉬까지 쓰면 빨라진다고는 하지만, 저처럼 세팅에 자신 없는 사람은 닥치고 APMSETUP입니다.
그리고 xe를 설치 합니다. dbms 는 mysql로 합니다.
컨텐츠를 약 5천개쯤 넣고 like 검색 들어갑니다.
싱글코어로 mysqld와 httpd 서비스가 서로 점유율 달라고 아우성 거리면서 100%를 만듭니다.
그상태로 약 4초 가까이 되자 100%가 그제서야 풀립니다.
mysql 은 DB 검색이 들어가니까 점유율이 높아졌을것이고,
http는 xml파싱이라던가 여러가지 php 코드를 처리하는 것이겠죠?
싱글코어로는 xe의 like 검색을 실시했을 때 무리라고 생각합니다.
(그래서 지금 서버 이전하려고 여기저기 기웃거리고 있습니다)
cpu점유율이 100%가 되면 다른 접속 자체가 막히고 딜레이 됩니다.
마치 무한루프가 돌아가는 상태와 같습니다.
다시말해 동시에 db에서 like검색하면 한사람로딩이 끝날때까지 다른사람은 대기중이 됩니다.
서비스로써는 부적격 하겠죠.
그런데 test.php파일 하나 만들고 db 연결해서 동일한 테이블에 like 로 직접 쿼리를 날려서 mysql_fetch_array를 이용하여
제목을 뽑아내면 1초도 안걸립니다.
이때 CPU 순간 점유율은 20-30% 정도 됩니다.
확인해보니 그 20%도 mysql의 순간 점유율입니다.
그래서 확실치는 않지만 조심스럽게 문제는 검색할때 php처리 부분이 관건이라고 결론내렸습니다.
그래서 저는 생각했습니다.
모듈을 만들때 queries 디렉토리의 xml 파일을 이용한 디비 쿼리 말고 controller 혹은 view 부분에 직접 select 쿼리를
날리는건 어떨까? 빨라질까? 하고 말이죠.
뭔가 디비에 쿼리하는 단계에 도달하기까지의 과정을 줄이면 빨라질까 하는 기대감입니다.
해보지는 않았습니다.
이런식으로 재구성하면 보안에 문제가 될까요?
제가 잘 모르는 단어인 sql 인젝션 어쩌구 하는 문제가 있을까요?
댓글 7
-
criuce
2013.02.05 02:51
-
퍼니엑스이
2013.02.05 19:07
Like 검색은 DB에서 인덱스를 안 타서 느린 것으로 알고 있습니다. 사실상 성능을 위해서라면 검색 기능이 없는게 낫습니다.
-
고이풀
2013.02.05 23:56
Xe공홈의 쪽지확인과 게시판이 그래서 느린가 보네요.
-
뽈뽈이
2013.02.06 09:57
결론만 말씀드리면 안빨라져요. 날 php와 프레임웍을 비교했으니 차이가 날 수 밖에요.
컨트롤러에서 직접 날린다고 체감성능이 빨라질리가 없습니다. 저도 여러 번 실험해 봤어요.
CPU 점유율이 문제라면 nginx로 교체하는 것도 방법일 수 있어요.
nginx가 cpu를 덜 먹는거 같아요.
-
푸시아
2013.02.06 15:38
네 동의합니다 ㅜㅜ
결론은 서버 업그레이드~! 하기로 했습니다..
nginx는 좀 더 공부하고 확신이 들면 바꿔 보겠습니다.
저도 긴가민가 하고 있었는데 여러분들께서 답글 달아 주셔서 확신이 섰네요.
감사합니다.
-
최윤한
2014.04.16 11:44
혹시 저사양 윈도우+apmsetup 환경에서 cpu 점유율 문제 해결 하셨나요?
-
GG
2014.04.16 13:19
쿼드코어 ssd 달린 리눅스 서버로 이전하였습니다.
Like 검색은 개발 기초 상식으로 안쓰는게 맞는데 오픈소스의 경우 사용자 편의를 위해 넣어두죠. 빠른속도 원하시면 돌아갈 필요없이 루씬이 답인듯 합니다