The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! mr.yaky, 25-Июл-10, 19:52  [смотреть все]
Здравствуйте уважаемые форумчани!Бился,бился голову уже сломал - прото нет уже никаких идей,в чем может быть проблемма:

# uname -a
FreeBSD beowulf 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Wed Jul 14 14:04:00 UTC 2010     ...@beowulf:/usr/obj/usr/src/sys/BEOWULF  amd64


# squid -v
Squid Cache: Version 2.7.STABLE9
configure options:  '--bindir=/usr/local/sbin' '--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/squid' '--libexecdir=/usr/local/libexec/squid' '--localstatedir=/var/squid' '--sysconfdir=/usr/local/etc/squid' '--enable-removal-policies=lru heap' '--disable-linux-netfilter' '--disable-linux-tproxy' '--disable-epoll' '--enable-auth=basic digest negotiate ntlm' '--enable-basic-auth-helpers=DB NCSA PAM MSNT SMB' '--enable-digest-auth-helpers=password' '--enable-external-acl-helpers=ip_user session unix_group wbinfo_group' '--enable-ntlm-auth-helpers=SMB' '--enable-storeio=ufs diskd null' '--enable-snmp' '--enable-ssl' '--with-openssl=/usr' '--enable-icmp' '--enable-arp-acl' '--with-large-files' '--enable-large-cache-files' '--enable-err-languages=Armenian Azerbaijani Bulgarian Catalan Czech Danish  Dutch English Estonian Finnish French German Greek  Hebrew Hungarian Italian Japanese Korean Lithuanian  Polish Portuguese Romanian Russian-1251 Russian-koi8-r  Serbian Simplify_Chinese Slovak Spanish Swedish  Traditional_Chinese Turkish Ukrainian-1251  Ukrainian-koi8-u Ukrainian-utf8' '--enable-default-err-language=English' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd8.0' 'build_alias=amd64-portbld-freebsd8.0' 'CC=cc' 'CFLAGS=-O2 -pipe -I/usr/include -fno-strict-aliasing' 'LDFLAGS= -rpath=/usr/lib:/usr/local/lib -L/usr/lib' 'CPPFLAGS='

#cat etc/rc.conf
ifconfig_bce0="inet .......... netmask 255.255.255.248" -  смотрит в инет
ifconfig_bce1="inet 10.10.10.1 netmask 255.255.255.0"   -  смотрит в локалку #1
ifconfig_em0="inet 192.168.10.1 netmask 255.255.255.0"  -  смотрит в локалку #2 без squid


действия:
ставлю из портов /usr/ports/www/squid

В конфиге squid'а дописываю прозрачность и редирект:
http_port 3128 transparent

в ipfw добавляю правило до divert natd :

$cmd 0160 fwd 127.0.0.1,3128 tcp from 10.10.10.0/24 to not me dst-port 80 in recv bce1

#####
КСТАТЕ!!! в firewall'e до этого правила есть шейпинг с приоритетеми на dowload:

ipfw pipe 1 config bw 1980Kbit/s queue 20

ipfw queue  1 config pipe 1 weight 100 queue 20 mask dst-ip 0xffffffff
#ipfw queue 11 config pipe 1 weight 100 queue 20 mask src-ip 0xffffffff
# All users
ipfw queue  2 config pipe 1 weight 10 queue 20 mask dst-ip 0xffffffff
#ipfw queue 21 config pipe 1 weight 10 queue 20 mask src-ip 0xffffffff

$cmd 0010 queue  1 ip from any to $serv
#$cmd 0020 queue 11 ip from $serv to any
# All users
$cmd 0030 queue  2 ip from any to 10.10.10.0/24
#$cmd 0040 queue 21 ip from 10.10.10.0/24 to any

####

запускаю squid ----->

имел канал 2Mbit на download и upload

