2009-08-24 3 views
1

Java 서버 (tomcat), ColdFusion 및 Apache가있는 두 대의 컴퓨터에서로드 균형 조정이 가능한 웹 응용 프로그램이 있습니다.cf. 서로 다른 크기의 등록 파일

얼마 전에 cfregistry 파일의 크기가 두 서버에서 서로 다르게 나타났습니다. 하나의 89Mb와 다른 하나의 44Mb입니다.

이 크기를 갖는 것이 정상입니까? 그들은 크기가 아주 다른 것이 정상입니다.

미리 감사드립니다.

답변

1

ColdFusion 클라이언트 변수 저장은 Windows의 레지스트리를 기본으로하며 Unix/Linux 플랫폼의 경우 기본값은 cf.registry 파일입니다. 그 이유는 즉시 사용하기 쉽기 때문이지만, 생산시에는 ColdFusion을 당밀처럼 느려지 게하는 침묵의 킬러이며 cf.registry 파일이 커지면 Unix에서 서버가 완전히 중단됩니다.

사실상 ColdFusion은 클라이언트 변수를 사용하는 모든 요청에 ​​대해 파일을 구문 분석, 읽기 및 쓰기합니다 (코드에서 아무 것도 사용되지 않지만 cfapplication의 clientmanagement 속성이 활성화 된 경우에도). 이것은 데이터베이스와 같은 평범한 파일을 다루는 것과 같습니다. 매우 IO 집약적이었고 ColdFusion에서 Allaire/Macromedia/Adobe에 대한 기술 지원을 해오면서이 문제로 인해 많은 충돌/정지 서버 사례를 해결했습니다.

간단히 말하면 ColdFusion을 중지하고 기존 cf.registry 파일의 이름을 바꾸고 다른 ColdFusion 서버에서 깨끗한/새 cf.registry 파일을 복사하십시오 (Developer/Trial 에디션도 괜찮습니다). 주의 사항 : ColdFusion을 중단하지 않고 새 파일을 복사하면 서버에 이미 메모리에 원본 복사본이 있고 종료시 새로운 cf.registry 파일에 해당 복사본이 쓰여 지므로 원래 문제가 다시 발생합니다.

데이터베이스를 사용하도록 클라이언트 저장 메커니즘을 변경하거나 다른 방법을 사용하더라도 오래된 cf.registry 파일을 정리해야합니다. ColdFusion은 오래된 클라이언트 변수 만료 과정을 거치면서 정기적으로 구문 분석을 계속 수행하기 때문입니다. .

클라이언트 변수의 레지스트리를 정리하기위한 Adobe 기술 자료가 있습니다. 브라우저에서 시작하여 100 개의 클라이언트 변수를 제거하고 새로 고치고 다른 100 개를 제거하는 체인으로 실행됩니다. Registry/cf.registry에 클라이언트 변수 데이터가 큰 경우에는 사용하지 마십시오. 기존 cf.registry 파일을 정리하면됩니다.

마지막으로 Windows에서 ColdFusion은이 문제로 인해 거의 충돌하지 않습니다. 그것은 단지 더 느리며 더 느리게 계속 절름 거리를 유지할 것입니다. 유닉스/리눅스에서는 지금까지 절름 거리기 만하면 프로세스가 중단됩니다.

+0

감사합니다. 스티븐. 당신의 대답은 완벽했습니다! – foxtrot

0

그 파일은 * nix에서 클라이언트 저장 장치 용으로 생각됩니다.

클라이언트 범위 저장소로 DB를 사용하도록 앱을 구성해야합니다.

다른 크기를 갖는 것이 정상입니까? 나도 그렇게 생각해.

관련 문제