우리는 GDBM 키 - 값 데이터베이스를 C++로 구현 된로드 균형 조정 웹 응용 프로그램의 백엔드로 사용합니다. 응용 프로그램에서 제공하는 데이터가 매우 커져서 관리자가 GDBM 파일을 웹 서버의 "로컬"저장소에서 또는 공유 메모리에있는 NFS 마운트 파일 시스템으로 이동했습니다.GDBM의 대체 또는 보조자
이것은 성능에 영향을줍니다. 우리의 성능 테스트 (테스트 환경에서)는 페이지로드 시간이 수백 밀리 초 (로컬 디스크의 경우)에서 몇 초 (NFS, 로컬 네트워크를 통해)로 점프하고 때로는 30 초까지 올라간다는 것을 보여줍니다. 문제의 큰 부분은 애플리케이션이 GDBM 파일에서 무작위로 많은 읽음을 만들어 내고 NFS를 통해 속도가 느려지므로 프론트 엔드와 백엔드가 더 많은 네트워크 하드웨어가 필요함) 그리고 데이터베이스가 커짐에 따라
중요한 응용 프로그램은 아니지만 성능을 향상시키고 응용 프로그램 개발자 및 Unix 관리자를 포함한 일부 리소스를 사용할 수 있습니다. 나의 주된 제약은 단지 몇 주 동안 자원을 가지고있는 시간이다. 내가보기로
, 내 옵션은 다음과 같습니다
는 조정 매개 변수에 의해 NFS 성능을 향상시킬 수 있습니다. 필자의 본능은 이것에서 벗어나지 못하지만 이전에는 잘못 알고 있었고 NFS 튜닝에 대해서는 잘 모릅니다.
다른 키 - 값 데이터베이스 (예 : memcachedb 또는 Tokyo Cabinet)로 이동하십시오.
NFS를 다른 프로토콜로 바꾸십시오 (iSCSI는 언급되었지만 익숙하지 않습니다).
이 문제는 어떻게 해결해야합니까?