2009-11-21 5 views
2

공유 링크에서 데이터베이스 공유 웹 사이트를 실행 중입니다. 링크 공유 사이트에서 언급 한 후 가끔씩 득실 거리는 경우가 있습니다.디스크 기반 데이터베이스 캐싱 : 단점?

처음 몇 개의 트래픽 급증이 데이터베이스에 걸리는 부하 때문에 파일 기반 캐싱을 구현했습니다.

쿼리가 실행되면 결과 집합 개체를 serialize하여 파일로 저장합니다. 캐시 디렉토리에 하위 디렉토리 구조가있어 수천 개의 파일이 같은 디렉토리에서 끝나는 것을 방지합니다. 다음 번에 동일한 쿼리를 실행해야하는데, 대신 파일에서 개체를 꺼냅니다.

지금까지 꽤 잘 작동했습니다. 그러나 나는 내가 이전에 즐기던 것보다 더 높은 수준의 교통량이 있다면 나는 무엇인가를 바라보고 있고 아마도 문제를 물을 것이라고 걱정한다. 아니면 이것을하기위한 더 쉬운 방법이 있을까요?

나를 위해 몇 가지 구멍을 뚫어주십시오. 감사!

답변

2

이상적입니다. 메모리에 캐시하여 디스크 액세스를 제거합니다. memcached

+0

슬프게도 대규모 전자 상거래 아파치 사이트와 mod_perl을 구축 입니다. 나는 이것이 바람직 할 것이라는 것을 깨닫는다. –

+2

당신은 파일에 캐싱하여 실제 DB로드를 줄일 수 있지만 성능을 위해 큰 영역 중 하나 인 디스크 액세스를 최소화하지는 못합니다. – AdaTheDev

0

공유 호스팅을 사용하고 있기 때문에 아이디어 (google "웹 서버 스로틀 (10 월 00)")를해야합니다. (또한 스톤 헨지 :: 스로틀을 언급)

이와 관련된 흥미로운 읽기 나는이 호스트에서 memcached를 실행할 수 없습니다 http://perl.apache.org/docs/tutorials/apps/scale_etoys/etoys.html

+0

나는 사이트가 모든 텍스트이기 때문에 대역폭 사용에 정말로 관심이 없다. 나는 단지 그것이 반응을 유지하기를 원한다. –