Giới thiệu về các hàng đợi mail postfix

  • Tuesday 12/04/2022

Hàng đợi mail postfix

Có 5 hàng đợi chính và  tất cả các thư mà postfix xử lý sẽ nằm trong các hàng đợi này để xử lý cho đến khi được chuyển khỏi sever..

Maildrop queue : /var/spool/postfix/maildrop

Hold queue : /var/spool/postfix/hold

Incoming queue : /var/spool/postfix/incoming

Active queue : /var/spool/postfix/active

Defered queue: /var/spool/postfix/deferred

Bài viết sau sẽ mô tả cụ thể về các hàng đợi và cách thức hoạt động để có thể dễ dàng quản lý hiệu suất và theo dõi các quá trình lỗi chuyển mail trong hàng đợi mail postfix.

Maildrop queue

Các thư được xử lý và gửi qua lệnh gửi mail postfix , nhưng chưa được xử lý và chuyển vào hàng đợi này và kể cả khi dịch vụ postfix không hoạt động các mail cũng được chuyển vào hàng đợi này và sẽ bắt đầu xử lý khi dịch vụ postfix hoạt động.

Hàng đợi này được xử lý theo luồng đơn và định kỳ khi chương trình postdrop có thông báo về thư mới vào hàng đợi này.

Với câu lệnh postsuper -r có thể lựa chọn các mail trong hàng đợi maildrop này để xứ lý lại . Câu lệnh này sẽ có ích khi đặt lại các thiết lập filter cũ, tuy nhiên nó có thể làm gia tăng đột biến số lượng, kích thước thư trong hàng đợi này

Hold queue

Hàng đợi này cho phép người quản trị có thể thiết lập các chính sách truy cập smtpd giữ lại  kiểm tra các header và nội dung mail trước khi xử lý chuyển đi. Trong hàng đợi này không có tự động xử lý mà sẽ được can thiệp và chuyển đi bởi người quản trị. Với câu lệnh postsuper có thể đưa các mail vào hàng đợi 1 cách thủ công.

Thông qua biến maximal_queue_lifetime  sẽ cho phép thiết lập thời gian nằm trong hold queue. Với các thư cũ cần xử lý khỏi hàng đợi này phải được chuyển sang maildrop queue bằng câu lệnh postsuper -r .

Với hàng đợi này sẽ không ảnh hướng hiệu suất hoạt động postfix nó chủ yếu để giữ các mail được cho là mail rác và độc hại đến khi có thao tác xử lý thủ công từ người quản trị

Incoming queue

Toàn bộ các mail được chuyển vào hàng đợi postfix bởi tiến trình cleanup sẽ được đưa vào hàng đợi đến (incoming queue). Với các tệp thư mới được tạo ra trong hàng đợi này sẽ có owner là postfix và có quyền là 600 sau khi các file này được xử lý bởi tiến trình cleanup sẽ chuyển sang phân quyền 700 và gửi 1 thông báo cho quản lý hàng đợi là có 1 thư mới đến . Với quản lý hàng đợi này sẽ bỏ qua các file trong hàng đợi này với quyền 600  vì chưa được xử lý bởi tiến trình cleanup.

Mặc định hàng đợi này cho phép chứa tối đa 20.000 mail. Khi đã đạt đến giới hạn thì quản lý hàng đợi sẽ dừng quét hàng đợi đến và Defered queue.

Các yếu tố chính làm chậm quản lý hàng đợi xử lý là IO disk và các truy vấn đến mysql, LDAP . Với tham số in_flow_delay được sử dụng để giữ cho đầu vào khi quản lý hàng đợi bị chậm . Khi đó dịch vụ cleanup sẽ tạm dừng trong bao nhiêu giây để trước khi tạo tệp mới Và mặc định giá trị này sẽ là 100 tiến trình và in_flow_delay trong 1 giây.

Active queue

Quản lý hàng đợi được thiết lập theo lịch trình chuyển phát nhầm đảm bảo cho việc phân phôi thư 1 cách nhanh chóng và công bằng tới các điểm đến trong 1 giới hạn tài nguyên được chỉ định. Active queue tương tự hàng đợi chạy tiến trình của hệ điều hành. Các thư trong hàng đợi active này luôn sẵn sàng để được gửi  đi. Các thư nằm trong hàng đợi maildrop, hold, defered sẽ được lưu trữ trên đĩa chờ được xử lý và không chiếm dung lượng bộ nhớ Ram.

Trong hàng đợi active với các mail có nhiều địa chỉ nhận sẽ được chia thành nhóm người nhận kết hợp cùng bộ truyền tải/ nexthop . Kích thước này sẽ được giới hạn bởi người nhận đồng thời.

Sự tắc nghẽn xảy ra trong hàng đợi này khi có một hoặc nhiều điểm đến chuyển ra  chậm hơn tốc độ thông báo tương ứng. Dữ liệu hàng đợi active này sẽ bao gồm các thư trong hàng đợi incoming và các mail thử lại trong hàng đợi deferred . Nếu dữ liệu mail defered retry lại nhiều cũng ảnh hướng đến việc phân phối mail trong hàng đợi này.

Khi có một điểm đến bị ngừng hoạt động thì trình quản lý hàng đợi sẽ đánh dấu điểm đó đã chết và ngay lập tức trì hoãn tất cả thư cho điểm đến này mà không cần cố gắng chỉ định nó cho đại lý phân phối. Trong trường hợp này, thư sẽ nhanh chóng rời khỏi hàng đợi active và kết thúc trong hàng đợi deferred .Để giảm tắc nghẽn mail trong hàng đợi này chỉ có thể giảm tốc độ đầu vào hoặc gia tăng thông lượng. Việc gia tăng thông lượng này phải gia tăng số lượng chuyên đồng thời  hoặc giảm độ trễ phân phôi.

Defered queue

Vì 1 lý do nào đó khi các mail gửi đi đến người nhận không thành công các mail này sẽ chuyên vào hàng đợi deferred . Quản lý hàng đợi sẽ định kỳ quét lại hàng đợi deferred dựa theo tham số $queue_run_delay

Mỗi thư trong hàng đợi deferred sẽ được ấn định 1 thời gian tạm dừng. Thời gian tạm dừng khai báo bởi Minimal_backoff_time  và  maximal_backoff_time. Ngoài ra với việc set queue_run_delay giảm thì đồng nghĩa nhu cầu sử dụng I/O ổ cứng sẽ tăng cao

Bạn có thể tham khảo thêm bài viết về 1 số câu lệnh quản lý queue postfix tại đây 

P.A Việt Nam cung cấp giải pháp Email Server dành cho Doanh Nghiệp
Email Server Pro
Email Server Riêng

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

5/5 - (1 bình chọn)