Lập kế hoạch dung lượng đĩa & RAM
Lập kế hoạch dung lượng đĩa và bộ nhớ cho máy chủ cơ sở dữ liệu là một nghệ thuật đen. Càng nhiều càng tốt. Nhanh hơn là tốt hơn.
Theo hướng dẫn chung, tôi cung cấp như sau:
- Bạn muốn có nhiều không gian đĩa hơn bạn sẽ CẦN .
Hãy ước tính tốt nhất của bạn về dung lượng đĩa bạn cần trong 3-5 năm tới, sau đó nhân đôi nó.
- Bạn sẽ muốn có đủ RAM để giữ các chỉ mục cơ sở dữ liệu của bạn trong bộ nhớ, xử lý truy vấn lớn nhất của bạn ít nhất hai lần và vẫn còn đủ chỗ cho bộ đệm đĩa hệ điều hành khỏe mạnh.
Kích thước chỉ mục sẽ phụ thuộc vào cơ sở dữ liệu của bạn và mọi thứ khác phụ thuộc rất nhiều vào tập dữ liệu và cấu trúc truy vấn / cơ sở dữ liệu của bạn. Tôi sẽ cung cấp "Ít nhất gấp đôi kích thước của bảng lớn nhất của bạn" như một đề xuất, nhưng lưu ý rằng đề xuất này bị hỏng trong các hoạt động lưu trữ dữ liệu thực sự lớn trong đó bảng lớn nhất có thể là hàng chục hoặc hàng trăm gigabyte.
Mỗi nhà cung cấp cơ sở dữ liệu có một số hướng dẫn về hiệu suất điều chỉnh nhân đĩa / bộ nhớ / HĐH của bạn - Dành thời gian cho tài liệu này trước khi triển khai. Nó sẽ giúp.
Khối lượng công việc và kế hoạch năng lực
Giả sử bạn chưa triển khai
Nhiều hệ thống cơ sở dữ liệu vận chuyển với Công cụ đo điểm chuẩn - Ví dụ:
PostgreSQL vận chuyển với
pgBench .
Những công cụ này nên là điểm dừng đầu tiên của bạn trong hiệu suất cơ sở dữ liệu điểm chuẩn. Nếu có thể, bạn nên chạy chúng trên tất cả các máy chủ cơ sở dữ liệu mới để cảm nhận về "bao nhiêu công việc" mà máy chủ cơ sở dữ liệu có thể làm.
Bây giờ được trang bị một điểm chuẩn thô, ABSOLUTELY MEANINGLESS
hãy xem xét một cách tiếp cận thực tế hơn đối với điểm chuẩn: Tải lược đồ cơ sở dữ liệu của bạn và viết chương trình chứa dữ liệu giả, sau đó chạy truy vấn của ứng dụng đối với dữ liệu đó.
Điều này điểm chuẩn ba điều quan trọng: 1. Máy chủ cơ sở dữ liệu (phần cứng) 2. Máy chủ cơ sở dữ liệu (phần mềm) 3. Thiết kế cơ sở dữ liệu của bạn và cách nó tương tác với (1) và (2) ở trên.
Lưu ý rằng điều này đòi hỏi nhiều nỗ lực hơn so với các điểm chuẩn được xây dựng sẵn đơn giản như pgBench
: Bạn cần viết một số mã để thực hiện việc điền và bạn có thể cần phải viết một số mã để thực hiện các truy vấn và báo cáo thời gian thực hiện.
Loại thử nghiệm này cũng chính xác hơn về cơ bản: Vì bạn đang làm việc với lược đồ và truy vấn của mình, bạn có thể thấy cách chúng sẽ thực hiện và nó cung cấp cho bạn cơ hội để lập hồ sơ và cải thiện cơ sở dữ liệu / truy vấn của bạn.
Kết quả của các điểm chuẩn này là một cái nhìn lý tưởng hóa cơ sở dữ liệu của bạn. Để an toàn, giả định rằng bạn sẽ chỉ đạt được 50-70% hiệu suất này trong môi trường sản xuất của mình (phần còn lại là một tấm đệm cho phép bạn xử lý sự tăng trưởng bất ngờ, lỗi phần cứng, thay đổi khối lượng công việc, v.v.).
Quá muộn rồi! Đó là trong sản xuất!
Khi hệ thống của bạn đang trong quá trình sản xuất, quá muộn để "điểm chuẩn" - Bạn có thể bật ghi nhật ký / thời gian truy vấn nhanh và xem thời gian thực hiện và bạn có thể chạy một số truy vấn "kiểm tra căng thẳng" đối với các tập dữ liệu lớn trong khi tắt giờ Bạn cũng có thể xem xét việc sử dụng CPU, RAM và I / O (băng thông đĩa) của hệ thống để biết được mức độ tải của nó.
Thật không may, tất cả những điều này sẽ làm là cung cấp cho bạn một ý tưởng về những gì hệ thống đang làm, và một khái niệm mơ hồ về mức độ bão hòa của nó.
Điều đó đưa chúng ta đến với Lọ
Giám sát liên tục
Tất cả các điểm chuẩn trên thế giới sẽ không giúp bạn nếu hệ thống của bạn đột nhiên thấy các kiểu sử dụng mới / khác nhau.
Để triển khai cơ sở dữ liệu tốt hơn hoặc xấu hơn không phải là tĩnh: Các nhà phát triển của bạn sẽ thay đổi mọi thứ, tập dữ liệu của bạn sẽ phát triển (dường như chúng không bao giờ thu nhỏ lại) và người dùng của bạn bằng cách nào đó sẽ tạo ra các kết hợp điên rồ của các sự kiện mà bạn chưa từng dự đoán trong thử nghiệm.
Để lập kế hoạch dung lượng phù hợp cho cơ sở dữ liệu của bạn, bạn sẽ cần thực hiện một số loại giám sát hiệu suất để cảnh báo bạn khi hiệu suất cơ sở dữ liệu không còn đáp ứng mong đợi của bạn. Tại thời điểm đó, bạn có thể xem xét các hành động khắc phục (phần cứng mới, lược đồ DB hoặc thay đổi truy vấn để tối ưu hóa việc sử dụng tài nguyên, v.v.).
Lưu ý: Đây là một hướng dẫn chung và cấp độ cao để định cỡ phần cứng cơ sở dữ liệu của bạn và tìm hiểu mức độ lạm dụng của nó. Nếu bạn vẫn không chắc chắn về cách xác định xem một hệ thống cụ thể có đáp ứng nhu cầu của bạn hay không, bạn nên nói chuyện với một chuyên gia cơ sở dữ liệu.
Ngoài ra còn có một trang web Stack Exchange dành riêng cho quản lý cơ sở dữ liệu: dba.stackexchange.com . Tìm kiếm kho lưu trữ câu hỏi của họ hoặc duyệt các thẻ cụ thể cho công cụ cơ sở dữ liệu của bạn để được tư vấn thêm về điều chỉnh hiệu suất.