19.03.11 @ 11:56 Lystopad Aleksandr wrote:

                                  called/total       parents
index  %time    self descendents  called+self    name    index
                                  called/total       children

              485.00   227154.59  678354/678354      ipfw_nat [8]
[10]    36.0  485.00   227154.59  678354         LibAliasIn [10]
151066.41 1.70 678355/799402 _mtx_lock_sleep [11] 1053.00 75033.48 794/794 LibAliasInLocked [14]

То есть, несколько тредов одновременно постоянно дерутся за доступ к
instance ната - оно не параллелится. Решение: натить в несколько внешних
IP-адресов, для каждого заводить отдельный инстанс libalias (ipfw nat).

Вадим, можно мне пояснить, вернее разжевать, такое: нагрузка в emX:
taskq. Так? В первых постах топикстартер показывает свой трафик:
7-10кппс и 7-9МБс. На такой нагрузке нат как бы не должен
выпендриваться. Почему вспсплески по CPU у топикстартера получаются?

У меня более слабая машинка натила под 200мбит без проблем!

Это значит, что ему попался такой паттерн трафика, на котором у libalias возникают проблемы. У хэш-функций такое не редкость, что некоторые граничные случаи приводят к большому количеству коллизий (а хэш в libalias довольно тупой), вероятно, топикстартеру как раз и не повезло. Впрочем, такие проседания случаются время от времени, я бы предположил, что во время чистки старых записей в таблице.

По-хорошему, тут надо "научными исследованиями" заняться, что именно там происходит, но проблематично это в условиях рассылки и "производственников-эксплуатационщиков"...

--
WBR, Vadim Goncharov

Ответить