7

Tôi vừa nâng cấp cơ sở dữ liệu Heroku postgres của mình từ kế hoạch Kappa (RAM 800MB, postgres 9.1) lên kế hoạch Ronin (RAM 1.7GB, postgres 9.2), nhưng hiệu suất đã giảm.Tỷ lệ lần truy cập bộ nhớ cache thấp của Postgres - kích thước dữ liệu hoặc thứ gì đó khác?

Làm theo hướng dẫn here, tôi đã kiểm tra và tỷ lệ truy cập bộ nhớ cache thậm chí còn thấp hơn so với cơ sở dữ liệu Kappa của chúng tôi (hiện tại ~ 57%, trước đây ~ 69%). Thiết kế ứng dụng của chúng tôi phải rất ổn, vì chúng tôi đã thấy tỷ lệ truy cập bộ nhớ cache ~ 99% trước đây.

Đề xuất là tập dữ liệu sẽ có thể vừa với bộ nhớ, hiện không phải là vấn đề - kích thước dữ liệu của chúng tôi là 1,27GB (ít nhất là trong số đó phải phù hợp).

Tỷ lệ truy cập bộ nhớ cache thấp do kích thước dữ liệu hay có điều gì khác mà tôi có thể xem xét? Hay đơn giản là trường hợp bộ nhớ cache của cơ sở dữ liệu không được làm ấm hoàn toàn? (đã gần 2 ngày)

+1

Giá trị cũ và hiện tại của * effective_cache_size * là gì? Và * work_mem *? – Beryllium

+3

Ngoài ra: thống kê của bạn có được cập nhật không? (bạn có chạy 'VACUUM ANALYZE' sau khi nhập/chuyển đổi không?) – wildplasser

+0

@Beryllium effective_cache_size 900000kB/1170000kB, work_mem 50MB/10MB (trước/sau) – Daniel

Trả lời

3

Nếu bạn có nhiều bộ nhớ và không chạy nhiều trên db, một thứ có thể thay đổi là shared_buffers. Những gì các bộ đệm chia sẻ làm là chúng cache dữ liệu thường được sử dụng để nó tối đa hóa trong suốt khi không phải tất cả các cơ sở dữ liệu sẽ phù hợp trong bộ nhớ.

Rất tiếc, bộ nhớ cache này không hoạt động tốt như bộ nhớ cache của hệ điều hành. Nếu dữ liệu của bạn sẽ dễ dàng vừa với bộ nhớ, hãy đảm bảo rằng effective_cache_size đủ cao và sau đó thử giảmshared_buffers

Lưu ý rằng đây không phải là một viên đạn ma thuật. Kích thước thích hợp của shared_buffers phụ thuộc vào lượng dữ liệu bạn có, dung lượng cần thiết, loại truy vấn của bạn, dung lượng bộ nhớ sẽ hướng tới những thứ như sắp xếp và các loại tương tự. Bạn có thể mong đợi để chơi xung quanh với điều này theo thời gian để tìm điểm ngọt cho thiết lập và cơ sở dữ liệu hiện tại của bạn.

Các vấn đề liên quan