Xem sử dụng bộ nhớ Postgresql


11

Tôi đang chạy Postgresql trên máy chủ Ubuntu và cần có khả năng theo dõi việc sử dụng bộ nhớ của nó. Hiện tại tôi có các tập lệnh đang chạy trong một công việc định kỳ một phút để theo dõi / ghi lại các số liệu thống kê khác nhau và cũng cần theo dõi / ghi nhật ký sử dụng bộ nhớ hiện tại của Postgresql. Tôi đã tìm kiếm xung quanh và không thể tìm thấy nhiều, ngoài thực tế là Postgresql sử dụng tốt bộ nhớ dùng chung nên các giá trị được cung cấp bởi một chương trình như 'top' không chính xác.

Làm cách nào tôi có thể theo dõi tổng mức sử dụng bộ nhớ của Postgresql tại bất kỳ thời điểm nào? Dữ liệu này sau đó sẽ được sử dụng để tạo biểu đồ để phân tích.

Câu trả lời:


8

Việc sử dụng bộ nhớ trong linux nói chung và Postgres nói riêng là một chủ đề khá phức tạp , điểm khởi đầu tốt là blog Bruce Momjians bao gồm chủ đề và cách sử dụng smem . Nó cũng có giá trị theo các liên kết trong blog của Chris Seibenmanns về chủ đề này.


Cảm ơn các liên kết, nhưng có vẻ như smem sẽ không hoạt động vì phiên bản kernel quá cũ. Bài viết tốt mặc dù.
Rauffle

0

Bạn có thể sử dụng pmaplệnh để lấy bộ nhớ đã sử dụng của một tiến trình:

# pmap -p PID

Thật không may, pmap không hữu ích trong trường hợp này vì Postgresql sử dụng rất nhiều bộ nhớ chia sẻ. Đôi khi, tổng bộ nhớ được báo cáo bởi các công cụ như pmap cho Postgresql lớn hơn tổng bộ nhớ có thể sử dụng trên hệ thống vì điều này.
Rauffle
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.