Có thể quá nhiều kết nối nhàn rỗi ảnh hưởng đến hiệu suất PostgreQuery 9.2?


8

Một số truy vấn trên máy chủ cơ sở dữ liệu của tôi dường như mất nhiều thời gian để trả lời và tôi tin rằng việc sử dụng CPU là cao. Khi chạy ps aux, tôi thấy ~ 250 kết nối "nhàn rỗi" (mà tôi tin là có quá nhiều). Tôi chưa bắt đầu chẩn đoán đầy đủ, nhưng tôi muốn biết liệu đây có phải là nơi tốt để bắt đầu tìm kiếm hay không.

Tôi cũng đang sử dụng PGBouncer với tổng hợp cấp độ giao dịch. Tôi nghi ngờ rằng tôi có thể dễ dàng giảm số lượng idlekết nối bằng cách điều chỉnh kích thước nhóm. Tuy nhiên, tôi không muốn bắt đầu thực hiện quá nhiều thay đổi trừ khi có lý do chính đáng để thực hiện.

Nhiều idlekết nối trong PostgreSQL 9.2 có thể ảnh hưởng đến hiệu suất không?

Cảm ơn rất nhiều!


"quá nhiều kết nối nhàn rỗi" có nghĩa là gì? hàng chục? hàng trăm?
jap1968

Chỉnh sửa câu hỏi. Cảm ơn đã chỉ ra điều này. Chỉ cần làm rõ, số cuối cùng là ~ 250
Juan Carlos Coto

Có lẽ? Tôi biết Oracle DBA ở đây đã yêu cầu mọi người thiết lập các công cụ dev của họ để sử dụng một phiên duy nhất cho tất cả các cửa sổ (thay vì một phiên mới cho mọi cửa sổ) khi cơ sở dữ liệu phát triển bắt đầu chạy rất chậm. Con số chính xác được tính là "quá nhiều" có thể sẽ phụ thuộc vào tài nguyên có sẵn cho cơ sở dữ liệu của bạn.
Thất vọngWithFormsDesigner

Câu trả lời:


3

Tôi nghiêm túc nghi ngờ các kết nối nhàn rỗi là vấn đề của bạn. PostgreSQL rất có khả năng xử lý các phiên nhàn rỗi vì chúng hầu như không mất tài nguyên. Mặt khác, các phiên hoạt động có nhiều khả năng là nguyên nhân của sự chậm chạp.

Xem https://wiki.postgresql.org/wiki/Number_Of_Database_Connections để tham khảo về số lượng kết nối cơ sở dữ liệu.


Các phiên nhàn rỗi với các giao dịch không được cam kết thường là thủ phạm nghịch ngợm!
Philᵀᴹ

Tôi đồng ý, Phil, mặc dù điều đó thực sự không phải về PostgreSQL - đó là về cách viết kết thúc của khách hàng (trừ khi tôi thiếu một cái gì đó).
Max Vernon

Xin vui lòng xem một câu hỏi liên quan về điều này . Nó thực sự có ích nếu bạn tham gia vào nó. Cảm ơn!
Juan Carlos Coto

Trên thực tế, các kết nối nhàn rỗi có rất nhiều (bộ nhớ) và chúng nên tránh (tôi nghĩ rằng nó phân bổ khoảng 10 MB cho mỗi kết nối, vì vậy trong trường hợp của bạn, bạn sẽ lãng phí ít nhất 2,5 GB bộ nhớ)
Kedare 7/11/2017

1
@MaxVernon - trong máy chủ postgresql 9.5 đang chạy của tôi, tôi có 25 quy trình nhàn rỗi, cho cột RES, e. quá trình trung bình khoảng 12MB (phạm vi: 4,5 MB - 584 MB, tôi nghi ngờ những người lớn hơn có tx không được cam kết).
cerd
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.