amarao (amarao_san) wrote,
amarao
amarao_san

exim4 - c10k impossible

Из документации:


The first six characters of the message id are the time at which the message started to be received, to a granularity of one second. That is, this field contains the number of seconds since the start of the epoch (the normal Unix way of representing the date and time of day).

After the first hyphen, the next six characters are the id of the process that received the message.

There are two different possibilities for the final two characters:

If localhost_number is not set, this value is the fractional part of the time of reception, normally in units of 1/2000 of a second, but for systems that must use base 36 instead of base 62 (because of case-insensitive file systems), the units are 1/1000 of a second.

If localhost_number is set, it is multiplied by 200 (100) and added to the fractional part of the time, which in this case is in units of 1/200 (1/100) of a second.

After a message has been received, Exim waits for the clock to tick at the appropriate resolution before proceeding, so that if another message is received by the same process, or by another process with the same (re-used) pid, it is guaranteed that the time will be different. In most cases, the clock will already have ticked while the message was being received.

http://www.exim.org/exim-html-current/doc/html/spec_html/ch03.html

Перевожу на русский: Экзим использует время для формирования message-id, при этом для формирования младшей фракции message ID используются доли в 1/2000 секунды. Если два сообщения приходят одновременно, то exim ЖДЁТ следующего "тика" в 1/2000 секунды.

Что это означает? Во-первых, мой фотоаппарат в два раза быстрее экзима - у него минимальная выдержка в 1/4000.

Во-вторых - это более важно - на exim4 не возможно реализовать c10k систему (с10k - connection 10k - 10 тысяч обращений в секунду), каким бы быстрым не был компьютер и сколь бы производительной не была сеть. После приёма одного письма должно пройти не менее 500 мкс, т.е. скорость приёма будет искуственно ограничена 2000 писем в секунду.

Заметим, два демона (на разных интерфейсах с разными hostnames) обработают не более 4000 сообщений в секунду.

Однако...


Чушь и фигня. Лимит 2000 коннектов на пид. А экзим ещё и форкаться умеет, наверняка.
Tags: exim4, администрирование, почта
Subscribe

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Шли годы, а я учусь башу.

    Офигеть. Офигеть. echo <(echo hello) foobar /dev/fd/63 foobar Я этого честно не знал. Я знал, что в конце можно, а что можно в середине -…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 20 comments

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Шли годы, а я учусь башу.

    Офигеть. Офигеть. echo <(echo hello) foobar /dev/fd/63 foobar Я этого честно не знал. Я знал, что в конце можно, а что можно в середине -…