이 페이지는 기계 번역되었습니다. 영어 원본을 읽어보세요. English

IBSurgeon 라이브러리

Firebird 데이터베이스 성능 체크리스트

Windows

  1. 전원 관리 옵션을 고성능으로 설정하세요 (Windows Server 2016+에서 +20% 성능 향상)?

  2. 드라이브의 쓰기 캐싱 정책을 쓰기 캐싱 사용으로 설정하세요

  3. RAID의 경우, 최신 드라이버가 설치되어 있고 RAID가 올바르게 구성되었는지 확인하세요.

Linux

  1. Max Open Files가 49999로 설정되어 있나요? cat /proc/$(pgrep firebird)/limits로 확인하세요. 기본값은 4096이며, 필요한 경우 Firebird 서비스 파일에서 LimitNOFILE=49999로 설정하여 늘리세요.

  2. VMA 개수를 확인하세요 cat /proc/sys/vm/max_map_count, 기본값은 64K이며, 250K로 설정해야 합니다: /etc/sysctl.confvm.max_map_count=250000 줄을 추가하세요.

Firebird 구성 (Firebird 3 전용 권장 사항)

  1. 기본 DefaultDBCacheBuffers를 사용하지 마세요. 매우 낮습니다 (256 및 8K)! SuperClassic에는 1024, SuperServer에는 100K로 설정하세요. Firebird 3에서 Classic을 사용하지 마세요. 느립니다.

  2. DefaultDBCacheBuffers가 데이터베이스 헤더에서 재정의되지 않았는지 확인하세요: gstat -h database -> Page Buffers로 확인하고, 0이어야 합니다. gfix -buffers 0으로 0으로 설정하세요.

  3. OS의 파일 캐시를 사용하려면 FileSystemCacheThreshold =100M으로 설정하세요.

  4. SuperServer의 경우, DefaultDBCacheBuffers에 RAM의 30% 미만을 할당하세요. 데이터베이스가 많은 경우 모든 데이터베이스의 메모리를 계산하고 databases.conf를 사용하여 개별적으로 구성하세요. 다음 명령으로 총 연결 수와 데이터베이스 수를 확인하세요:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. SuperServer 및 SuperClassic의 경우 TempCacheLimit을 RAM의 25%로 설정하고, Classic의 경우 64M으로 설정하세요.

  2. LockMemSize=30M으로 설정하세요. 좋은 초기 값이며, fblockprint -d databasename 명령으로 잠금 테이블의 증가를 모니터링하고 필요한 경우 LockMemSize를 늘리세요.

  3. LockHashSlots=20011로 설정하세요. 좋은 초기 값이며, lockprint에서 Hash Lengths를 모니터링하세요.

데이터베이스

  1. 50Gb 이상의 데이터베이스의 경우 최대 페이지 크기인 16Kb(기본값 8Kb)를 사용하여 읽기 IO와 인덱스 깊이를 최적화하세요. 복원 시 “page” 스위치로 설정하세요: gbak**-c -page 16384**

  2. 읽기 전용이 아닌 데이터베이스에는 no_reserve 플래그를 사용하지 마세요. gfix -****use reserve로 제거하세요.

  3. gstat -h에서 트랜잭션 마커(OIT, OST, OAT, Next) 간의 차이를 모니터링하세요.

  4. (OST-OIT)가 크면 데이터베이스에 많은 가비지 버전이 포함되어 스윕이 필요할 수 있습니다. gfix -sweep으로 야간에 명시적 스윕을 예약하세요.

  5. (Next-OAT)가 크면 가비지 수집을 차단하는 오래 활성화된 쓰기 트랜잭션이 있음을 의미합니다. MON$ 테이블을 확인하여 어떤 애플리케이션이 트랜잭션을 열어두고 있는지 확인하고 수정하세요.

Firebird 성능을 추정하는 5분 테스트

오픈소스 INSERT-UPDATE_DELETE 스크립트를 사용하세요: www.ib-aid.com/dbtest현재 가장 빠른 테스트 서버는 초당 18140개의 삽입 레코드를 보여주었습니다. 당신의 결과는 어떻습니까?

이 간단한 튜닝 이상으로 Firebird 성능을 향상시키는 방법은?

IBSurgeon의 Firebird 최적화 서비스를 사용해 보세요 www.ib-aid.com/perf: 우리는 Firebird를 더 빠르게 작동시키는 방법을 알고 있습니다.