2011-01-24 6 views
0

Drupal 6.19 설치가 약 6 개월 동안 실행되었습니다. 클라이언트가 더 많은 콘텐츠를 게시하는 것을 적극적으로 사용하고 있습니다.검색 색인을 수행 할 때 Drupal (6.19) cron이 메모리를 소모합니다.

그러나 지금은 cronjob이 완료되지 않았기 때문에 무언가가 발생했습니다.

치명적인 오류

: 보시다시피 소진 134,217,728 바이트의 허용 메모리 크기는 라인 (444)

에 /XXX/modules/search/search.module에 (36,230,464 바이트를 할당하려고), 나는 PHP에서 128M 메모리 제한이 .ini와 search.module이 36M을 할당하려고합니다. search.module이 그렇게하는 이유가 무엇인지 생각해 낼 수 없기 때문에, 내가 더 진행할 수있는 힌트가 있는지 물어 본다. 드루팔 (Drupal)이 호스팅 환경에 있기 때문에 메모리 제한을 늘릴 수 없습니다.

시간당 최대 10 개 노드의 색인 생성을 제한하고 가장 짧은 단어 길이를 5 자로 변경했습니다. 나는 어떻게 10 개의 노드를 인덱싱하여 모든 메모리를 소비하는지 이해할 수 없다.

디버깅 방법은 무엇입니까? 무엇을 시도할까요? 어떤 아이디어라도 감사 할 것입니다!

+0

메모리 사용량은 색인을 생성하는 노드 수뿐만 아니라 활성화 된 모듈 수를 기반으로합니다. 많은 액티브 모듈 (또는 CCK/views와 같은 리소스가 부족한 모듈)이 많은 경우, Drupal은 많은 RAM을 소모합니다. – wimvds

+0

나쁜 사람들. 나는 이해하지 못했다. 또한 주석이 색인된다. 그리고 내가 알아 차리지 못했던 다른 점은 파일 시스템에서 약 600M 공간을 차지한 250,000 개 이상의 스팸 댓글이 있다는 것입니다. 그 중 하나를 놓칠 수 있습니다. 답은 다음과 같습니다. 감사합니다 여러분. – Jasmo

답변

0

/XXX/modules/search/search.module의 444 줄을 살펴보십시오. 코드는 무엇입니까?

사이트의 콘텐츠에 대해 더 많이 알아야한다고 생각합니다. 사이트가 얼마나 큰가요? 얼마나 많은 노드가 있습니까? 노드 당 얼마나 많은 텍스트입니까?

데이터베이스를 체크 인하십시오. 노드에서 사용하는 저장 영역의 크기는 얼마입니까? 전체 데이터베이스의 크기는 얼마입니까?

첨부 파일과 파일 시스템의 파일 (예 : http://drupal.org/project/search_files)을 검색 할 수있는 모듈이 설치되어 있습니까?

0

좋아, 클라이언트가 더 많은 콘텐츠를 게시하고 있다고 가정 해 보겠습니다. 이전에 cronjob에서 사용 된 메모리 양에 대한 정보가 없습니다. 가장 최근에야 당신의 기억력 한계 아래에 있었을 것입니다. 이제 당신은 끝났습니다. 이런 종류의 일은 그들이 무엇을하고 있는지 모르는 사람들이 웹 사이트를 올릴 때마다 항상 발생합니다.

어떻게 진행하나요? 검색 모듈에 대한 메모리 할당을 늘리십시오. 나는 그것이 조금 명백하게 보인다는 것을 의미한다. 이것이 비례하지 않을까 걱정됩니까? 지금까지 문제를 프로파일 링하지 않았으므로 확실하게 알지 못합니다.

검색 엔진은 검색이 실행될 때 I/O를위한 디스크 공간을 교환하는 방법이라고 생각하면됩니다. 각 검색에 대해 (I/O를 사용하여) 모든 문서를 스캔하거나 인덱스를보고 (디스크에서) 정보를 얻으십시오. 따라서 사이트를 색인화하는 cron 스크립트가 작업을 완료하기 위해 일정량의 임시 디스크 공간 (일종의 임시 디스크 공간)을 필요로한다는 것은 당연합니다.

+1

모든 올바른 점 - 나는 그 중 어떤 것이 @Jasmo가 자신의 문제를 해결하는 데 도움이 될지 모르겠다. – anschauung

0

내 첫 번째 의심은 대기열에있는 노드의 큰 험난한 사람이 당신을 한계에 처하게한다는 것입니다. 이 문제를 테스트 할 수있는 몇 가지 방법이 있습니다.

데이터베이스의 search_dataset 테이블에서 노드 1에 해당하는 사이트를 확인하십시오. 그런 다음,보다 큰 노드가있는 nid을보십시오. 그 중 하나가 비정상적으로 크거나 별난 것입니까? 비어있는 본문을 갖도록 편집 해보십시오 (이전 버전을 유지해야 함). 도움이되는지 확인하십시오.

만약 아니라면 - 우리는 다른 것을 시도 할 것입니다.

관련 문제