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

Thư viện IBSurgeon

Bản tin Hiệu suất Firebird: Số 1

Chúng tôi quyết định ra mắt một “bản tin hiệu suất Firebird” khá đều đặn, dành riêng cho các bài kiểm tra hiệu suất, mẹo, thủ thuật, cải tiến cấu hình, v.v.

Trong số đầu tiên, chúng tôi có:

Firebird 4 vs Firebird 3: Tin tốt, mọi người!

Kể từ năm 2019, khi chúng tôi công bố bộ sưu tập kết quả đầu tiên từ bài kiểm tra INSERT/UPDATE/DELETE đơn giản, nhiều người đã gửi cho chúng tôi kết quả từ máy chủ Firebird của họ và chúng tôi đã thêm chúng vào bảng tính và biểu đồ tương ứng.

Bài kiểm tra là một công cụ đơn giản nhưng mạnh mẽ để đo lường và so sánh hiệu suất của các cấu hình phần cứng + Firebird khác nhau, cho phép nhanh chóng xác nhận hoặc bác bỏ vấn đề về phần cứng hoặc cấu hình.

Gần đây, chúng tôi đã sử dụng bài kiểm tra này để so sánh hiệu suất INSERT/UPDATE/DELETE của Firebird 4.0 (phiên bản 4.0.0.2394, một vài bản dựng trước khi phát hành) và 3.0 (phiên bản 3.0.8.33426, snapshot, bản tiền phát hành của 3.0.8 sắp tới, nó ổn định như một bản phát hành nhỏ, theo các bài kiểm tra tự động của Firebird).

Môi trường kiểm tra là Intel i3-10100F 3.60GHz với SSD Samsung SSD 870QVO và ổ RAM (qSoft), với các kích thước RAM khác nhau (16,32,64) và Page Buffers.

Dưới đây là biểu đồ và đây là bảng tính XLS với kết quả.

Như bạn có thể thấy, trong cùng điều kiện và cùng cấu hình, Firebird 4 nhanh hơn khoảng 10% so với 3.0.8 trong các thao tác ghi. Đây chắc chắn là tin tốt và chỉ là một dấu hiệu nữa cho thấy đã đến lúc xem xét kỹ hơn bản phát hành sắp tới và bắt đầu chuẩn bị cho việc di chuyển.

Tất nhiên, cách tiếp cận tốt nhất là chạy cùng một bài kiểm tra trên máy chủ của riêng bạn và tự mình thấy sự cải thiện thực tế.

Xem cách thực hiện »

Chọn phiên bản AWS EC2 tốt nhất để đạt hiệu suất ghi Firebird tối đa

Ngày càng nhiều công ty nghĩ đến việc “chuyển lên đám mây” và Amazon Web Service Elastic Cloud là một trong những “điểm đến đám mây” được yêu thích.

Tuy nhiên, AWS cung cấp rất nhiều loại phiên bản khác nhau, làm thế nào để chọn được loại tốt nhất? Tất nhiên, hãy chạy các bài kiểm tra!

Chúng tôi đã thực hiện các bài kiểm tra INSERT/UPDATE/DELETE đơn giản cho 20 loại phiên bản và tìm thấy một số lựa chọn thực sự tốt cho Firebird.

Xin lưu ý - tất cả giá trong các phép tính và biểu đồ dưới đây là cho khu vực Frankfurt của AWS EC2, chúng được lấy nguyên trạng từ aws.amazon.com, không có bất kỳ khoản chiết khấu nào, chúng có thể phải chịu thêm thuế và có thể thay đổi theo thời gian - vì vậy xin đừng coi giá dưới đây là giá cuối cùng hoặc là hướng dẫn mua chính xác.

Đây là biểu đồ tổng thể và bảng tính XLS với kết quả:

Để đơn giản, chúng tôi đã tạo cột Operations, về cơ bản là tổng của Inserts+Updates+Deletes và sử dụng nó làm chỉ số hiệu suất ghi thống nhất:

Như bạn có thể thấy, 3 loại phiên bản sau đây dẫn đầu về hiệu suất (từ quan điểm của các thao tác ghi Firebird):

Phiên bản Chi phí mỗi giờ cho Linux Operations/trên giây

| z1d.xlarge | USD$0.45 | 45834 | | m5dn.2xlarge | USD$0.648 | 45198 | | m5d.2xlarge | USD$0.544 | 44150 |

Điều thú vị là những người dẫn đầu không phải là các loại phiên bản đắt nhất! Tất nhiên, chúng ta cần lưu ý rằng bài kiểm tra là đơn luồng (và không được hưởng lợi từ số lượng lõi) và không yêu cầu lượng RAM lớn (vì cơ sở dữ liệu chỉ 3.6Gb), nhưng đối với các ứng dụng yêu cầu xử lý nhanh các thao tác ghi cao điểm, các phiên bản này trông thực sự tối ưu.

