2012-11-20 3 views
0

내 응용 프로그램은 데이터베이스와의 관계 때문에 문제가 있습니다. 많은 I/O 작업 또는 데이터베이스 호출로 인해 플로우 특수 Batch Jobs를 완료하는 데 시간이 걸립니다. 코드 최적화가 진행 중이며이 프로세스는 긍정적 인 결과를 보여주기까지 다소 시간이 걸릴 것입니다.프로덕션 환경에서 RAM 디스크를 사용하여 응용 프로그램 성능 향상

  • 프로덕션 환경에 RAMdisk를 설치하고 RAMDisk에 jdk 및 SQL Server를 설치할 수 있습니까?
  • 이 작업은 모든 I/O 작업에 도움이됩니까?
  • 적어도 배치 작업의 경우 성능을 향상시킬 수 있습니까?
+0

어떤 SQL 서버를 사용하고 있습니까? 동일한 시스템에서 실행되고 있습니까 (즉, ping 관련)? –

+1

엔터프라이즈 급 솔리드 스테이트 드라이브를 사용하는 것도 고려해 볼 수 있습니다.이 드라이브는 검색 시간이 훨씬 향상되고 데이터 내구성이 향상됩니다. 배터리 백업과 함께 램 기반 스토리지도 인기가 있지만 자주 백업을해야합니다! –

+0

현재 SQL Server 2008을 사용 중이며 곧 SQL Server 2012로 업그레이드 할 예정입니다. –

답변

1

@BaileyS가 제안했듯이 좋은 내구성은 내구성있는 SSD 드라이브를 사용하는 것입니다. 많은 양의 데이터가있는 경우 SSD를 사용하여 데이터베이스 인덱스를 저장하고 데이터를 일반 드라이브에 보관할 수 있습니다.

매우 자주 백업하거나 중요하지 않은 경우 RAM 디스크를 사용하지 않는 것이 좋습니다.

대신 OS의 파일 캐싱을 극대화하려고합니다. 파일이 RAM에 캐시 된 경우 RAM 디스크에있는 것처럼 작업 할 수 있습니다. Linux에서는 커널의 vfs_cache_pressure을 낮출 수 있습니다. 즉 커널이 캐시 된 파일을 RAM에 보관하는 것이 더 어렵습니다. 그리고 vm.swappiness을 100으로 설정하여 시스템이 사용하지 않는 메모리 페이지를 더 적극적으로 스왑하고 RAM을 캐싱에 사용할 수 있도록합니다. 이것은 일을 상당히 빠르게 할 수 있습니다. Can I configure my Linux system for more aggressive file system caching?

0

입출력을 기다리는 데이터베이스에 대부분의 시간이 소요된다고 가정하면 RAM 디스크가 확실히 도움이됩니다 (그러나 내구성은 사라졌습니다). 그렇다면 과 같은 메모리 내장 데이터베이스를 사용하지 않고 네트워크 대기 시간을 줄이는 데 필요한 임베디드 모드를 선택하십시오.

관련 문제