ПОЛУЧИЛ ПРИ ВКЛЮЧЕННОМ Squid'e
ТОЛЬКО 200kbit на upload :(

Как только коментирую правило в ipfw на принудительный заворот для прозрачного проксирования
сразу все нормально!!!

Мерял скорость speedtest.net

Заключение:

При включенном Squid'e скорость на upload падает в 10 раз,а на download остается прежней около 2Mbit
Еще ставил дополнительно и настраивал после SAMS,все работает только вот с аплоадом такая ФИГНЯ :(


Может быть проблема в разметке диска что у мну так ????:

# df
Filesystem  1M-blocks Used  Avail Capacity  Mounted on
/dev/ad4s1a       290   61    205    23%    /
devfs               0    0      0   100%    /dev
/dev/ad4s1e       989    0    910     0%    /tmp
/dev/ad4s1d     34706 2135  29794     7%    /usr
/dev/ad4s1f     19832  162  18083     1%    /var
/dev/ad4s1g     19832   24  18221     0%    /var/log
/dev/ad4s1h    151278    8 139168     0%    /var/squid
procfs              0    0      0   100%    /proc

тоисть что slice /var/squid стоит в самом конце диска?

кстате рейда нет! фряха стоит на одном из жестких -- комп PowerEdge R210 - i3 2.9Ghz 2G RAM 250GbX2 (вытягнули рейд контроллер внешний, из-за одного слота pci, для третей сетевой карты(нужна принципиально),а встроенный рейд в мать не поддерживается фрей).


ps. проверял постоянно скорость только на одном компе в локалке раз так 20 !

Буду очень признателен за ответы - потому как, у самого уже идей просто нет

дома на стареньком компе без шейпинга в файрволе squid+SAMS и все ОК (dowload/upload - 20Mbit) - правда в локалке только один  комп

  • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! bobcat12, 16:04 , 26-Июл-10 (1)
    Покажи ifconfig -a для той сетевухи, на которой поднят nat.  

    • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! mr.yaky, 17:42 , 26-Июл-10 (2)
      >Покажи ifconfig -a для той сетевухи, на которой поднят nat.

      # ifconfig -a
      em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
              options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
              ether 00:15:17:e9:d8:9c
              inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
              media: Ethernet autoselect
              status: no carrier
      bce0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
              options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
              ether 00:26:b9:8d:7e:1e
              inet ........... netmask 0xfffffff8 broadcast ........183
              media: Ethernet autoselect (100baseTX <full-duplex>)
              status: active
      bce1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
              options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
              ether 00:26:b9:8d:7e:1f
              inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255
              media: Ethernet autoselect (100baseTX <full-duplex>)
              status: active
      lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
              options=3<RXCSUM,TXCSUM>
              inet 127.0.0.1 netmask 0xff000000


      #cat /etc/rc.conf

      natd_enable="YES"
      natd_interface="bce0"
      natd_flags="-f /etc/natd.conf"

      # cat /etc/natd.conf
      same_ports      yes
      use_sockets     yes
      unregistered_only yes

      redirect_port   tcp 192.168.10.244:1718-1721 1718-1721
      redirect_port   udp 192.168.10.244:1718-1721 1718-1721
      redirect_port   tcp 192.168.10.244:2326-2485 2326-2485
      redirect_port   udp 192.168.10.244:2326-2485 2326-2485
      redirect_port   tcp 192.168.10.244:5555-5560 5555-5560
      redirect_port   udp 192.168.10.244:5555-5560 5555-5560


      Самое главное,что в подсети 192.168.10.0,где не используется проксирование все нормально и в сети 10.10.10.0 с закоментированным правилом:
      $cmd 0160 fwd 127.0.0.1,3128 tcp from 10.10.10.0/24 to not me dst-port 80 in recv bce1

      тоже все ОК
      скорость и на прием и на отдачу около 2Mbit,
      как только включаю заворот в ipfw на squid сразу проблемы в сети 10.10.10.0:
      Dowload - 2Mbit ; Upload - 200kbit :(

      • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! reader, 13:19 , 27-Июл-10 (3)
        а если временно убрать шейпер?
        • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! mr.yaky, 15:59 , 27-Июл-10 (4)
          >а если временно убрать шейпер?

          Так вот самое обидное в этом и есть,что даже при выключенном шейпинге эффект тот же!

          зы. дома реализовал тот же функционал с шейпером и т.п., вообщем повторил,то что в офисе (отличия только в том что дома одна подсеть, а не две) -- и все работает, даже на старющем венике :( Правда дома разметка слайсов другая :

          Filesystem  1M-blocks Used Avail Capacity  Mounted on
          /dev/ad0s1a       290   94   172    35%    /
          devfs               0    0     0   100%    /dev
          /dev/ad0s1e       193    0   177     0%    /tmp
          /dev/ad0s1f      2707 1792   698    72%    /usr
          /dev/ad0s1d       290  202    64    76%    /var
          procfs              0    0     0   100%    /proc

          Может быть проблема в том что slice /var/squid (из разметки приведенной выше) стоит далеко от корневого - размечен не в такой последовательности, какую предлагает sysinstall при Auto

          Может есть у кого еще какие идеи ? Наперед благодарен!


          • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! reader, 20:27 , 27-Июл-10 (5) +1
            >[оверквотинг удален]
            >  72%    /usr
            >/dev/ad0s1d       290  202  
            > 64    76%    /var
            >procfs            
            >  0    0    
            >0   100%    /proc
            >
            >Может быть проблема в том что slice /var/squid (из разметки приведенной выше)
            >стоит далеко от корневого - размечен не в такой последовательности, какую
            >предлагает sysinstall при Auto

            временно в cache_dir укажите другую директорию и размер 0, пересоздаете кеш, и проверьте. это заставит squid не кешировать

            >
            >Может есть у кого еще какие идеи ? Наперед благодарен!

      • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! bobcat12, 16:25 , 28-Июл-10 (6)
        >[оверквотинг удален]
        >Самое главное,что в подсети 192.168.10.0,где не используется проксирование все нормально и в
        >сети 10.10.10.0 с закоментированным правилом:
        >$cmd 0160 fwd 127.0.0.1,3128 tcp from 10.10.10.0/24 to not me dst-port 80
        >in recv bce1
        >
        >тоже все ОК
        >скорость и на прием и на отдачу около 2Mbit,
        >как только включаю заворот в ipfw на squid сразу проблемы в сети
        >10.10.10.0:
        >Dowload - 2Mbit ; Upload - 200kbit :(

        Убери с bce0 RXCSUM,TXCSUM, TSO4  и все должно заработать ( мы такое нарывались :) )
        или используй нат из pf.

        • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! mr.yaky, 20:37 , 29-Июл-10 (7)
          >Убери с bce0 RXCSUM,TXCSUM, TSO4  и все должно заработать ( мы
          >такое нарывались :) )

          # ifconfig bce0 –rxcsum
          # ifconfig bce0 –txcsum

          или отключить сразу RXCSUM,TXCSUM

          # ifconfig bce0 hwcsum

          плюс

          # ifconfig bce0 tso

          Я правильно понял, об этом вы говорили?

          читал об этом здесь : http://iboxjo.livejournal.com/27727.html


          >или используй нат из pf.

          Можно немного по подробней почему именно его. И собственно причина в хардварных примочках?

          Спасибо за то что поделились опытом!

          • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! bobcat12, 10:41 , 30-Июл-10 (8) +1
            >[оверквотинг удален]
            >
            >читал об этом здесь : http://iboxjo.livejournal.com/27727.html
            >
            >
            >>или используй нат из pf.
            >
            >Можно немного по подробней почему именно его. И собственно причина в хардварных
            >примочках?
            >
            >Спасибо за то что поделились опытом!

            Я с подобной проблемой сталкивался и именно на броадкоме и именно на 8-ке. С натом родным вообще рекомендуется отключать TCO и контрольные суммы. После отключения все заработало нормально. Но потом, стало не комфортно иметь подобные примочки и не использовать их. В данный момент используем ipfw и nat из pf. совместно они замечательно работают. Вся это проблема в родном нате.

            • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! Pbl6a, 14:26 , 03-Авг-10 (9) +1
              Добавлю в тему следующую ссылку уточняющую проблему, ведь боюсь многие ещё будут сталкиваться наверняка:
              http://www.mail-archive.com/freebsd-net@freebsd.org/msg...
              оттудава выдержка
              ===========================================================
                   Due to the architecture of libalias(3), ipfw nat is not compatible with
                   the TCP segmentation offloading (TSO).  Thus, to reliably nat your net-
                   work traffic, please disable TSO on your NICs using ifconfig(8).
              ===========================================================

              То есть либо отрубаем на интерфейсе tso (или же вообще "sysctl net.inet.tcp.tso=0") либо отказываемся от libalias (natd или ipfw nat).

              • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! mr.yaky, 19:21 , 03-Авг-10 (10)
                >То есть либо отрубаем на интерфейсе tso (или же вообще "sysctl net.inet.tcp.tso=0")
                >либо отказываемся от libalias (natd или ipfw nat).

                Хочу задать еще вопрос :
                если я буду использовать pf-nat в связке с IPFW, то каким образом мне нужно модифицировать правила такого типа для связки IPFW+pfnat при отключенном natd:

                $cmd 0181 divert natd ip from any to any in via $pif
                $cmd 5000 divert natd ip from any to any out via $pif

                и как быть тогда с правилами содержащими skipto 5000 ?
                И возможно ли это - много гуглил, но так и конкретного ответа не нашел?

                Или если я хочу использовать pfnat, то нужно переписывать все правила под pf и выкидывать IPFW взамен уже на pf+pfnat! Говорю об этом потому как, все-таки хотелось бы остаться на IPFW из-за DUMMYNET(про ALTQ знаю но хотелось,если возможно, сменить только NAT на другой, как рекомендовали на pfnat и сделать связку IPFW+pfnat,а не перестраивать пол системы)?

                Буду благодарен за внятный ответ! Спасибо!

                • Squid 2.7.9(Freebsd 8.0) - тормоза upload speed, !*! bobcat12, 12:35 , 04-Авг-10 (11)
                  >[оверквотинг удален]
                  >И возможно ли это - много гуглил, но так и конкретного ответа
                  >не нашел?
                  >
                  >Или если я хочу использовать pfnat, то нужно переписывать все правила под
                  >pf и выкидывать IPFW взамен уже на pf+pfnat! Говорю об этом
                  >потому как, все-таки хотелось бы остаться на IPFW из-за DUMMYNET(про ALTQ
                  >знаю но хотелось,если возможно, сменить только NAT на другой, как рекомендовали
                  >на pfnat и сделать связку IPFW+pfnat,а не перестраивать пол системы)?
                  >
                  >Буду благодарен за внятный ответ! Спасибо!

                  Из правил ipfw убираем все что касается divert. Из rc.conf то-же.
                  В правилах pf прописываем типа:

                  ext_if = "bce0"
                  table <insidenet> const { 192.168.0.0/16 } (или ваши конкретные подсети)
                  nat on $ext_if from <insidenet> to any -> ($ext_if)

                  У нас у самих  большой конфиг с правилами ipfw и в свое время было лениво переписывать.
                  С DUMMYNET мы не пробовали ( задача не стояла). Я, думаю, что оно наверняка будет работать. Только правила должены применяться в отношении внутренних сетей на внутренней сетевой карте или без привязки к сетевой карте.





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру