PostgreSQL: Kích thước đề xuất cho shared_buffers


9

Tôi còn khá mới với PostgreSQL. Tôi đã bắt đầu chuyển một số cơ sở dữ liệu MySQL sang PostgreSQL một tháng trước.

Tôi đang tìm kiếm sự giúp đỡ về các giá trị bộ nhớ phù hợp cho tập tin cấu hình.

Hiện tại, tôi có một máy chủ chuyên dụng khiêm tốn (2GB RAM) chạy Apache, MySQL và PostgreSQL trong Linux. Cơ sở dữ liệu MySQL chính có kích thước gấp khoảng 3 lần cơ sở dữ liệu chính trong PostgreSQL và điều tương tự cũng có thể nói đối với lưu lượng dữ liệu.

Tôi vẫn có tệp cấu hình mặc định cho PostgreSQL, có tham số shared_buffers = 32MB. Tôi cho rằng tôi nên tăng giá trị này, nhưng tôi không muốn xử phạt các cơ sở dữ liệu khác. Tôi đã đọc một cái gì đó về việc dành 25% bộ nhớ vật lý có sẵn cho PostgreSQL, nhưng tôi không chắc về điều đó.

Cơ sở dữ liệu mới chứa bảy bảng, có một bảng lớn nhất khoảng 3 hàng MM. Máy hiện có lưu lượng truy cập thấp (phục vụ khoảng 10000 ~ 20000 lượt chọn mỗi ngày), nhưng những giá trị này dự kiến ​​sẽ tăng lên.

Tôi đã suy nghĩ về việc tăng shared_buffers lên 256MB, nhưng tôi muốn nghe một số ý kiến ​​từ người dùng có nhiều kinh nghiệm hơn với RDBMS này.

Câu trả lời:


4

Tôi sẽ tránh đặt MySQL PostgreSQL trên cùng một máy chủ. Họ cạnh tranh cho cùng một nguồn lực. Nếu bạn có thể , hãy chuyển mọi thứ sang một RDBMS. Sự lựa chọn rõ ràng của tôi sẽ là PostgreSQL.

Sau đó, bạn có thể đặt shared_buffersthành một cái gì đó như 500 MB và effective_cache_sizemột cái gì đó như 1,5 GB. Hãy chắc chắn để đọc gợi ý trong hướng dẫn .

Nhưng tôi cũng khuyên bạn nên thêm RAM vật lý. 2 GB không nhiều. Khó đủ cho hiệu suất tốt với hàng triệu hàng. Một vài GB RAM không nên tốn nhiều tiền.

Nếu bạn phải gắn bó với thiết lập 250 MB cho Postgres có vẻ hợp lý. Nếu MySQL có lưu lượng truy cập nhiều gấp ba lần, thì tổng thể có thể ít hơn. Thích 128 MB.

Khái niệm cơ bản để tối ưu hóa hiệu suất trong Wiki Postgres.


Ý tưởng là cuối cùng mọi thứ đã được chuyển sang PostgreSQL, vì vậy MySQL sẽ không chạy trên máy chủ này trong tương lai. Mặt khác, đây là một dự án được thực hiện với chi phí = 0, vì vậy rất khó (không thể) có máy chủ thứ hai hoặc để có thêm RAM. Tôi đã tăng shared_buffers lên 128 MB và mọi thứ dường như hoạt động bình thường.
jap1968
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.