[Comm] Тормозит сеть в виртуальной машине
Peter V. Saveliev
=?iso-8859-1?q?peet_=CE=C1_altlinux=2Eru?=
Ср Ноя 7 15:51:25 MSK 2007
On Wednesday 07 November 2007, Сергей Бялко wrote:
> У меня стоят вот такие лимиты и превышение нигде нет:
>
> Служба значение макс. значение пороговое значение макс. значение кол-во
> превышений kmemsize 1133889 2244907 0 lockedpages 0 0 0 privvmpages
> 2617 14053 0 shmpages 0 0 0 numproc 9 15 0 physpages 2144 2567 0
> vmguarpages 0 0 0 oomguarpages 2144 2567 0 numtcpsock 2 3 0 numflock
> 1 2 0 numpty 2 3 0 numsiginfo 0 3 0 tcpsndbuf 0 0 0 tcprcvbuf 0 0
> 0 othersockbuf 6936 24456 0 dgramrcvbuf 0 8456 0 numothersock 7 12 0
> dcachesize 0 0 0 numfile 228 290 0 numiptent 10 10 0
>
<skip />
Странно, у меня даже при почти неработающем контейнере есть превышение
othersockbuf. У Вас точно в tcpsndbuf/tcprcvbuf значение failcnt == 0?
Используете venet или veth?
Просто описанные симптомы очень похожи не на железную проблему, а на работу
congestion algo в tcp: при потере пакетов снижать скорость. А потеря может
быть, в частности, из-за превышения размера буфера на передачу. В нормальных
системах такое не происходит, однако при закрученных гайках в ovz я нечто
похожее наблюдал.
Можно попробовать сделать так, на материнской системе:
# modprobe tcp_veno
# sysctl -w net.ipv4.tcp_congestion_control=veno
После чего попробовать снова скачать что-нибудь с ftp. Если станет немножко
лучше, дело в потерях пакетов, а где они теряются -- ну, см. сами. Мне бы
казалось, что в лимитах ovz.
ЗЫ: использовать veno на проводном линке на рабочей машине не стоит, после
эксперимента вернуть обратно:
# sysctl -w net.ipv4.tcp_congestion_control=bic
--
Peter V. Saveliev
Подробная информация о списке рассылки community