Esse site é meio antigo, mas é uma boa referencia para entender tudo que envolve servir várias conexões simultaneas.
A partir dele se descobre várias outras coisas. http://www.kegel.com/c10k.html []´s 2011/11/29 Marcelo Gondim <gon...@bsdinfo.com.br>: > Em 29/11/2011 02:17, Paulo Henrique escreveu: >> Marcelo Gondim, porei gerar um case para poder apresentar nos eventos. >> Eu tenho ainda o meu ambiente mais nada monstruoso como o seu. >> No maximo que possuo é 300mbps no servidor de backup. >> Estou muito enferrujado, mais estive trabalhando em documentação para o >> PFSense. >> Logo vou disponibiliza-la. > > Opa Paulo, > > Uma boa idéia. Vou preparar os slides e depois disponibilizar. Essa > semana estarei de mudança, mas com certeza vou preparar e se alguém > quiser usar como Case será um prazer. > Se aparecer algum evento no Rio ou aqui pela Região dos Lagos e precisar > de um palestrante é só falar. Poderei ser a prova viva que FreeBSD > existe e mudou minha vida. :D > >> >> É só os interessados se dedicar 30 minutos do dias que em dois meses temos >> material e palestrantes organizados para seguir em caravana. >> >> Abraços, assim que a documentação sobre QoS sobre o PFSense 2.0 estiver >> ponto disponibilizo no Fug. >> >> att. >> >> >> Em 29 de novembro de 2011 01:02, Marcelo >> Gondim<gon...@bsdinfo.com.br>escreveu: >> >>> Em 28/11/2011 17:50, Leonardo Augusto escreveu: >>>> Ummm essa questão(ao meu ver), envolve vários fatores, espero poder te >>>> ajudar te indicando a observar alguns detalhes: >>>> >>>> - overview - fatos - porque dê - pra quê ffeebsd >>>> >>> ----------------------------------------------------------------------------------------------------- >>>> - se tunares o freebsd corretamente, muito provavelmente, não obterás >>>> desempenho melhor de SO (no mesmo hardware, x86) para a aplicacao que >>>> desejas. >>>> - mesmo que voce "soque" tudo num servidor apenas, apache, mysql, etc >>>> - enquanto tens poucos acessos "todo mundo" é "igual" ou "mais rapido" >>>> que o Freebsd, aparentemente, ehe. >>>> - agora, quando "tacar" "trocentos" mil hits em cima, aí que a coisa >>>> começa a se definir, quando o swap(virtual memory) começar a ser >>>> usado, as máscaras caem. >>>> - já vi um benchmark do bsd 7.2 com mysql apache e etc, no mesmo >>>> hardware, em relacao a um linux, na epoca o mais recente tambem. >>>> até certo ponto(enquanto nao usava-se swap e com xxx conexoes >>>> simultaneas) o linux era levemente superior ao bsd em desemepenho, >>>> quando o numero de conexcoes chegou a XX.XXX e o swap comecou a se >>>> fazer necessario, >>>> o linux degradou ABSURDAMENTE, VERGONHOSAMENTE, LIXOSAMENTE, >>>> TOSCAMENTE HORRIVELMENTE NOJENTAMENTE a performance, o cara nem >>>> conseguia entrar com o ssh na maquina.. >>> Concordo contigo Leonardo. Trabalhei com Linux desde 1996, em 2000 fui >>> até funcionário da Conectiva como consultor e posso te dizer que no >>> início o kernel do Linux não tinha obviamente todos os recursos que tem >>> hoje, mas eu sentia muito mais estabilidade naquela época do kernel >>> 1.2.13 e 2.2 que hoje. >>> >>> Acho que já contei aqui porque resolvi migrar meus servidores Linux para >>> FreeBSD mas se não contei aqui vai: >>> >>> Atualmente sou Gerente de TI de um Provedor aqui da Região dos Lagos - >>> RJ. Nós atuamos em 4 cidades: Araruama, São Pedro, Saquarema e Rio >>> Bonito. Os links das Cidades somados batem 560Mbps mas temos um link de >>> sobra de 700Mbps. Quando tínhamos Linux fazendo a infra no início era >>> tranquilo e não tínhamos problemas mas o tráfego foi crescendo à medida >>> que crescia nossa carteira de clientes e chegou em um ponto que >>> simplesmente em determinados picos de tráfego começavam os travamentos >>> de rede. Subia ksoftirq à dar com pau e tentamos de tudo: >>> >>> - Kernel tunado e compilado com versões mais recentes. >>> - Removi todo o stateful do sistema deixando ele totalmente stateless. A >>> tabela de conntrack nem existia. >>> - Reduzi regras de Firewall para o básico deixando o sistema mais leve >>> de regras. >>> - Trocamos as interfaces de rede de Intel Gigabit por outras Intel >>> Gigabit Server, troquei os equipamentos para Dual Quad Xeon com 8Gb de ram. >>> - Trocamos a switch existente por uma Cisco Catalyst bam bam bam com >>> todas as portas Gigabit. >>> - Usava Debian 6 e CentOS 5.5 e nenhum deles se comportou como deveria. >>> - Fiz um CPU affinity jogando as interrupções das interfaces de rede uma >>> pra cada CPU, para evitar uma migração de entre CPUs e dar problemas >>> com o tráfego. >>> - Fiz tunning no TCP/IP. >>> - Troquei até de escalonador no kernel e nada. >>> >>> Fiz isso tudo acima e mais coisas que não lembro agora de cabeça. Depois >>> de penar quase 1 mês com problemas intermitentes resolvi seguir um >>> conselho de uma pessoa na lista do nic.br que me disse para testar o >>> FreeBSD. Bem eu já havia feito um treinamento com na FreeBSD Brasil uns >>> meses antes e pensei... Por que não? >>> >>> Simplesmente peguei o mesmo hardware que usei antes de trocar para o >>> Dual Quad Xeon, um Xeon simples com 4Gb de ram apenas. As mesmas >>> interfaces de rede Intel Gigabit. O mesmo sistema de gerenciamento que >>> usava com Apache + PHP + Mysql. Só tive que passar as regras que tinha >>> no IPtables para o pf e ipfw e pronto. >>> Tudo passou à funcionar perfeitamente e sem as travadas de rede e usando >>> um hardware inferior, o que já estava desde o início "dando problema". >>> >>> Realmente na hora que mais precisei de poder e estabilidade de um >>> sistema, o FreeBSD caiu como uma luva e o mais interessante foi que >>> mesmo sem ter a menor experiência com o sistema pude, com poucos >>> ajustes, resolver os problemas que aconteciam. >>> >>> É isso. :) >>> >>>> enquanto isso o Freebsd continuou mantendo seu desepenho como o vinha >>>> fazendo com xx conexoes.. .o ssh entrava normal... e nao parece que >>>> havia trocentas conexoes na maquina... INCRIVEL. >>>> - sei que tem varias pessoas aqui que gostam e defendem o linux, mas é >>>> fato, a VM e a pilha tcp e o IO do bsd sao imbativeis nesse caso. >>>> - Nao vou citar o nome, mas conheco uma empresa de listas de email >>>> online, tipo o yahoo groups, que comecou em linux, logo que o >>>> movimento cresceu, TUDO SENTOU NA GRAXA, foi um desespero total, >>>> quando a memoria se exauria, o linux travava... os caras iam trocar o >>>> hardware, ate que decidiram antes testar o freebsd.... ahaha nem teve >>>> graça, chegava a ter 3000 processos em PERL processando emails >>>> e a maquina normal.... no mesmo hardware, o linux com 800 processos >>>> PERL ja sentava e travava.... ficava MUITO LENTO, a rede nao >>>> funcionava, etc. >>>> Os caras usam freebsd ate hoje, e enviam mais de 150 milhoes de emails >>>> por mes !! fora acessos web, mysql etc.. >>>> >>>> Enfim, poderia ficar o dia inteiro argumentando pq vc deve usar o >>>> freebsd se pretende ter muitos acessos algum dia, é como vc ter um >>>> .357 magnum pra caçar rato, é besteira, até o dia que sua familia >>>> cresce >>>> e voce precisa caçar um búfalo, um .22 que mata o rato, nem faz >>>> cócegas no búfalo. >>>> Voce só vai entender do que o freebsd é faz quando chegar esse momento. >>>> >>>> Essa é a minha opiniao baseada na minha experiencia, uso bsd a 13 >>>> anos, ja usei linux antes por 2 anos e SÓ ME LASQUEI com aquela >>>> tranquera. >>>> Aprendi UMA VEZ a configurar o freebsd na versao 3.x alguma coisa e >>>> ate hoje nao mudou nada.... vai configurar um debian, um redhat e um >>>> suse pra vc ver como é facil, kkkkk (nojento, irritante, tosco >>>> aarrgggggg) >>>> Tenho um servidor que comecou no freebsd 6.1, ja fiz upgrade dele até >>>> o 7.2, desde la nao fiz mais e ele ja esta com uptime com mais de >>>> 1.100( mil e cem ) dias.... >>>> >>>> Bom, mas chega de bla bla bla pra argumentar pq eu acho que vc esta >>>> fazendo uma boa escolha em usar freebsd, de olhos fechados.. >>>> >>>> Agora vou dar minhas dicas diretas sobre o que eu acho que voce deve >>>> tomar atencao para configurar seu servidor web. >>>> >>>> - meus beans - levando em conta APENAS UM SERVIDOR, rodando tudo nele, >>>> e nao um cluster ou master slave, isso já seria outra historia. >>>> >>> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- >>>> - esqueça virtualização, se quer algo hardcore, instale um bsd >>>> nativamente no hardware. >>>> - o hardware depende muito do tipo de aplicacao, algo baseado em mysql >>>> tipo wordpress ou arquivos estaticos como fotos e downloads ??? >>>> - se for mais textual usando mysql, coloque a maior quantidade de ram >>>> que puder, 32G por exemplo, num INTEL 64 bits mother de servidor e nao >>>> desktop pelo amor de deus, >>>> nao vai me comprar um PC na loja da esquina e querer transformar num >>> servidor. >>>> - se for muito acesso a fotos e downloads, tente por uma controladora >>>> dedicada com RAID 10 com um bom cache, acho que hoje nao é mais SCSI e >>>> sim SAS, isso sai caro.. .mas vale... >>>> - tente uma placa moderna com FSB 1333 >>>> >>>> - voce precisa recompilar o kernel, as versoes mais atuais do bsd >>>> passaram tudo pro SYSCTL as confs que se fazia no kernel, entao o que >>>> vc deve fazer é tirar tudo que é declaracao >>>> de hardware nao presente, placas de rede, controladoras, etc, CAPA >>>> TUDO FORA... de uma pesquisada sobre kernel tunning... sempre se acha >>>> algumas dicas... >>>> >>>> - antes de recompilar o kernel e os ports que ira usar coloque isso no >>>> /etc/make.conf >>>> >>>> CFLAGS= -O2 -pipe -funroll-loops -ffast-math >>>> COPTFLAGS= -O2 -pipe -funroll-loops -ffast-math >>>> WITHOUT_X11=yes >>>> NO_X=yes >>>> >>>> - meu sysctl.conf ( pesquise sobre as opcoes, pode melhorar ou >>>> adicionar algo, os buf ali podem ser tunados segundo o caso ) >>>> >>>> machdep.hyperthreading_allowed=1 >>>> security.jail.set_hostname_allowed=0 >>>> security.jail.allow_raw_sockets=1 >>>> security.jail.socket_unixiproute_only=1 >>>> security.jail.sysvipc_allowed=0 >>>> security.jail.enforce_statfs=2 >>>> security.jail.allow_raw_sockets=1 >>>> security.jail.chflags_allowed=0 >>>> kern.maxfiles=65535 >>>> kern.maxfilesperproc=32768 >>>> kern.ipc.somaxconn=8192 >>>> kern.ipc.maxsockbuf=2097152 >>>> kern.ipc.maxsockets=81920 >>>> kern.ipc.shmmax=33554432 >>>> kern.ipc.shmall=32768 >>>> kern.polling.enable=1 >>>> kern.polling.user_frac=50 >>>> vfs.vmiodirenable=1 >>>> vfs.ufs.dirhash_maxmem=67108864 >>>> kern.maxvnodes=500000 >>>> net.inet.ip.check_interface=1 >>>> net.inet.udp.blackhole=1 >>>> net.inet.tcp.blackhole=2 # blackhole pings, traceroutes, etc. >>>> net.inet.icmp.icmplim=100 >>>> net.inet.ip.fw.dyn_max=4000 >>>> net.inet.tcp.sendspace=65535 >>>> net.inet.tcp.recvspace=32768 >>>> net.inet.udp.recvspace=65535 >>>> net.inet.udp.maxdgram=57344 >>>> net.local.stream.recvspace=65535 >>>> net.local.stream.sendspace=65535 >>>> >>>> - se voce puder instalar tudo via ports, (atualize o mesmo antes ok) >>>> eu recomendo, pois se voce usar o portupgrade, pode manter tudo >>>> atualizado facilmente. >>>> voce sempre pode dar um make extract a "mecher" nas configuracoes dos >>>> makes se precisar para tunar algo. >>>> >>>> - O apache pode ser usado no bsd de maneiras diferentes, prefor MPM ou >>>> worker MPM, sao coisas diferentes, pesquise sobre. >>>> - Se vais usar muito arquivo estatico, tente usar o lighttpd ou o >>>> nginx no lugar do apache, para arquivos estaticos eles sao mais >>>> eficientes. >>>> - se for usar php, utilize o modo com fast-cgi, nao use o mod_php... >>>> (estufa o apache sem necessidade), voce tem mais beneficios como >>>> mod_fastcgi e o php >>>> rodando em separado do apache. >>>> >>>> - Se for usar php acessando mysql, tente usar o MEMCACHE, vais te salvar >>> a vida. >>>> - O memcache tambem pode ser usado com o apache para arquivos >>>> estaticos.. mas acho que nao vale a pena, use o lighttpd ou o nginx >>>> pra isso. >>>> >>>> - Tunar o mysql tb é muito importante... bem como sua aplicacao nao >>>> conter erros ridiculos como uma consulta sem indice ou com indice >>>> errado... nao tem cristo que va resolver teu problema nesse caso. >>>> >>>> - O file system default do bsd tambem precisa de alguns ajustes, se >>>> tiver muitos acessos a arquivos, voce pode tirar fora o softupdates, >>>> mas o risco nao vale a pena, se tiver uma queda de energia >>>> podes perder muita coisa, mas o ganho de performance é substancial, >>>> mas acho que nao seja o teu caso. >>>> eu apenas tiro fora o esquema de atualizar o last access do arquivo, >>>> uma bobagem la que da diferenca, tal do "noatime", mude entao no fstap >>>> e ponha essa opcao na particao onde os arquivos iram ficar. >>>> Eu deixei assim: >>>> >>>> /dev/aacd0s1d /tmp ufs rw,noatime 2 2 >>>> /dev/aacd0s1f /usr ufs rw,noatime 2 2 >>>> /dev/aacd0s1e /var ufs rw,noatime 2 2 >>>> >>>> >>>> E assim cara, por aí vai... mas tenha dúvida que o freebsd irá >>>> suportar bem qualquer extremo que vc venha a ter. >>>> >>>> Se eu puder ajudar mais, sinta-se a vontade para me chamar em pvt que >>>> conversamos sobre o caso. >>>> >>>> Ah e nao se esquece que fazer testes com o "ab" a partir de outra >>>> maquina ajuda muito a vc detectar os gargalos. >>>> O freebsd por sí só nao vai te resolver, vc tem que setar ele e as >>>> aplicacoes corretamente, e tudo sobre um hardware condizente e um link >>>> mais ainda. >>>> Se nao és sócio de um hosting, te aconselho um datacenter externo, >>>> tipo nos eua, softlayer é muito bom, uso a 8 anos e NUNCA tive >>>> problemas, >>>> te colocam uma maquina a mais em ate 2h se precisar, ja possuem >>>> solucao pra load balance nativo, etc, etc, etc >>>> >>>> Abraço >>>> Leonardo >>>> > > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd