PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

LỖI:hết bộ nhớ trên máy có RAM 32 GB và không có tệp hoán đổi

Nếu tôi đang đọc đầu ra của đầu ra của bạn một cách chính xác, nó sẽ không được thực hiện tại một thời điểm khi bạn hết bộ nhớ.

Lỗi thực tế có vẻ ổn - nó không yêu cầu dung lượng bộ nhớ lớn nên có thể máy đã hết bộ nhớ vào thời điểm đó.

Hãy xem nhanh cài đặt của bạn:

max_connections = 1000                  # (change requires restart)
work_mem = 40MB                         # min 64kB

Vì vậy - bạn có ý kiến ​​rằng bạn có thể hỗ trợ 1000 truy vấn đồng thời, mỗi truy vấn sử dụng 10 + 40MB giả sử (một số có thể sử dụng bội số của 40MB nhưng hãy hợp lý). Vì vậy - điều này gợi ý cho tôi rằng máy của bạn có> 500 lõi và có 100GB RAM. Đó không phải là trường hợp.

Vì vậy - lấy số lõi của bạn và tăng gấp đôi - đó là một giá trị hợp lý cho số lượng kết nối tối đa. Điều đó sẽ cho phép bạn một truy vấn trên mỗi lõi trong khi một lõi khác đang đợi I / O. Sau đó, đặt một bộ gộp kết nối trước DB nếu bạn cần (bộ gộp kết nối của pgbouncer / Java).

Sau đó, bạn thậm chí có thể cân nhắc tăng work_mem nếu cần.

Ồ - hoàn toàn hợp lý để chạy mà không bật hoán đổi. Khi bạn bắt đầu hoán đổi, bạn vẫn đang ở trong một thế giới đau đớn về việc sử dụng cơ sở dữ liệu.

Chỉnh sửa:mở rộng trên work_mem so với shared

Nếu nghi ngờ, hãy luôn tham khảo tài liệu .

shared_buffers giá trị, như tên cho thấy được chia sẻ giữa các phần phụ trợ. work_mem không chỉ cho mỗi chương trình phụ trợ, nó thực sự theo từng loại. Vì vậy - một truy vấn có thể sử dụng gấp ba hoặc bốn lần số tiền đó nếu nó đang thực hiện sắp xếp trên ba truy vấn con.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - Mệnh đề GROUP BY

  2. postgresql cập nhật nhiều bảng trong một truy vấn

  3. Lấy chuỗi truy vấn đã kích hoạt trình kích hoạt

  4. Cảnh báo gây phiền nhiễu cho con rối và Postgres:Phiên bản chuyển sang máy chủ postgresql ::không được dùng nữa

  5. Xếp hạng dựa trên chuỗi ngày