On Fri, Sep 16, 2005 at 03:06:18PM -0300, Jeronimo Zucco wrote:
| -----BEGIN PGP SIGNED MESSAGE-----
| Hash: SHA1
| 
| Olá, lista!
| 
| Usamos zope conforme o ambiente abaixo:
| - - Zope 2.7.4-0
| - - ZCoMIX-1.0.2+ (http://sourceforge.net/projects/zcomix)

Ae!

| - - mysqlUserFolder 1.0.0
| - - python 2.3.4
| - - Red Hat Enterprise Linux ES release 2.1, kernel 2.6.11, ext2 fs
| - - MySQL-server-4.0.20
| - - Apache 2.0.50 (with HTTPS) for cache
| 
| 1 Portal replicado através do Zeo e balanceado com DNS Round Robin.
| 
| Hardware:
| 2 Servers HP ML350 G4 with Dual Intel Xeon 2.80GHz, 3Gb of Memory,
| without RAID, SCSI U320 with 4 disks 120gb.
| 
| Disponibilizamos um documento dinâmico para os alunos (35.000), que era
| gerado após a autenticação do usuário através do mysqluserfolder e
| consultas em base MySQL.

Bem, ai ja tem dois problemas:

1. a autenticacao em mysql
2. consulta em mysql

O tempo de resposta do Zope eh a soma dos tempos que cada uma dessas
consultas leva para rodar mais o tempo de processamento da
pagina. Diferente do Apache, o Zope tem um limite baixo do numero de
threads que sao executadas ao mesmo tempo. Logo, se as consultas forem
muito pesadas vao se esgotar os recursos rapidamente.

| Os processos do python ocuparam 100% dos recursos de hardware (cpu e
| memória), e o load average cresceu rapidamente. Constatamos que os
| problemas ocorreram antes de o usuario se autenticar, acessando somente
| a pagina inicial do portal em Zope.

Possivelmente o problem esta restrito ao mysqluserfolder entao. Nunca
usei o dito cujo, mas convem lembrar que cada 'arquivo' que o Zope
serve necessita de verificacao de seguranca. Para se ter uma ideia,
fiz um teste num site Plone ontem mesmo com um servico de autenticacao
remota, e para apresentar uma pagina foram feitas 72 consultas a base
de autenticacao. Se o mysqluserfolder for esperto ele vai armazenar os
resultados da autenticacao temporariamente em cache, se nao for, bem
sao varias consultas :(

| Estimamos que os acessos simultaneos ao nosso portal sejam de
| aproximadamente 10000 pessoas em um dado momento, que acabou gerando um
| DoS (Denial of Service) em nosso portal.

Digamos que cada acesso corresponde a 72 consultas somente para
autenticacao. Provavelmente eh muito menos que isso, talvez umas 20 no
seu caso. Se esse for o caso, isso geraria 10000 * 20 = 200000
consultas simultaneas ao mysql. Agora pergunto: O seu mysql suporta
esse numero de consultas?

Lembrando que isso eh apenas uma suposicao. O problema pode ser em
outro lugar.

| Para resolver o problema momentaneamente, tivemos que disponibilizar os
| documentos estaticos em PHP. (OLHEM SÓ)

Nao vejo nada de errado nisso. Ha solucoes que se aplicam melhor a
determinados problemas.

| Alguem teve alguma experiência em sites de grande tráfego no Zope, para
| dar alguma dica de como fazer tunning ou descobrir os pontos de gargalo?

Em geral, se a pagina eh computada uma vez e nao vai mudar por um
determinado tempo eh recomendavel setar parametros de cache no
cabecalho http e fazer o apache ou o squid armazenar a pagina
computada por um tempo determinado de acordo com certos
parametros. Assim, o Zope eh apenas requisitado no primeiro acesso.

| Temos duvida se o que esta gerando o problema eh o ZCoMIX ou o Zope, ou
| até mesmo a configuração do Apache.

Eu apostaria no mysqluserfolder, mas ja perdi varias apostas *wink*.

-- 
Sidnei da Silva
Enfold Systems, LLC.
http://enfoldsystems.com


Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/zope-pt/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a