포럼
1.5 버전이후 Object Cache의 설정을 해야하는 이유.
2011.10.13 13:49
Object Cache 개념이 도입되면서 XE 속도는 비약적인 상승을 이뤄냈습니다.
APC 나 memcache 를 사용하신다면,
db.config.php 에서
$db_info->use_object_cache = 'memcache://127.0.0.1:11211';
등으로 설정하실수 있습니다.
( * 추가 템플릿 캐시를 설정하시고자 한다면
$db_info->use_template_cache = 'memcache://127.0.0.1:11211';
)
이부분에 대한 개발자 분들의 긴 설명이 없어서, 조금 쉽게 설명을 해본다면
예를들어서 회원정보를 이용해서 코멘트 부분에 무언가를 출력한다고 해봅시다.
그럼 comment 에 기록되어있는 member_srl 을 이용해서 회원 DB 를 불러오고
그 DB 내역을 기준으로 출력을 하겠지요.
이게 글쓴이가 100명이라면
매번 글을 읽을때마다 100번의 회원 DB 호출이 필요합니다.
그러한것은 myisam 식의 mysql 을 사용하는 대부분의 유저분들에겐
member 테이블에서의 지연시간을 발생시켜서 전체적인 속도를 크게 잡아먹게 되지요.
그런데 신버전에 적용된 캐시 개념을 도입하시면
한번 회원 정보를 DB 에서 불러놓으면
메모리에 회원 정보를 올려놓고, 회원 정보가 갱신되기전에는 그 정보를 사용함으로써
DB 에 가하는 부하를 드라마틱하게 줄여줍니다.
회원 정보 뿐만이 아니라 게시글 정보, 모듈 설정, 코멘트 정보 등을 전부 저장해두고, 메모리에서 불러옴으로써,
DB 에 가하는 부하를 줄이고, 다량의 접속자가 왔을때도 좀더 빠른 서비스를 제공할수 있게 디자인되어있습니다.
물론, 이것을 실행하기 위해서는
보통 단독서버급(혹은 가상서버)에서 사이트를 돌려서
apc 나 memcache 가 설정되어있는 상태가 필요하지만,
속도에 제약을 느끼시는 분들이라면, 가상서버정도는 충분히 웹호스팅을 대신해서 선택하실수 있는 방법이라고 생각합니다.
댓글 11
-
한마음^^
2011.10.13 14:28
-
銀童
2011.10.13 15:07
웹 호스팅 사용자는 사용이 불가능합니다. 가상서버 호스팅 이상 필요하며,
가상서버 호스팅 사용자라면
centos 라면 yum install memcached php-memcache등으로 설치해서 사용하실수 있을꺼 같습니다.
(사실 우분투 서버를 쓴지 오래되서 정확한 설치법은 검색을 추천드려요)
설정에 있어서 어려운건 없고. 웹호스팅 사용자들은 사용할수가 없습니다.
-
라르게덴
2011.10.13 19:53
memcache는 제가 사용하는 호스팅 회사는 됩니다. 제가 쓰고있고요. 다만, 이러한 호스팅을 통하여 사용하실 경우 소스변경 등의 시간 텀이 전체 기준에 맞춰져 있고 캐시 재생성과 같은 기능 등을 쓸때 그것을 적용받을려면 memcache 서비스를 내렸다가 올려야하는데 호스팅 사용자라서 그렇게 할 수가 없습니다. XE상에서 장시간 내렸다가 올려야 하기에 잦은 소스변경을 평소에 하시고 계신다면 이런점은 불리할 수 있습니다.
-
銀童
2011.10.13 19:57
요즘은 memcache 지원해주는 호스팅회사도 있나요? '-' 좋아졌네..
-
Cody
2011.10.13 14:52
이왕 설명하신 김에
MySql MyISAM을 MySql innodb로 바꾸는 법도 부탁합니다.
-
銀童
2011.10.13 15:09
innodb 로 변경하는법은.
db 타입을 mysql_innodb 로 바꿔주고.
각각 테이블을 innodb 로 바꿔주시면 그걸로 충분합니다. phpmyadmin 등에서 쉽게 작업 가능하고,
콘솔 상에서 할려면면
alter table 변경할 테이블 이름 type=InnoDB;
ex) alter table xe_members type = InnoDB;
라는 식으로 명령어를 이용해주시면됩니다.
-
엄마네과일가게
2011.10.13 15:02
1.4.5.10에서는
$db_info->use_template_cache = 'memcache://127.0.0.1:11211';
였는데 바뀌었군요; 어쩐지 안먹더라니..
얼릉 1.5가 안정화 되었으면
빨리 써보고 싶네요 오브젝트캐쉬를!!
정보 감사합니다!
-
銀童
2011.10.13 15:04
use_template_cache 는 여전히 템플릿 캐시용으로 쓰이지 않을까요? 소스를 확인해봐야겠지만 저는 그냥 귀찮아서 일단 두개 다 넣어두었습니다.
-
엄마네과일가게
2011.10.13 15:09
아 두개다 넣어도 되는건가요? 잘몰라서요;;
무리가없다면 두개다 넣어야 겠군요!!
-
銀童
2011.10.13 15:11
cache handler 를 확인해보니
$db_info->use_object_cache = 'memcache://127.0.0.1:11211';
$db_info->use_template_cache = 'memcache://127.0.0.1:11211';
둘다 쓰셔야합니다. 반드시.
두개가 별개로 세팅되므로
둘다 입력해주셔야되요.
-
엄마네과일가게
2011.10.13 15:13
아~ 감사합니다!
속도를 획기적으로 개선할 수 있다는데 궁금한게 있습니다.
1. 웹호스팅을 사용하고 있는 사용자도 사용이 가능한가요?
2. 초보자도 설정을 쉽게 할 수 있나요?