Quá nhiều I / O được tạo bởi quá trình thu thập số liệu thống kê postgres


10

Tôi đang sử dụng XenServer với một số máy ảo có cơ sở dữ liệu postgres cục bộ. Ngay cả khi tất cả các ứng dụng không được sử dụng và cơ sở dữ liệu không hoạt động, mỗi vm gây ra lưu lượng mạng lưu trữ liên tục làm giảm hiệu suất của thiết bị lưu trữ iscsi.

Sau khi chạy, iotoptôi đã lưu ý rằng quá trình thu thập số liệu thống kê postgres liên tục ghi vào đĩa với tốc độ khoảng 2 MByte / s.

Sau đó tôi đã vô hiệu hóa việc thu thập số liệu thống kê bằng cách chỉnh sửa /etc/postgresql/8.4/main/postgresql.conf:

#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = off
track_counts = off
...

như được đề xuất trong http://www.postgresql.org/docs/8.4/static/r nb-config-statistic.htmlm .

Điều này đã loại bỏ việc viết liên tục, nhưng có bất kỳ nhược điểm nào tắt tính năng theo dõi thống kê không?

Hoặc tôi nên đặt thư mục pg_stat_tmp trên ramdisk để tránh lưu lượng đĩa / mạng?

Hệ thống này là một bản Debian 6.0.7 (siết chặt) cập nhật với postgres 8.4 và khoảng 20 cơ sở dữ liệu với khoảng 50 bảng, tổng kích thước tệp kết xuất nhỏ hơn 100 MByte.

Câu trả lời:


7

Do việc nâng cấp PostgreSQL không phải là một tùy chọn, tôi đã thử đặt thư mục pg_stat_tmp trên hệ thống tệp tmpfs, mang lại sự cải thiện hiệu suất đáng kể. Tôi hiện đang chạy nó trên một vài chục hệ thống trong một vài tháng mà không có bất kỳ nhược điểm đáng chú ý nào.

Để thực hiện việc này, chỉ cần gắn pg_stat_tmp với tmpfs trong tệp / etc / fstab của bạn:

# <file system> <mount point>                                <type>  <options>  <dump>  <pass>
tmpfs           /var/lib/postgresql/8.4/main/pg_stat_tmp     tmpfs   defaults,noatime,mode=1777,uid=postgres,gid=postgres,nosuid,nodev 0 0

Tôi đã làm điều này cho Postgresql 9.1. Một trong những máy chủ của tôi đã ghi liên tục 1 MB / s trong suốt cả ngày. Điều này làm cho nó giảm xuống gần như không có gì. Nó được các tài liệu chấp thuận , BTW: "... Việc chỉ ra điều này ở hệ thống tệp dựa trên RAM sẽ làm giảm yêu cầu I / O vật lý và có thể dẫn đến hiệu suất được cải thiện."
Halfgaar

0

Nâng cấp PostgreSQL. Ở mức tối thiểu tuyệt đối, đảm bảo bạn đang ở phiên bản 8.4 mới nhất; nếu điều đó không giải quyết được và nó thực tế để làm như vậy thì có lẽ bạn nên nâng cấp lên 9.2. Ít nhất một số vấn đề xung quanh bộ thu thập số liệu đã được giải quyết kể từ 8.4 và sẽ đạt đến cuối vòng đời sau khoảng một năm . Bạn có thể có thể tìm thêm thông tin bằng cách tìm kiếm kho lưu trữ danh sách gửi thư chung pssql .

Bạn không nên có quá nhiều vấn đề khi nâng cấp từ 8.4 lên 9.2, mặc dù như thường lệ, bạn phải đọc phần nâng cấp của ghi chú phát hành cho mỗi bản phát hành .0 ở giữa (9.0, 9.1 và 9.2). Đặc biệt chú ý đến standard_conforming_stringsbytea_output.


0

Cùng một vấn đề ở đây. Tôi cũng bị vô hiệu hóa track_*và như vậy.

Tác dụng phụ là autovacuumsử dụng dữ liệu được thu thập này để kích hoạt.

Vì vậy, tôi chăm sóc để lên lịch hàng đêm a vacuumdb.

Giải pháp khác là đặt autovacuum_naptimeđủ cao để nghỉ ngơi hệ thống.

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.