예전에 질문글을 올리고 나서 ModSecurity 등을 해제했는데도 불구하고

 

여전히 관리자 페이지에서 캐시 재생성을 시도하면 거의 80% 이상의 확률로 로딩만 지속되다가 500 에러를 뿜네요

 

여전히 SSH로 접속해서 rm -rf cache로 삭제하면 정상적으로 삭제됩니다.

 

아 그리고, 삭제하는 도중에 확인해보니까 cache_1474611642 뭐 이런 폴더들이 생기던데 이건 뭔가요?

 

좀 지나고 나서 보니까 사라져 있더군요

  • profile

    XE(라이믹스)에서 캐시파일 재생성은 아래의 순서로 진행됩니다.

     

    1. 기존의 cache 폴더를 이름만 바꿔서 옆으로 치워둡니다. cache_1474 어쩌고 하는 폴더가 이거예요.

    2. cache 폴더를 새로 만듭니다.

    3. 각 모듈에게 꼭 필요한 캐시파일을 생성하라고 알려줍니다.

    4. 아까 치워둔 폴더를 삭제합니다.

     

    폴더를 제자리에서 삭제하지 않고 일단 옆으로 치워두는 이유는, 폴더를 삭제하는 사이에 다른 모듈에서 캐시파일을 또 생성하려고 시도할 수도 있기 때문입니다. 한쪽에서는 계속 지우려고 하고 다른 쪽에서는 계속 만들려고 하면 문제가 생기겠지요? 그래서 폴더 이름을 단번에 바꿔버려서 다른 모듈들이 끼어들 여지를 주지 않습니다.

     

    시간이 오래 걸리다가 결국 실패하는 것은 대부분 3~4단계입니다.

     

    3단계에서 실패하는 경우는 설치된 모듈 중 하나가 캐시파일 재생성 작업 도중 시간을 너무 오래 끌거나 오류를 뿜는 경우입니다. 이럴 때는 캐시파일 재생성 후에도 여전히 오류가 날 수 있습니다.

     

    4단계에서 실패하는 경우는 캐시파일 수가 너무 많아서 삭제하는 데 너무 오래 걸리거나, 퍼미션이 잘못된 파일이 있어서 삭제할 수 없는 경우입니다. 그러나 일단 3단계까지 마쳤다면 4단계에 실패하더라도 문제가 생기지는 않습니다. 새로 만든 cache 폴더가 제 역할을 하고 있을 테니, 더이상 필요하지도 않고 사용하지도 않는 폴더 하나가 용량을 차지하고 있을 뿐이예요. 이런 건 수동으로 지워주면 그만입니다.

     

    두 경우 모두 예전 캐시파일은 cache_1474 어쩌고 하는 폴더로 옮겨졌고, 남아 있는 cache 폴더는 새로 만든 것이므로 일부러 지워줄 필요는 없습니다.

     

    라이믹스에서는 4단계 실패율을 줄이기 위해 자체적으로 rm -rf 명령 사용을 시도합니다. 그러나 퍼미션이나 서버 설정 때문에 이 명령을 사용할 수 없다면 XE와 마찬가지로 오류가 발생할 가능성이 있습니다.

  • profile ?
    그렇군요. 자세한 답변 감사합니다. ssh에서 rm -rf로 캐시폴더를 삭제하면 1초정도 후에 다시 캐시폴더가 생성되는데, 굳이 관리자페이지에서 캐시 생성작업을 다시 안 해줘도 상관없겠죠? 그리고 3번을 파악하려면 에러로그에 모든 에러를 기록하도록 해놔야 하나요?
  • ? profile
    XE는 캐시폴더를 강제 삭제하고 관리자 페이지에서 재생성을 하지 않으면 메뉴가 나오지 않는 버그가 있습니다. 라이믹스는 강제 삭제만 해도 괜찮아요.

    서드파티 자료는 아예 에러가 안 날 수도 있어요 ㅡ.ㅡ
  • profile ?
    파일캐시 사용할때 store폴더를 램디스크로 잡아뒀는데 항상 삭제되더라고요. 혹시 다른 방법이 있나요?
  • ? profile

    XE의 cache 폴더는 램디스크를 사용하거나 다른 파티션에 연결할 수 없습니다. 내용만 삭제하는 게 아니라 폴더 이름을 바꾼 후 새로 만들기 때문에 마운트 포인트가 증발해 버려요 ㅠ

     

    캐시파일 재생성 과정에서 언마운트하고 다시 마운트하도록 코어를 수정한다면 가능할지도 모르겠네요.

  • profile ?
    그렇다면 코어수정 없이는 memcached를 사용하는게 맞겠군요. 예전에 어디선가 램디스크로 하면 더 빠르다는걸 본것 같아서 궁금했습니다.
  • profile ?
    기진곰님 모르시는게 없군요
  • profile ?
    오늘 자세히 살펴보니까, 4단계에서 실패하는 모양이더군요. 4단계에서 지워지지 않는 해당 폴더를 SSH로 접속해서 rm -rf 해봐도 전혀 반응이 없습니다. 아무래도 퍼미션이 문제인거 같은데, 어떻게 해결해야 할까요? 일단 폴더명을 변경하기 전에는 rm -rf로 잘 지워지는 걸 보면 문제가 없는거 같은데, 폴더명이 변경되고 난 이후에 삭제가 안되네요.
  • profile ?
    아 그리고, 이 폴더를 가만히 놔두면 따로 삭제를 안 해도 몇 분 뒤에 저절로 사라져 있던데, 원래 이런가요?
  • ? profile
    1. rm -rf가 반응이 없는 것 같으면서도 실제로는 끝까지 삭제하는 경우
    2. 캐시파일 재생성이 먹통이 된 것 같으면서도 실제로는 끝까지 삭제하는 경우

    둘 중 하나겠네요. 폴더가 혼자서 자폭하지는 않을 테니...