묻고답하기
XE Cache(캐시) 설정 문의 드립니다.
2016.04.08 19:01
files/config/db.config.php 파일에 다음 속성을 추가 하라고 되어 있었습니다.
$db_info->use_object_cache = 'apc';
$db_info->user_template_cache = 'apc';
그런데 아시다시피 PHP 5.5 이상에서는 opcode cache 기능이 기본 포함되어 있습니다.
이로 인해 Object Cache 기능만 사용해야 할 경우가 생기는데 이경우에는 APCu 나 Memcache 등을 사용 하는것 같던데...
초보라서 이해가 안가는 부분이있어서 몇 가지 문의 드립니다.
질문1) 앞서 APCu 의 Object Cache 라는게 Session 을 말하는 것인가요?? 보통 세션은 php 설정에서 파일 저장 방식 혹은 Memcache 로 대체 하시던데... APCu 의 유저캐시(Object Cache) 라는게 세션을 말하는 것 인가요? 아니면 세션과 별개의 다른것??
질문2) XE 캐시 설정의
use_object_cache
user_template_cache
는 각각 무엇을 의미하는 것인가요??
use_object_cache 가 Session 을 의미??
또 user_template_cache 는 뭔가요?? Opcode 같은것??
질문3) 기본적으로 PHP 5.5 에 내장된 opcode cache 는 컴파일된 Opcode 를 자동으로 캐시하는 것으로 알고 있습니다.
이 경우 APCu 를 사용시, 아래와 같이 user_template_cache 미사용으로 ''하고, use_object_cache 만 apc 로 지정해 주면 되나요?? 아니면 둘 다 'apc'로 지정해야 하나요??
$db_info->use_object_cache = 'apc';
$db_info->user_template_cache = '';
질문4) 마지막으로 PHP 5.5 이상에서 opcode cache 내장된것 쓰시고, APCu 대신 Memcache 쓰시는 분들 많던데.
이 경우 use_object_cache 와 user_template_cache 둘 다 Memcache 사용 하도록 세팅 후.
php.ini 설정에서 세션도 Memcache 사용 하게 하는게 맞나요??
훔... 아직 캐시 설정 부분이 이해가 안가서, 생각이 잘 정리되지 않네요 ㅠ_ㅠ
아무쪼록 고수님들의 답변 부탁드립니다.
댓글 3
-
퍼니엑스이
2016.04.09 07:11
-
기진곰
2016.04.09 10:48
1. 질문하신 설정들은 세션과는 전혀 상관이 없습니다. XE에서 인증 세션 DB 사용 옵션을 켜지 않는 이상, 세션을 어디에 저장할지는 php.ini에서 결정합니다. 서버 설정하기에 따라 파일이 될 수도 있고 apc가 될 수도 있고 memcache가 될 수도 있죠. 세 가지 모두 DB보다는 훨씬 빠릅니다. 각각 장단점이 있으므로 필요에 따라 결정하시면 됩니다. 예를 들어 apc에 세션을 저장하면 웹서버 또는 PHP의 설정을 변경하고 재시작할 때마다 모든 방문자들의 로그인이 풀립니다.
2. 윗분 설명대로입니다. DB 쿼리를 절약하기 위한 방법이라고 보시면 됩니다.
3. PHP 5.5에서 apc/apcu 사용은 피하세요. opcache와 호환되도록 변경했다고는 하지만, 여전히 충돌이 발생하여 잦은 서버다운의 원인이 되곤 하더군요. memcache를 권장합니다.
4. use_object_cache는 memcache, use_template_cache는 비워두시면 됩니다. (비워두면 임시파일을 생성하게 되는데, 이게 php 파일이기 때문에 opcache에서 자동으로 캐싱해 줍니다. use_template_cache는 내부적으로 eval을 사용하기 때문에 PHP 최신 버전에서 오히려 성능이 떨어지기도 합니다.) 위에서 말씀드린 것처럼 세션은 상관없습니다.
-
으흥
2016.04.09 22:00
^ㅡ^ 두 분 모두 답변 감사 드립니다.
덕분에 저같은 초보 유저는 힘을내어 살아 갑니다 ㅠ_ㅜ
XE 캐시 설정이 세션과 별로 상관 없는 것이었군요... 두분 덕분에 생각이 말끔히 정리되었습니다.
좋은 주말 되세요 ^^
간단하게 설명하자면,
use_object_cache = XE에서 DB 등 빈번하게 접속이 일어나는 data들을 Memcache나 APC에 보관하는 겁니다.
use_template_cache = 말 그대로 컴파일 된 템플릿 캐시 파일들을 어디에 보관하고 싶으냐 입니다.