[FUG-BR] teste do mod_evasive rodando lento na VM

Marcelo Gondim gondim em bsdinfo.com.br
Terça Setembro 10 17:59:33 BRT 2013


Em 10/09/13 17:40, vic escreveu:
> Em 2013-09-10 15:26, Marcelo Gondim escreveu:
>> Em 10/09/13 10:16, vic escreveu:
>>> Em 2013-09-10 9:23, Marcelo Gondim escreveu:
>>>> Pessoal,
>>>>
>>>> Sei que muitos aqui conhecem o mod_evasive pro apache que no FreeBSD
>>>> é
>>>> o
>>>> pacote ap22-mod_evasive.
>>>> Ele vem com um script de teste que sempre utilizei pra checar se o
>>>> mod_evasive tá legal:
>>>>
>>>> test.pl:
>>>>
>>>> #!/usr/bin/perl
>>>> # test.pl: small script to test mod_dosevasive's effectiveness
>>>> use IO::Socket;
>>>> use strict;
>>>> for(0..100) {
>>>>      my($response);
>>>>      my($SOCKET) = new IO::Socket::INET( Proto   => "tcp",
>>>>                                          PeerAddr=> "127.0.0.1:80");
>>>>      if (! defined $SOCKET) { die $!; }
>>>>      print $SOCKET "GET /?$_ HTTP/1.0\n\n";
>>>>      $response = <$SOCKET>;
>>>>      print $response;
>>>>      close($SOCKET);
>>>> }
>>>>
>>>> Só que quando rodo numa VM com FreeBSD ele abre as conexões
>>>> lentamente,
>>>> fazendo com que o teste não funcione. Fiz o mesmo teste em um FreeBSD
>>>> sem ser VM e rodou mais rápido e consegui fazer os testes. Fui
>>>> comparar
>>>> com uma outra máquina com Linux e rodou estupidamente mais rápido.
>>>> Logicamente que diferenças de processamento podem ser uma das causas
>>>> mas
>>>> porque rodou tão lento numa VM é que não descobri ainda.
>>>>     Alguém tem alguma ideia?
>>>>
>>>> Grande abraço
>>> Suponho que sua aquela sua VM em Xen. Por acaso você tem um firewall
>>> PF
>>> na VM? Se sim tente:
>>>
>>> ifconfig xn0 -tso
>>> sysctl -w net.inet.tcp.tso=0
>>>
>>> Referências:
>>>
>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=154428
>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=135178
>>>
>>> Além disso, se você não compilou o kernel XENHVM, faça um teste com
>>> ele
>>> e mude a configuração do xen na vif para usar o type=netfront
>>>
>> É vic compilei com o XENHVM fiz as mudanças de disco e interface de
>> rede
>> e mesmo assim continua lento as conexões localhost do test.pl:
>>
>> # df -h
>> Filesystem     Size    Used   Avail Capacity  Mounted on
>> /dev/xbd0p2      2G    190M    1.6G    10%    /
>> devfs          1.0k    1.0k      0B   100%    /dev
>> /dev/xbd0p4     58G     15G     37G    29%    /var
>> /dev/xbd0p5     31G    6.0G     22G    21%    /usr
>> /dev/xbd0p6      2G     16M    1.8G     1%    /tmp
>>
>> xn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu
>> 1500
>>       options=503<RXCSUM,TXCSUM,TSO4,LRO>
>>       ether 00:16:3e:02:9d:d6
>>       inet xx.xxx.xxx.xx netmask 0xfffffff8 broadcast 67.212.89.79
>>       inet6 fe80::216:3eff:fe02:9dd6%xn0 prefixlen 64 scopeid 0x6
>>       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>>       media: Ethernet manual
>>       status: active
>>
>> # uname -a
>> FreeBSD xxxx.xxx.xxx.xx 9.2-PRERELEASE FreeBSD 9.2-PRERELEASE #0
>> r255410M: Tue Sep 10 14:58:33 BRT 2013
>> root em xxxx.xxx.xxx.xx:/usr/obj/usr/src/sys/XENHVM  amd64
>>
>> Quem tiver a curiosidade de fazer esse teste nas mesmas condições que
>> eu
>> aqui, seria interessante. Abaixo os dados:
>>
>> No servidor Debian 7 amd64
>> ii  libxen-4.1                         4.1.4-3+deb7u1 amd64
>> Public libs for Xen
>> ii  libxenstore3.0                     4.1.4-3+deb7u1 amd64
>> Xenstore communications library for Xen
>> ii  xen-hypervisor-4.1-amd64           4.1.4-3+deb7u1 amd64        Xen
>> Hypervisor on AMD64
>> ii  xen-linux-system-3.2.0-4-amd64     3.2.46-1+deb7u1 amd64        Xen
>> system with Linux 3.2 on 64-bit PCs (meta-package)
>> ii  xen-linux-system-amd64             3.2+46 amd64        Xen system
>> with Linux for 64-bit PCs (meta-package)
>> ii  xen-system-amd64                   4.1.4-3+deb7u1 amd64        Xen
>> System on AMD64 (meta-package)
>> ii  xen-tools                          4.3.1-1 all          Tools to
>> manage Xen virtual servers
>> ii  xen-utils-4.1                      4.1.4-3+deb7u1 amd64        XEN
>> administrative tools
>> ii  xen-utils-common                   4.1.4-3+deb7u1 all          Xen
>> administrative tools - common files
>> ii  xenstore-utils                     4.1.4-3+deb7u1 amd64
>> Xenstore utilities for Xen
>>
>> Arquivo conf da VM:
>>
>> kernel = '/usr/lib/xen-4.1/boot/hvmloader'
>> builder = 'hvm'
>> vcpus = 4
>> memory = 2048
>> shadow_memory = 8
>> name = 'freeba'
>> vif = [ 'type=netfront, model=e1000, bridge=xenbr0', ]
>> #vif = [ 'type=ioemu, bridge=xenbr0, mac=00:00:00:ff:fe:01' ]
>> disk = [
>> 'file:/home/xen/domains/freeba/freeba.img,xvda,w',
>> 'file:/home/xen/domains/freeba/FreeBSD-9.2-PRERELEASE-amd64-20130831-r255108-disc1.iso,xvdc:cdrom,r'
>> ]
>> device_model = '/usr/lib/xen-4.1/bin/qemu-dm'
>> boot = 'cd'
>> sdl=0
>> vnc = '1'
>> vncviewer = '1'
>> vnclisten = "0.0.0.0"
>> vncpasswd = 'songamonga'
>> stdvga=0
>> serial='pty'
>> usbdevice='tablet'
>> on_poweroff = 'destroy'
>> on_reboot   = 'restart'
>> on_crash    = 'restart'
>>
>> Pacote do mod_evasive no FreeBSD:  www/mod_evasive -
>> ap22-mod_evasive-1.10.1_1      An Apache module to try to protect the
>> HTTP Server from DoS/DDoS attacks
>>
>> []'s
>> Gondim
> Eu instalei o www/apache22 num 9.1 XENVHM e rodei o test.pl e o ab -kc
> 10 -t 30 http://IP_VM/ a partir do meu computador.
>
> Depois eu instalei e habilitei o mod_evasive e refiz os teste. Ambos
> rodaram... claro que o test.pl teve uns 403 e o ab não teve todas as
> requisições respondidas.. mas isso era esperado. Todos os testes rodaram
> rapidinho.
>
> Na minha conf do xen não tem setado
>
> shadow_memory
> usbdevice
> e o cdrom (afinal já instalei)
> com 4Gb de memória
> vcpus=2
>
> O host é um Scientific Linux 6 com linux 3.8.7-1.el6xen.x86_64
>
Oi vic mas você tem outras VMs rodando nesse servidor? Nesse aqui tem 
mais 2 VMs.
Estranho mesmo. Tem como você me passar o seu kernel em anexo em pvt? 
Pra eu comparar e ver se tem algo habilitado demais aqui.
Vou tentar também sem esses parâmetros acima.

[]'s
Gondim



Mais detalhes sobre a lista de discussão freebsd