Cách làm Firebird hoạt động nhanh hơn 20% trên Windows Server 2016 trong chưa đầy 1 phút
Ngày càng nhiều người dùng nâng cấp lên Windows Server 2016 từ các phiên bản cũ, và một số người trong số họ đã nhận thấy rằng Windows Server 2016 hoạt động chậm hơn so với các phiên bản trước, ngay cả trên cùng một phần cứng với cùng một cơ sở dữ liệu.
Chúng tôi đã thực hiện một số bài kiểm tra trên Windows Server 2016 và Firebird, và phát hiện ra, trong số những thứ khác, một tùy chọn ảnh hưởng đáng kể đến hiệu suất của Windows Server 2016: gói nguồn (power plan).
Theo mặc định, Windows 2016 có gói nguồn «Balanced» (Cân bằng), tự động cân bằng hiệu suất với mức tiêu thụ năng lượng trên phần cứng có khả năng hỗ trợ. Nghe có vẻ không nguy hiểm, nhưng thực tế, gói nguồn Balanced trên Windows Server 2016 làm giảm mạnh hiệu suất CPU và làm giảm hiệu suất tổng thể của máy chủ.
Có thể chuyển đổi gói nguồn ngay lập tức, không cần khởi động lại. Xem hiệu quả của việc bật gói nguồn «High Performance» (Hiệu suất cao) trên máy chủ chạy cơ sở dữ liệu Firebird, phục vụ 70 kết nối:

Hiệu quả của gói nguồn High Performance đối với mức sử dụng CPU
Được rồi, đó có thể chỉ là mức sử dụng CPU, còn hiệu suất tổng thể thì sao? Chúng tôi đã chạy một số bài kiểm tra, tương tự như TPCC (mô phỏng ứng dụng OLTP) và nhận được các con số sau:
| Gói nguồn | Thông lượng TPC-C (càng cao càng tốt) |
|---|---|
| Balanced | 17029 |
| High Performance | 21226 |
Bài kiểm tra này bị giới hạn nhiều bởi đĩa, vì vậy sự khác biệt chỉ là 20%, đối với các hoạt động sử dụng nhiều CPU, mức cải thiện có thể còn cao hơn.
Ngoài ra, chúng tôi đã thực hiện bài kiểm tra khôi phục (với gbak -c) cơ sở dữ liệu Firebird 2.5 dung lượng 144Gb với các gói nguồn khác nhau:
| Gói nguồn | Thời gian khôi phục (càng ít càng tốt) |
|---|---|
| Balanced | 4 giờ 7 phút |
| High Performance | 2 giờ 35 phút |
Chỉ một tùy chọn «tiết kiệm năng lượng» duy nhất đã gần như tăng gấp đôi hiệu suất khôi phục! Tại sao chúng ta lại có sự tăng hiệu suất đáng chú ý như vậy? Câu trả lời nằm ở các chỉ mục: trong quá trình khôi phục, chúng sử dụng CPU một cách mạnh mẽ để sắp xếp các giá trị.
Hãy nhìn vào các giá trị dấu thời gian từ quá trình khôi phục gbak (tính bằng giây) cho 5 chỉ mục lớn nhất.
Với gói nguồn balanced khi chạy gbak:
gbak: 9529.339 1230.343 5028900 346529 activating and creating deferred index INDMF_TAG_PLC_DATA_DT_D
gbak: 10787.610 1258.270 5028909 233365 activating and creating deferred index INDMF_TAG_PLC_DATA_TAG_D
gbak: 11824.329 1036.718 5028907 216488 activating and creating deferred index INDMF_TAG_PLC_DATA_LU_D
gbak: 12571.012 746.683 5028907 265160 activating and creating deferred index INDMF_TAG_PLC_DATA_C1
gbak: 13304.334 733.321 5028908 359393 activating and creating deferred index PKMNF2_DOC_DOWNTIME
Tổng thời gian: 3775 giây
Với gói nguồn High Performance
gbak: 5301.785 615.045 5028900 346529 activating and creating deferred index INDMF_TAG_PLC_DATA_DT_D
gbak: 5924.667 622.882 5028909 233365 activating and creating deferred index INDMF_TAG_PLC_DATA_TAG_D
gbak: 6569.815 645.147 5028907 216488 activating and creating deferred index INDMF_TAG_PLC_DATA_LU_D
gbak: 7186.322 616.506 5028907 265160 activating and creating deferred index INDMF_TAG_PLC_DATA_C1
gbak: 7894.340 708.018 5028908 359393 activating and creating deferred index PKMNF2_DOC_DOWNTIME
Tổng thời gian: 2593 giây
Tóm tắt
Vì vậy, cài đặt đơn giản này trong Control Panel-> Hardware-> Power Options có thể cải thiện đáng kể hiệu suất cơ sở dữ liệu Firebird trên Windows Server 2016.
Vui lòng kiểm tra và bật gói nguồn High Performance ngay lập tức!
Đọc thêm về hiệu suất cơ sở dữ liệu Firebird:
- 45 cách tăng tốc cơ sở dữ liệu Firebird
- Giám sát hiệu suất mới trong HQbird 2018
- Dịch vụ tối ưu hóa hiệu suất Firebird
Đặc biệt cảm ơn Oleg Matveev đã hỗ trợ chuẩn bị bài viết này!