Em 10/09/13 18:49, vic escreveu: > Em 2013-09-10 17:59, Marcelo Gondim escreveu: >> 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 >>>> r...@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 >> > No servidor tem mais 2 VM, um FreeBSD 7.4 i386 (app legado), um > Slackware 13.1 i386 (outro app legado) e esse FreeBSD 9.1 rodando apps > em java. > > Segue conf do kernel > > include GENERIC > ident XENHVM > > # > # Adaptive locks rely on a lock-free pointer read to determine the run > state > # of the thread holding a lock when under contention; under a > virtualisation > # system, the thread run state may not accurately reflect whether the > thread > # (or rather its host VCPU) is actually executing. As such, disable > this > # optimisation. > # > options NO_ADAPTIVE_MUTEXES > options NO_ADAPTIVE_RWLOCKS > options NO_ADAPTIVE_SX > > # Xen HVM support > options XENHVM > device xenpci > > cat /boot/loader.conf > > # XEN console support > boot_multicons="YES" > boot_serial="YES" > comconsole_speed=9600 > console="comconsole,vidconsole" > Pessoal, era uma besteira! Ficava mais lento porque na verdade à cada conexão na página havia uma conexão ao mysql. Deixando no html puro, ficou perfeito. :) Resolvido o mistério e fica aqui pro histórico caso alguém passe por algo parecido.
[]'s Gondim ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd