Một trong những máy chủ PostgreSQL của tôi lưu trữ một số cơ sở dữ liệu (1-3) nhận được luồng dữ liệu liên tục. Dữ liệu không có cấu trúc đặc biệt, nó có thời gian hiện tại và nhiều loại dữ liệu được quan sát cho thời điểm cụ thể đó. Tốc độ dữ liệu khá cao; nó hoạt động khoảng một gigabyte mỗi ngày cho một cơ sở dữ liệu, khoảng một phần mười trong số đó cho cơ sở dữ liệu khác. Tôi không hy vọng tỷ lệ này sẽ tăng. Hiệu suất đọc là một ưu tiên thấp hơn nhiều và hiện đang được chấp nhận.
Trong nhật ký tôi có thông báo này:
LOG: checkpoints are occurring too frequently (15 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".
Giá trị này hiện được đặt thành 16, theo phép lịch sự pgtune
.
Các cài đặt tôi nên xem xét để cải thiện hiệu suất ghi là gì? Tôi muốn giữ an toàn nhất có thể. Xem xét khối lượng dữ liệu đến, tôi có thể chấp nhận mất một số dữ liệu gần đây trong một thất bại miễn là phần lớn dữ liệu còn nguyên vẹn.
Chỉnh sửa: Hiện tại tôi đang sử dụng PostgreSQL 9.0, nhưng tôi dự định nâng cấp lên 9.1. Tôi không đăng chi tiết phần cứng bởi vì trong khi tôi thừa nhận tầm quan trọng của chúng, cuối cùng tôi sẽ cần thực hiện tối ưu hóa này trên một số máy có phần cứng rất đa dạng. Nếu phần cứng là điều cần thiết cho câu trả lời, xin vui lòng cho tôi thông tin chung để tôi có thể áp dụng câu trả lời cho các máy có cấu hình phần cứng khác nhau.
checkpoint_segments
theo khuyến cáo? Chuyện gì đã xảy ra?