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