В продолжение темы.. Пока переезжаю на 8-ку, включил TSO на 7.2 на em0 все было хорошо, но когда траф перевалил за 500 мегабит, весь /var/log/messages засыпало таким:
Dec 26 17:47:48 inka kernel: em0: watchdog timeout -- resetting
Dec 26 17:47:48 inka kernel: em0: link state changed to DOWN Dec 26 17:47:51 inka kernel: em0: link state changed to UP Dec 26 17:47:53 inka kernel: Limiting open port RST response from 963 to 200 packets/sec
и так каждые 2-20 минут... Отключил TSO - прекратилось. А такая клевая штука по описанию... :-\
On Sun, Dec 13, 2009 at 02:18:16PM +0100, Anton Kuznetsov wrote:
> В 8-ке все стало прям сказочно хорошо!!!
>
> #top -S
>
> last pid: 26046; load averages: 0.85, 0.83, 0.82 up 0+10:08:08
> 14:38:04
> 102 processes: 5 running, 78 sleeping, 19 waiting
> CPU: 2.2% user, 0.0% nice, 20.4% system, 1.0% interrupt, 76.4% idle
> Mem: 55M Active, 3387M Inact, 197M Wired, 44M Cache, 112M Buf, 75M Free
> Swap: 1024M Total, 132K Used, 1024M Free
>
> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
> 11 root 4 171 ki31 0K 32K RUN 0 33.3H 328.22% idle
> 0 root 10 -68 0 0K 72K - 3 193:16 6.98% kernel
> 14 root 1 46 - 0K 8K psleep 0 11:34 2.29%
> pagedaemon
>
> idle - не по ядрам, а единым блоком. Сетевухи не видно совсем - это
> несколько озадачивает,
> также озадачивает - что раньше столько ресурсов жрало и наоборот - как оно
> сейчас так работает? :))
С сетевухой проблема такая. Во FreeBSD 7-9 (про 6ку не знаю) есть проблема
с учётом времени работы трэдов. Поскольу в 8-9 все обработчики прерываний
превратили в трэды процесса intr, то этот процесс и его трэды стали есть 0%.
Сначала это полечили в 7ке, поскольку решили, то что это проблема
специфичная для неё. Потом я обнаружил, что intr/bge в 8ке почему-то не ест
процессор, хотя некоторый interrupt time есть. Мне было предложено
воспользоваться коммитом для 7ки и время появилось. После этого исправление
закоммитили в 9ку, и скоро будет в 8ке.