postfix mất 60-90ms để xếp hàng email - bình thường?


8

Chúng tôi đang thấy một số sự chậm trễ (có thể?) Khi gửi email riêng lẻ đến máy chủ Postfix cục bộ của chúng tôi.

Để giúp chẩn đoán vấn đề, tôi đã viết một chương trình thử nghiệm nhỏ gửi 5 email:

get smtp 1ms   (  1 ms)
email 0 677ms  (676 ms)
email 1 802ms  (125 ms)
email 2 890ms  ( 88 ms)
email 3 973ms  ( 83 ms)
email 4 1088ms (115 ms)

Giảm giá bắt tay trong email đầu tiên, đó là khoảng 90ms mỗi email. Những thời gian này cũng đã được chứng thực bằng một ứng dụng thử nghiệm khác được viết bởi một người khác bằng cách sử dụng một loại tiền mã hóa khác, vì vậy nó dường như có liên quan đến máy chủ.

Tôi đã bật ghi nhật ký chi tiết và tôi có thể thấy rằng độ trễ nằm giữa cuối tin nhắn \r\n\r\nvà nhận:

[16:31:29.95] [SEND] \r\n.\r\n
[16:31:30.05] [RECV] 250 2.0.0 Ok: queued as B128E1E063\r\n

[16:31:30.08] [SEND] \r\n.\r\n
[16:31:30.17] [RECV] 250 2.0.0 Ok: queued as 4A7DE1E06E\r\n

[16:31:30.19] [SEND] \r\n.\r\n
[16:31:30.27] [RECV] 250 2.0.0 Ok: queued as 68ACC1E072\r\n

[16:31:30.28] [SEND] \r\n.\r\n
[16:31:30.34] [RECV] 250 2.0.0 Ok: queued as 7EFFE1E079\r\n

[16:31:30.39] [SEND] \r\n.\r\n
[16:31:30.45] [RECV] 250 2.0.0 Ok: queued as 9793C1E07A\r\n

Khoảng thời gian kể câu chuyện (giảm giá bắt tay cho email ban đầu) - mỗi email đang chờ khoảng 60-90 mili giây để hậu tố xếp hàng!

Điều này có vẻ .. quá mức .. với tôi. Có phải là "bình thường" cho postfix để mất 60-90 ms cho mỗi email bạn gửi không? Hay tôi chỉ có những kỳ vọng không hợp lý? Tôi hy vọng máy chủ postfix cục bộ sẽ xếp hàng email trong khoảng 20ms, ngọn!


3
Bạn có bật tính năng lọc, chẳng hạn như kiểm tra SPF, tra cứu DNS ngược hoặc Nhận dạng không? Sử dụng SMTP hay MSP?
Chris S

Câu trả lời:


12

Nghe có vẻ bình thường. Nếu bạn chạy nhiều kết nối song song gửi thư, bạn vẫn nhận được 90ms mỗi thư chứ? Điều này sẽ cho phép bạn dễ dàng tăng tỷ lệ của bạn mà bạn có thể gửi thư.

Tôi biết rằng các MTA khác (sendmail) sẽ fsync () để đảm bảo rằng thư được chấp nhận được cam kết vào đĩa trước khi gửi lại phản hồi 250, để email không bị hủy nếu hệ thống gặp sự cố sau khi chấp nhận thư. postfix có lẽ cũng làm như vậy.

Bạn có thể kiểm tra điều này bằng cách tạm thời đặt thư mục bộ đệm thư lên tmpfs và xem mất bao lâu để chấp nhận thư.

Những việc khác thể làm trong cửa sổ 90ms đó là: quét vi-rút, kiểm tra danh sách đen, v.v. Nhưng có lẽ bạn sẽ biết nếu chúng được cấu hình.


6

Postfix thực tiễn tốt nhất nói rằng bạn nên thực hiện hầu hết các bộ lọc trước hàng đợi ban đầu để tránh:

  1. lãng phí tài nguyên trong các tin nhắn bạn không nên chấp nhận ở nơi đầu tiên;
  2. tránh gửi lại thông báo lỗi (do đó chi tiêu tài nguyên cho email gốc và thông báo lỗi);
  3. tránh gửi thông báo lỗi đến người nhận sai.

Vì vậy, thời gian xếp hàng không được tối ưu hóa để tiết kiệm tài nguyên. Nếu bạn vô hiệu hóa tất cả các kiểm tra trong smtpd_recipient_restrictionspostfix, main.cfbạn có thể nhận được hàng đợi nhanh hơn với chi phí nhiều lỗi hơn và nhận được nhiều thông báo lỗi (sai) hơn cho người dùng. Điều đó sẽ hoàn toàn chấp nhận được nếu đó chỉ là máy chủ đầu ra cho một ứng dụ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.