Mặc dù thực tế là các loại phiên bản này không đắt nhất (trong số các loại được kiểm tra), chúng vẫn đủ đắt để phải suy nghĩ kỹ về ngân sách, và vì một trong những lợi thế được quảng cáo của đám mây là tính linh hoạt, nên bắt đầu với các loại VM rẻ hơn, có thể đủ tốt để phục vụ cơ sở dữ liệu Firebird của chúng ta, phải không?

Để tìm ra các loại phiên bản có chi phí/hiệu suất tối ưu, chúng tôi đã tạo một cột khác trong bảng tính của mình: “Operations trên 1 USD”.

Nó có nghĩa chính xác như tên gọi - bạn có thể mua bao nhiêu thao tác ghi với 1 USD.

Công thức như sau:

Operations_Per_Second * 3600 giây trong một giờ / Giá mỗi giờ

Như bạn có thể thấy, từ quan điểm này, những người dẫn đầu là khác nhau:

Phiên bản Giá Linux mỗi giờ Operations trên 1 USD Operations trên giây
c5d.xlarge USD$0,222 579062087 35709
c5ad.xlarge USD$0,2 565024995 31390
m5dn.xlarge USD$0,324 446037216 40143

Điều rất thú vị là #3, m5dn.xlarge với hiệu suất cao điểm ~40K/trên giây - khá gần với người dẫn đầu hiệu suất z1d.xlarge với 45834 operations/giây, nhưng rẻ hơn đáng kể.

Nhìn chung, kinh nghiệm của chúng tôi với AWS EC2 cho thấy đây là một môi trường ổn định, trưởng thành, với nhiều tính năng bảo mật/sao lưu/khả dụng cao/etc tốt, nhưng, giống như bất kỳ nền tảng phức tạp nào, nó đòi hỏi kinh nghiệm (hoặc chuyên môn bên ngoài) để đưa ra lựa chọn phù hợp và không phải trả những hóa đơn quá lớn cho các ứng dụng có tải trọng không quá lớn.

Kết quả gần đây từ bài kiểm tra INSERT/UPDATE/DELETE

Vì vậy, như bạn có thể thấy, bài kiểm tra đơn giản có thể hữu ích không chỉ như một sự so sánh giữa phần cứng và Firebird mà còn có thể giúp bạn tiết kiệm một vài đô la.

Chúng tôi đã công bố một biểu đồ với các kết quả được thu thập gần đây và một bảng tính XLS để bạn có thể thao tác, vì vậy bạn có thể tự kiểm tra tại đây.

Dưới đây là 3 kết luận rõ ràng:

  1. Ổ NVME thực sự tuyệt vời, vì vậy nếu bạn cần máy chủ Firebird mạnh mẽ, hãy mua NVME cho cơ sở dữ liệu.
  2. Tần số CPU cao rất quan trọng cho hiệu suất cao của cơ sở dữ liệu Firebird. Các nhà cung cấp thường thúc đẩy bạn mua bộ xử lý đa lõi với tần số thấp hơn (<3Ghz), nhưng điều này có thể không phải là lựa chọn tốt nhất cho Firebird và ít lõi hơn với tần số cao hơn có thể mang lại kết quả tốt hơn.
  3. Nếu hồ sơ tải cơ sở dữ liệu của bạn nặng về ghi, hãy thử giảm Page Buffers: thử nghiệm với DefaultDbCachePages như 50K, 100K, 250K, v.v. Sẽ thật tuyệt nếu bạn chia sẻ kết quả với chúng tôi!

Hãy thoải mái nghiên cứu kết quả kiểm tra và đặt bất kỳ câu hỏi nào hoặc gửi đề xuất.

Trong các số tiếp theo của “Firebird Performance Newsletter”

Trong số thứ 2, chúng tôi sẽ trình bày cách cấu hình nhiều phiên bản SuperClassic để phục vụ một cơ sở dữ liệu (trong số những thứ khác, điều này có thể hữu ích để phân chia tải giữa nhiều cổng mạng). Kế hoạch cho các số tiếp theo rất lớn: các lỗi cấu hình, kiểm tra cơ sở dữ liệu được mã hóa, so sánh nâng cao hiệu suất Firebird 4 với Firebird 3, tối ưu hóa chỉ mục, v.v.

Nếu bạn quan tâm và muốn nhận thông báo về các số mới, hãy tham gia cùng chúng tôi trên Kênh Telegram FirebirdSQL.

Liên hệ với chúng tôi

Vui lòng liên hệ với chúng tôi với bất kỳ câu hỏi và đề xuất nào: Alexey Kovyazin: [email protected].