Tôi đã may mắn có được việc sử dụng phiên bản Linode 20 GB chạy Ubuntu 64 bit. Tôi muốn cố gắng tối ưu hóa PostGres cho dịch vụ này, nhưng tôi không biết mình nên ưu tiên thay đổi điều gì.
Tôi có một vài bộ dữ liệu gồm khoảng 20.000 hàng và các tính toán đang được thực hiện là các truy vấn cần nhiều bộ nhớ (phân tích không gian) với một số lượng nhỏ các hàng được viết sau mỗi yêu cầu. Tổng số người dùng rất ít (10 - 50).
Tôi đã đọc qua bài viết này trên trang Postgresql nhưng tôi không biết đủ về cách thức hoạt động của nó, để biết những gì tôi nên ưu tiên. Tôi cũng đã xem xét lời khuyên về những gì cần thay đổi cho loại công việc địa lý ở đây.
Ví dụ: tôi đã thử thay đổi shared_buffers
thành 200MB
(ít hơn 75% so với 20GB). Điều này dẫn đến thông báo lỗi sau:
- Khởi động lại máy chủ cơ sở dữ liệu PostgreSQL 9.1
- Máy chủ PostgreSQL không khởi động được. Vui lòng kiểm tra đầu ra nhật ký: 2013-03-10 12:21:58 EDT FATAL: không thể tạo phân đoạn bộ nhớ dùng chung: Đối số không hợp lệ 2013 / 03-10 12:21:58 EDT CHI TIẾT: Cuộc gọi hệ thống thất bại là shmget (key = 5432001 , kích thước = 47742976, 03600). 2013/03/10 12:21:58 EDT GỢI Ý: Lỗi này thường có nghĩa là yêu cầu của PostgreQuery đối với phân đoạn bộ nhớ dùng chung vượt quá tham số SHMMAX của hạt nhân của bạn. Bạn có thể giảm kích thước yêu cầu hoặc cấu hình lại kernel bằng SHMMAX lớn hơn. Để giảm kích thước yêu cầu (hiện tại là 47742976 byte), hãy giảm mức sử dụng bộ nhớ dùng chung của PostgreQuery, có lẽ bằng cách giảm shared_buffers hoặc max_connections. Nếu kích thước yêu cầu đã nhỏ, có thể nó nhỏ hơn tham số SHMMIN của hạt nhân của bạn, trong trường hợp tăng kích thước yêu cầu hoặc cấu hình lại SHMMIN được yêu cầu. Tài liệu PostgreSQL chứa nhiều thông tin hơn về cấu hình bộ nhớ dùng chung.
Tôi đã trả lại giá trị ban đầu này và thử thay đổi:
work_mem = 50MB
maintenance_work_mem = 256MB
Vấn đề của tôi là tôi không biết nên thay đổi giá trị nào hoặc tôi nên ưu tiên giá trị nào là chìa khóa để thử nghiệm và kiểm tra. Tôi nên làm gì đặc biệt để tối ưu hóa cơ sở dữ liệu này?
shared_buffers
. Xem postgresql.org/docs/civerse/static/r nb-config-resource.html , postgresql.org/docs/civerse/static/ trộm