PostgreSQL: kèo chấp bóng đá | |||
---|---|---|---|
prev | UP | Chương 29. Độ tin cậy và nhật ký ghi lại | Tiếp theo |
Có kèo bóng đá hôm nay và ngày mai sốkèo bóng đá hôm nay và ngày maitham số cấu kèo bóng đá hôm nay và ngày mai liên quan đến hiệu suất cơ sở dữ liệu. Phần này giải thích việc sử dụng của họ. Tham khảo ý kiếnChương 18Để biết thông tin chung về thiết lập tham số cấu kèo bóng đá hôm nay và ngày mai máy chủ.
Điểm kiểm tralà kèo bóng đá hôm nay và ngày mai điểm trong chuỗi giao dịch mà tại đó đảm bảo rằng kèo bóng đá hôm nay và ngày mai tệp dữ liệu HEAP và INDEX đã được cập nhật với tất cả kèo bóng đá hôm nay và ngày mai thông tin được viết trước điểm kiểm tra đó. Vào thời điểm điểm kiểm tra, tất cả kèo bóng đá hôm nay và ngày mai trang dữ liệu bẩn được chuyển vào đĩa và bản ghi điểm kiểm tra đặc biệt được ghi vào tệp nhật ký. (Hồ sơ thay đổi trước đây đã được chuyển sangkèo bóng đá hôm nay và ngày maiTệp.) Bất kỳ thay đổi nào được thực hiện đối với kèo bóng đá hôm nay và ngày mai tệp dữ liệu trước thời điểm đó được đảm bảo sẽ có trên đĩa. Do đó, sau một điểm kiểm tra, kèo bóng đá hôm nay và ngày mai phân đoạn nhật ký trước bản ghi có chứa bản ghi làm lại không còn cần thiết và có thể được tái chế hoặc loại bỏ. (Khikèo bóng đá hôm nay và ngày maiLưu trữ đang được thực hiện, kèo bóng đá hôm nay và ngày mai phân đoạn nhật ký phải được lưu trữ trước khi được tái chế hoặc xóa.)
Yêu cầu điểm kiểm tra của việc xả tất cả kèo bóng đá hôm nay và ngày mai trang dữ liệu bẩn vào đĩa có thể gây ra tải I/O đáng kể. Vì lý do này, hoạt động điểm kiểm tra được điều chỉnh để I/O bắt đầu khi bắt đầu điểm kiểm tra và hoàn thành trước khi điểm kiểm tra tiếp theo là do bắt đầu; Điều này giảm thiểu sự suy giảm hiệu suất trong kèo bóng đá hôm nay và ngày mai trạm kiểm soát.
12401_12517CheckPoint_SegmentsPhân đoạn nhật ký hoặc mọiCheckPoint_Timeoutgiây, tùy theo điều kiện nào đến trước. Các cài đặt mặc định lần lượt là 3 phân đoạn và 300 giây (5 phút). Nếu không có kèo bóng đá hôm nay và ngày mai đã được viết kể từ trạm kiểm soát trước đó, các điểm kiểm tra mới sẽ bị bỏ qua ngay cả khiCheckPoint_Timeoutđã qua. .Archive_TimeoutTham số thay vì tham số điểm kiểm tra.) Cũng có thể buộc kèo bóng đá hôm nay và ngày mai điểm kiểm tra bằng cách sử dụng lệnh SQLđiểm kiểm tra.
GiảmCheckPoint_Segments13412_1342213440_13460gây ra kèo bóng đá hôm nay và ngày mai điểm kiểm tra xảy ra thường xuyên hơn. Điều này cho phép phục hồi sau khi phá hủy nhanh hơn, vì ít công việc sẽ cần được làm lại. Tuy nhiên, người ta phải cân bằng điều này so với chi phí gia tăng của kèo bóng đá hôm nay và ngày mai trang dữ liệu bẩn thường xuyên hơn. Nếu nhưfull_page_writesđược đặt (như mặc định), có một yếu tố khác để xem xét. Để đảm bảo tính nhất quán của trang dữ liệu, sửa đổi đầu tiên của trang dữ liệu sau mỗi điểm kiểm tra dẫn đến việc đăng nhập toàn bộ nội dung trang. Trong trường hợp đó, khoảng thời gian điểm kiểm tra nhỏ hơn làm tăng thể tích đầu ra vào nhật ký kèo bóng đá hôm nay và ngày mai, phủ nhận một phần mục tiêu của việc sử dụng một khoảng thời gian nhỏ hơn và trong mọi trường hợp gây ra nhiều đĩa I/O.
14159_14534Checkpoint_warningTham số. Nếu kèo bóng đá hôm nay và ngày mai điểm kiểm tra xảy ra gần nhau hơnCheckpoint_warninggiây, kèo bóng đá hôm nay và ngày mai thông báo sẽ được xuất vào nhật ký máy chủ đề xuất tăngCheckPoint_Segments. Thỉnh thoảng xuất hiện của một thông điệp như vậy không phải là nguyên nhân cho báo động, nhưng nếu nó xuất hiện thường xuyên thì kèo bóng đá hôm nay và ngày mai tham số điều khiển điểm kiểm tra sẽ được tăng lên. kèo bóng đá hôm nay và ngày mai hoạt động hàng loạt như lớnsao chépChuyển khoản có thể khiến kèo bóng đá hôm nay và ngày mai số cảnh báo như vậy xuất hiện nếu bạn chưa đặtCheckPoint_Segmentsđủ cao.
Để tránh làm ngập hệ thống I/O với kèo bóng đá hôm nay và ngày mai vụ nổ trang, viết bộ đệm bẩn trong kèo bóng đá hôm nay và ngày mai điểm kiểm tra được trải đều trong kèo bóng đá hôm nay và ngày mai khoảng thời gian. Khoảng thời gian đó được kiểm soát bởiCheckpoint_completion_target, được đưa ra dưới dạng kèo bóng đá hôm nay và ngày mai phần của khoảng điểm kiểm tra. Tốc độ I/O được điều chỉnh sao cho điểm kiểm tra kết thúc khi phần đã cho củaCheckPoint_SegmentsCác phân đoạn kèo bóng đá hôm nay và ngày mai đã được tiêu thụ kể từ khi điểm kiểm tra bắt đầu hoặc phần đã cho củaCheckPoint_Timeoutgiây đã trôi qua, tùy theo điều kiện nào là sớm hơn. Với giá trị mặc định là 0,5,PostgreSQLCó thể dự kiến sẽ hoàn thành mỗi điểm kiểm tra trong khoảng kèo bóng đá hôm nay và ngày mai nửa thời gian trước khi điểm kiểm tra tiếp theo bắt đầu. Trên kèo bóng đá hôm nay và ngày mai hệ thống rất gần với thông lượng I/O tối đa trong quá trình hoạt động bình thường, bạn có thể muốn tăngCheckPoint_Completion_TargetĐể giảm tải I/O từ các điểm kiểm tra. Nhược điểm của điều này là các trạm kiểm soát kéo dài ảnh hưởng đến thời gian phục hồi, bởi vì nhiều phân đoạn kèo bóng đá hôm nay và ngày mai sẽ cần phải được giữ xung quanh để sử dụng để phục hồi. Mặc dùCheckpoint_completion_targetcó thể được đặt cao tới 1.0, tốt nhất là giữ nó ít hơn thế (có lẽ là 0,9) vì các điểm kiểm tra bao gồm một số hoạt động khác ngoài việc viết bộ đệm bẩn. Cài đặt 1.0 hoàn toàn có khả năng dẫn đến các điểm kiểm tra không được hoàn thành đúng hạn, điều này sẽ dẫn đến mất hiệu suất do sự thay đổi bất ngờ về số lượng các phân đoạn kèo bóng đá hôm nay và ngày mai cần thiết.
Sẽ luôn có ít nhất một tệp phân đoạn kèo bóng đá hôm nay và ngày mai và thông thường sẽ không nhiều hơn (2 +Checkpoint_completion_target) *CheckPoint_Segments+ 1 hoặcCheckPoint_Segments+wal_keep_segments+ 1 tệp. Mỗi tệp phân đoạn thường là 16 MB (mặc dù kích thước này có thể được thay đổi khi xây dựng máy chủ). Bạn có thể sử dụng điều này để ước tính kèo bóng đá hôm nay và ngày mai yêu cầu không gian chokèo bóng đá hôm nay và ngày mai17305_17532CheckPoint_Segments+ 1 Tệp phân đoạn, kèo bóng đá hôm nay và ngày mai tệp phân đoạn không cần thiết sẽ bị xóa thay vì được tái chế cho đến khi hệ thống trở lại dưới giới hạn này.
Trong chế độ khôi phục hoặc chế độ chờ lưu trữ, máy chủ thực hiện định kỳKhởi động lại, tương tự như kèo bóng đá hôm nay và ngày mai điểm kiểm tra trong hoạt động bình thường: Máy chủ buộc tất cả trạng thái của nó thành đĩa, cập nhậtPG_ControlTệp để chỉ ra rằng dữ liệu kèo bóng đá hôm nay và ngày mai đã được xử lý không cần phải được quét lại và sau đó tái chế bất kỳ tệp phân đoạn nhật ký cũ nào trongpg_xlogThư mục. RESTARTPOINT không thể được thực hiện thường xuyên hơn so với kèo bóng đá hôm nay và ngày mai điểm kiểm tra trong Master vì chỉ có thể thực hiện kèo bóng đá hôm nay và ngày mai điểm khởi động lại tại kèo bóng đá hôm nay và ngày mai bản ghi điểm kiểm tra. Một điểm khởi động lại được kích hoạt khi đạt được bản ghi điểm kiểm tra nếu ít nhấtCheckPoint_Timeoutgiây đã trôi qua kể từ lần khởi động lại cuối cùng. Ở chế độ chờ, kèo bóng đá hôm nay và ngày mai điểm khởi động lại cũng được kích hoạt nếu ít nhấtCheckPoint_Segmentskèo bóng đá hôm nay và ngày mai phân đoạn nhật ký đã được phát lại kể từ lần khởi động lại cuối cùng.
Có hai bên trong thường được sử dụngkèo bóng đá hôm nay và ngày maichức năng:xloginsert
vàXLOGFLUSH
. xloginsert
được sử dụng để đặt kèo bóng đá hôm nay và ngày mai bản ghi mới vàokèo bóng đá hôm nay và ngày maiBộ đệm trong bộ nhớ chia sẻ. Nếu không có khoảng trống cho bản ghi mới,xloginsert
sẽ phải viết (chuyển sang bộ đệm kernel) kèo bóng đá hôm nay và ngày mai vàikèo bóng đá hôm nay và ngày maibộ đệm. Điều này là không mong muốn vìxloginsert
được sử dụng trên mọi sửa đổi cấp thấp của cơ sở dữ liệu (ví dụ: chèn hàng) tại thời điểm một khóa độc quyền được giữ trên kèo bóng đá hôm nay và ngày mai trang dữ liệu bị ảnh hưởng, do đó, hoạt động cần càng nhanh càng tốt. Điều tồi tệ hơn, viếtkèo bóng đá hôm nay và ngày maiBộ đệm cũng có thể buộc tạo ra kèo bóng đá hôm nay và ngày mai phân đoạn nhật ký mới, còn mất nhiều thời gian hơn. Thông thường,kèo bóng đá hôm nay và ngày maiBộ đệm nên được viết và xả bằng kèo bóng đá hôm nay và ngày maiXLOGFLUSH
Yêu cầu, được thực hiện, phần lớn, tại thời điểm giao dịch cam kết để đảm bảo rằng kèo bóng đá hôm nay và ngày mai hồ sơ giao dịch được chuyển đến lưu trữ vĩnh viễn. Trên kèo bóng đá hôm nay và ngày mai hệ thống có đầu ra nhật ký cao,XLogFlush
19889_19941xloginsert
Từ việc phải viết. Trên kèo bóng đá hôm nay và ngày mai hệ thống như vậy, người ta nên tăng số lượngkèo bóng đá hôm nay và ngày maibộ đệm bằng cách sửa đổiWal_buffersTham số. Khi20257_20275được đặt và hệ thống rất bận, cài đặtWal_bufferscao hơn sẽ giúp thời gian phản hồi trơn tru trong khoảng thời gian ngay sau mỗi điểm kiểm tra.
Thecam kết_delay20533_20651XLogFlush
, trong khi nhóm cam kết theo dõi xếp hàng sau người lãnh đạo. Sự chậm trễ này cho phép các quy trình máy chủ khác thêm các bản ghi cam kết của họ vào bộ đệm kèo bóng đá hôm nay và ngày mai để tất cả chúng sẽ bị xóa bởi hoạt động đồng bộ hóa cuối cùng của người lãnh đạo. Không có giấc ngủ sẽ xảy ra nếufsynckhông được bật hoặc nếu ít hơncam kết_siblingskèo bóng đá hôm nay và ngày mai phiên khác hiện đang trong kèo bóng đá hôm nay và ngày mai giao dịch hoạt động; Điều này tránh được ngủ khi không có bất kỳ phiên nào khác sẽ sớm cam kết. Lưu ý rằng trên một số nền tảng, độ phân giải của yêu cầu giấc ngủ là mười mili giây, do đó bất kỳ khác khôngcam kết_delayCài đặt từ 1 đến 10000 micro giây sẽ có cùng hiệu ứng. Cũng lưu ý rằng trên một số nền tảng, kèo bóng đá hôm nay và ngày mai hoạt động ngủ có thể mất nhiều thời gian hơn một chút so với yêu cầu của tham số.
Vì mục đích củacam kết_delay21615_21906cam kết_delaydự kiến sẽ tăng thông lượng giao dịch, lên đến kèo bóng đá hôm nay và ngày mai điểm. ThePostgreSQL: TàiChương trình có thể được sử dụng để đo thời gian trung bình tính bằng kèo bóng đá hôm nay và ngày mai micro giây mà một hoạt động của một lần tuôn ra. Giá trị của một nửa thời gian trung bình mà chương trình báo cáo cần phải có sau khi hoạt động ghi 8kB thường là cài đặt hiệu quả nhất chocam kết_delay22386_2250422522_22536Đặc biệt hữu ích khi nhật ký kèo bóng đá hôm nay và ngày mai được lưu trữ trên các đĩa quay có độ trễ cao, lợi ích có thể là đáng kể ngay cả trên phương tiện lưu trữ với thời gian đồng bộ rất nhanh, chẳng hạn như các ổ đĩa trạng thái rắn hoặc mảng đột kích với bộ nhớ cache viết bằng pin; Nhưng điều này chắc chắn nên được kiểm tra đối với một khối lượng công việc đại diện. Giá trị cao hơn củacam kết_siblingsnên được sử dụng trong kèo bóng đá hôm nay và ngày mai trường hợp như vậy, trong khi nhỏ hơncam kết_siblingsGiá trị thường hữu ích trên phương tiện có độ trễ cao hơn. Lưu ý rằng hoàn toàn có thể là kèo bóng đá hôm nay và ngày mai cài đặtcam kết_delayĐiều đó quá cao có thể tăng độ trễ giao dịch bằng nhiều đến mức tổng thông lượng giao dịch bị ảnh hưởng.
Khicam kết_delayđược đặt thành 0 (mặc định), vẫn có thể xảy ra kèo bóng đá hôm nay và ngày mai thức cam kết nhóm, nhưng mỗi nhóm sẽ chỉ bao gồm các phiên đạt đến điểm họ cần xóa các bản ghi cam kết của họ trong cửa sổ trong đó hoạt động tuôn ra trước đó (nếu có) xảy ra. Ở mức độ khách hàng cao hơn được tính A"Hiệu ứng Gangway"có xu hướng xảy ra, để kèo bóng đá hôm nay và ngày mai tác động của cam kết nhóm trở nên đáng kể ngay cả khicam kết_delaybằng không, và do đó cài đặt rõ ràngcam kết_delaycó xu hướng giúp ít hơn. Cài đặtcam kết_delayChỉ có thể giúp khi (1) có kèo bóng đá hôm nay và ngày mai số giao dịch cam kết đồng thời và (2) thông lượng bị giới hạn ở kèo bóng đá hôm nay và ngày mai mức độ nào đó theo tỷ lệ cam kết; Nhưng với độ trễ quay cao, cài đặt này có thể có hiệu quả trong việc tăng thông lượng giao dịch với ít nhất hai máy khách (nghĩa là kèo bóng đá hôm nay và ngày mai ứng dụng khách cam kết với kèo bóng đá hôm nay và ngày mai giao dịch anh chị em).
Thewal_sync_methodtham số xác định cáchPostgreSQLSẽ yêu cầu hạt nhân buộcPostgreSQL: Tài kèo bóngCập nhật ra đĩa. Tất cả kèo bóng đá hôm nay và ngày mai tùy chọn phải giống nhau về độ tin cậy, ngoại trừFSYNC_WRITETHROUGH, đôi khi có thể buộc một bộ đệm của đĩa ngay cả khi kèo bóng đá hôm nay và ngày mai tùy chọn khác không làm như vậy. Tuy nhiên, nó khá đặc trưng cho nền tảng nào sẽ là nhanh nhất. Bạn có thể kiểm tra tốc độ của kèo bóng đá hôm nay và ngày mai tùy chọn khác nhau bằng cách sử dụngpg_test_fsyncChương trình. Lưu ý rằng tham số này không liên quan nếufsyncđã bị tắt.
Kích hoạtWal_debugtham số cấu kèo bóng đá hôm nay và ngày mai (với điều kiện làPostgreSQLđã được biên dịch với hỗ trợ cho nó) sẽ dẫn đến mỗixloginsert
vàXLogFlush
PostgreSQL: Tài liệu: 9.4: kèo bóngcuộc gọi đang được đăng nhập vào nhật ký máy chủ. Tùy chọn này có thể được thay thế bằng kèo bóng đá hôm nay và ngày mai cơ chế chung hơn trong tương lai.