Trang này được dịch bằng máy. Đọc bản gốc tiếng Anh. English

Thư viện IBSurgeon

Danh sách kiểm tra hiệu suất cơ sở dữ liệu Firebird ngắn gọn

Windows

  1. Đặt gói năng lượng tiết kiệm thành hiệu suất cao (+20% trên Windows Server 2016+)?

  2. Đặt Chính sách ghi bộ nhớ đệm (Write-Caching Policy) cho ổ đĩa thành Bật ghi bộ nhớ đệm (Enable Write-Caching)

  3. Trong trường hợp RAID, hãy kiểm tra trình điều khiển hiện đại đã được cài đặt và RAID được cấu hình đúng cách.

Linux

  1. Max Open Files có được đặt thành 49999 không? Kiểm tra bằng lệnh cat /proc/$(pgrep firebird)/limits, mặc định là 4096, hãy tăng nó nếu cần: đặt trong tệp dịch vụ Firebird dòng LimitNOFILE=49999

  2. Kiểm tra số lượng VMA cat /proc/sys/vm/max_map_count, mặc định là 64K, nên được đặt thành 250K: thêm vào /etc/sysctl.conf dòng vm.max_map_count=250000

Cấu hình Firebird (khuyến nghị chỉ dành cho Firebird 3)

  1. Đảm bảo bạn không sử dụng DefaultDBCacheBuffers mặc định, chúng rất thấp (256 và 8K)! Đặt 1024 cho SuperClassic và 100K cho SuperServer. Không sử dụng Classic trong Firebird 3, nó chậm.

  2. Đảm bảo rằng DefaultDBCacheBuffers không bị ghi đè trong tiêu đề cơ sở dữ liệu: kiểm tra bằng lệnh gstat -h database -> Page Buffers, nó phải là 0. Đặt nó thành 0 bằng lệnh gfix -buffers 0.

  3. Đặt FileSystemCacheThreshold =100M để sử dụng bộ nhớ đệm tệp của hệ điều hành

  4. Đối với SuperServer, phân bổ cho DefaultDBCacheBuffers ít hơn 30% RAM. Nếu bạn có nhiều cơ sở dữ liệu, hãy tính bộ nhớ cho tất cả chúng và sử dụng databases.conf để cấu hình chúng riêng biệt. Kiểm tra tổng số kết nối và cơ sở dữ liệu bằng lệnh:

fbsvcmgr.exe localhost:service_mgr user sysdba password masterkey info_svr_db_info

  1. Đối với SuperServer và SuperClassic, đặt TempCacheLimit thành 25% RAM, đối với Classic - 64M.

  2. Đặt LockMemSize=30M, đây là giá trị ban đầu tốt, sau đó theo dõi sự tăng trưởng của bảng khóa bằng lệnh fblockprint -d databasename và tăng LockMemSize nếu cần

  3. Đặt LockHashSlots=20011, đây là giá trị ban đầu tốt, theo dõi Hash Lengths trong lockprint

Cơ sở dữ liệu

  1. Đối với cơ sở dữ liệu > 50Gb, hãy sử dụng kích thước trang tối đa: 16Kb (mặc định 8Kb), để tối ưu hóa IO đọc và độ sâu của chỉ mục. Đặt nó trong quá trình khôi phục bằng công tắc “page”: gbak**-c -page 16384**

  2. Không sử dụng cờ no_reserve cho các cơ sở dữ liệu không chỉ đọc. Loại bỏ nó bằng lệnh **gfix -**use reserve

  3. Theo dõi sự khác biệt giữa các điểm đánh dấu giao dịch (OIT, OST, OAT, Next) từ gstat -h.

  4. (OST-OIT) lớn có nghĩa là cơ sở dữ liệu có thể chứa nhiều phiên bản rác và cần quét dọn. Lên lịch quét dọn rõ ràng vào ban đêm bằng lệnh gfix -sweep

  5. (Next-OAT) lớn có nghĩa là giao dịch ghi dài hạn đang hoạt động chặn việc thu gom rác. Kiểm tra các bảng MON$ để xem ứng dụng nào đang giữ giao dịch mở và sửa nó.

Kiểm tra 5 phút để ước tính hiệu suất Firebird

Sử dụng tập lệnh INSERT-UPDATE_DELETE mã nguồn mở: www.ib-aid.com/dbtestHiện tại, máy chủ nhanh nhất được kiểm tra đã đạt 18140 bản ghi được chèn mỗi giây, kết quả của bạn sẽ là bao nhiêu?

Làm thế nào để cải thiện hiệu suất Firebird vượt xa việc tinh chỉnh đơn giản này?

Hãy thử dịch vụ tối ưu hóa Firebird của IBSurgeon tại www.ib-aid.com/perf: chúng tôi biết cách làm cho Firebird của bạn hoạt động nhanh hơn.