Re: [zope-pt] Re: Meio milhão de notícias
Continuando com mais algumas informações, Ainda estamos utilizando Plone 2.1.2 Já estamos planejando a migração para plone 3 e noticias e fotos já passam de 80 mil juntos. Em 18/04/08, Francisco Lopes de Faria [EMAIL PROTECTED] escreveu: Olá Pessoal!? Eu participei do desenvolvimento da Agencia Brasil. Estrutura: nós fizemos muitas sintonias finas no ambiente, mas para separar por ano/mes/dia fizemos um simples Controler Python Script que ao criar a matéria verifica se o folder já existe e se não existe, caso exista ele nao cria e vice-versa. Hoje temos, em média de 35 mil noticias e subindo, temos 28 mil fotos e vários outros tipos de objetos. Temos objetos binários que não armazenamos no ZODB, utilizando um ExternalStorage colocamos eles no sistema de arquivos. As pesquisas são todas feitas no Catalog e qualquer alteração é muito bem estudada pois o site tem um número muito grande de acesso externo e também um número muito grande de Reporteres e Editores incluindo conteúdo texto e multimedia. Resumindo o ZODB ficou para armazenagem simples das matérias e dos metadados dos conteúdos binários. Qualquer dúvida estamos a disposição pra ajudar no que for possível. Temos uma politica de cache e servimos os conteúdos estaticos em outro server utilizando a estrutura planejada. isso diminui em muito os requestes no plone. Abraços. -- Atenciosamente + Francisco Lopes de Faria PMP Project Management Professional ITIL Fundation LPIC-2 Checkpoint Mysql Core http://www.hostingfsa.com + Em 18/04/08, vinicius_marco [EMAIL PROTECTED] escreveu: Até fizemos isso no nosso site. Mas não usamos o at_post_create e nem o subscriber. O script de criação de notícia já estava customizado e acrescentamos a regra da pasta lá. A propósito, o site da Agência Brasil que você citou parece ter cerca de 1 milhão de notícias catalogadas. Alguém tem idéia de quem participou do seu desenvolvimento? Qual a estrutura utilizada? Está com uma performance razoável mesmo pesquisando e navegando por uma boa quantidade de registros. []'s, --- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, Davi Medeiros [EMAIL PROTECTED] escreveu O pessoal aqui http://www.agenciabrasil.gov.br/ costuma separar as notícias por ano, mês e dia. Faz bastante sentido, se alguém puder dar uma dica de como operacionalizar isso, agradeço. (quando o relógio virar meia-noite, crie uma nova pasta. quando acrescentarem uma notícia na raiz do site, mova este objeto para a pasta do dia) Bom dia! DL --- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, vinicius_marco marco_vinicius@ escreveu Talvez a quantidade exagerada de notícias numa única pasta seja a causa... Mas qual o recomendado? Abs.. -- Atenciosamente + Francisco Lopes de Faria PMP Project Management Professional ITIL Fundation LPIC-2 Checkpoint Mysql Core http://www.hostingfsa.com +
[zope-pt] Re: Meio milhão de notícias
Até fizemos isso no nosso site. Mas não usamos o at_post_create e nem o subscriber. O script de criação de notícia já estava customizado e acrescentamos a regra da pasta lá. A propósito, o site da Agência Brasil que você citou parece ter cerca de 1 milhão de notícias catalogadas. Alguém tem idéia de quem participou do seu desenvolvimento? Qual a estrutura utilizada? Está com uma performance razoável mesmo pesquisando e navegando por uma boa quantidade de registros. []'s, --- Em zope-pt@yahoogrupos.com.br, Davi Medeiros [EMAIL PROTECTED] escreveu O pessoal aqui http://www.agenciabrasil.gov.br/ costuma separar as notícias por ano, mês e dia. Faz bastante sentido, se alguém puder dar uma dica de como operacionalizar isso, agradeço. (quando o relógio virar meia-noite, crie uma nova pasta. quando acrescentarem uma notícia na raiz do site, mova este objeto para a pasta do dia) Bom dia! DL --- Em zope-pt@yahoogrupos.com.br, vinicius_marco marco_vinicius@ escreveu Talvez a quantidade exagerada de notícias numa única pasta seja a causa... Mas qual o recomendado? Abs..
Re: [zope-pt] Re: Meio milhão de notícias
Olá Pessoal!? Eu participei do desenvolvimento da Agencia Brasil. Estrutura: nós fizemos muitas sintonias finas no ambiente, mas para separar por ano/mes/dia fizemos um simples Controler Python Script que ao criar a matéria verifica se o folder já existe e se não existe, caso exista ele nao cria e vice-versa. Hoje temos, em média de 35 mil noticias e subindo, temos 28 mil fotos e vários outros tipos de objetos. Temos objetos binários que não armazenamos no ZODB, utilizando um ExternalStorage colocamos eles no sistema de arquivos. As pesquisas são todas feitas no Catalog e qualquer alteração é muito bem estudada pois o site tem um número muito grande de acesso externo e também um número muito grande de Reporteres e Editores incluindo conteúdo texto e multimedia. Resumindo o ZODB ficou para armazenagem simples das matérias e dos metadados dos conteúdos binários. Qualquer dúvida estamos a disposição pra ajudar no que for possível. Temos uma politica de cache e servimos os conteúdos estaticos em outro server utilizando a estrutura planejada. isso diminui em muito os requestes no plone. Abraços. -- Atenciosamente + Francisco Lopes de Faria PMP Project Management Professional ITIL Fundation LPIC-2 Checkpoint Mysql Core http://www.hostingfsa.com + Em 18/04/08, vinicius_marco [EMAIL PROTECTED] escreveu: Até fizemos isso no nosso site. Mas não usamos o at_post_create e nem o subscriber. O script de criação de notícia já estava customizado e acrescentamos a regra da pasta lá. A propósito, o site da Agência Brasil que você citou parece ter cerca de 1 milhão de notícias catalogadas. Alguém tem idéia de quem participou do seu desenvolvimento? Qual a estrutura utilizada? Está com uma performance razoável mesmo pesquisando e navegando por uma boa quantidade de registros. []'s, --- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, Davi Medeiros [EMAIL PROTECTED] escreveu O pessoal aqui http://www.agenciabrasil.gov.br/ costuma separar as notícias por ano, mês e dia. Faz bastante sentido, se alguém puder dar uma dica de como operacionalizar isso, agradeço. (quando o relógio virar meia-noite, crie uma nova pasta. quando acrescentarem uma notícia na raiz do site, mova este objeto para a pasta do dia) Bom dia! DL --- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, vinicius_marco marco_vinicius@ escreveu Talvez a quantidade exagerada de notícias numa única pasta seja a causa... Mas qual o recomendado? Abs..
Re: [zope-pt] Re: Meio milhão de notícias
Opa Davi, Isto pode ser feito usando o metodo at_post_create_script de um novo archetype ou ate mesmo criando um novo workflow para o tipo noticia, dizendo quando a noticia for criada ele vai mover a noticia para a pasta do dia, caso nao exita a pasta ele cria. Abraços.. 2008/4/3 Davi Medeiros [EMAIL PROTECTED]: O pessoal aqui http://www.agenciabrasil.gov.br/ costuma separar as notícias por ano, mês e dia. Faz bastante sentido, se alguém puder dar uma dica de como operacionalizar isso, agradeço. (quando o relógio virar meia-noite, crie uma nova pasta. quando acrescentarem uma notícia na raiz do site, mova este objeto para a pasta do dia) Bom dia! DL --- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, vinicius_marco [EMAIL PROTECTED] escreveu Talvez a quantidade exagerada de notícias numa única pasta seja a causa... Mas qual o recomendado? Abs.. -- Leonardo Miranda
Re: [zope-pt] Re: Meio milhão de notícias
Melhorando: Use subscribers ao invés do at_post_create_script. Plone 3 rox! 2008/4/3 Leonardo Miranda [EMAIL PROTECTED]: Opa Davi, Isto pode ser feito usando o metodo at_post_create_script de um novo archetype ou ate mesmo criando um novo workflow para o tipo noticia, dizendo quando a noticia for criada ele vai mover a noticia para a pasta do dia, caso nao exita a pasta ele cria. Abraços.. 2008/4/3 Davi Medeiros [EMAIL PROTECTED]: O pessoal aqui http://www.agenciabrasil.gov.br/ costuma separar as notícias por ano, mês e dia. Faz bastante sentido, se alguém puder dar uma dica de como operacionalizar isso, agradeço. (quando o relógio virar meia-noite, crie uma nova pasta. quando acrescentarem uma notícia na raiz do site, mova este objeto para a pasta do dia) Bom dia! DL --- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, vinicius_marco [EMAIL PROTECTED] escreveu Talvez a quantidade exagerada de notícias numa única pasta seja a causa... Mas qual o recomendado? Abs.. -- Leonardo Miranda -- Fábio Rizzo Matos ThreePointsWeb [EMAIL PROTECTED] http://www.threepointsweb.com +55 61 3202-6480 Python, Zope e Plone com quem entende do assunto!
[zope-pt] Re: Meio milhão de notícias
--- Em zope-pt@yahoogrupos.com.br, Fabiano Weimar dos Santos [EMAIL PROTECTED] escreveu Caros, O site hoje está com 50.000 notícias e a performance está inaceitável. 1. Utilizamos BTreeFolder para armazenar as notícias. 2. Existe um indíce para as datas. 3. As pesquisas usam exclusivamente o portal_catalog e as listagens não invocam o getObject(), usando apenas os Brains. 4. Não há um grande número de usuários acessando o site. O servidor é quadriprocessado com 4 GB de RAM. Será que o Zope/Plone é recomendado apenas para pequenas soluções? Existe algo que seja feito para prepará-lo para grandes volumes de informação? Abs, 2008/3/6 vinicius_marco [EMAIL PROTECTED]: Não sei se você percebeu, mas para um volume de informações como esse, eu acho que vale a pena tomar cuidado e adotar soluções de SGDB relacional e indexação externa (estilo XAPIAN)/Lucene). Pois.. mas o ZODB não é otimizado para gerenciar e buscar conteúdo? Não é esse o propósito? Vou ter que apelar para o relacional por causa de volume? Como eu disse, talvez. Uma pasta por dia? Certo, mas aí vem uma dúvida. Como otimizo uma busca que envolva 10 dias de notícias? Dá para informar mais de um path para o portal_catalog numa única consulta? Se eu não informar o path a pesquisa será feita em todos os milhares de registros sem necessidade. Para fazer buscas por data, use um DateIndex e não busca por path. Não.. Mas supondo que seja isso. Não há solução? Não dá para fazer uma leitura bufferizada e ir persistindo em disco imediatamente? O commit feito em nosso código melhorou a performance, mas não foi o suficiente. Persistir imediatamente significa fazer um commit para cada objeto. Isso com certeza tornaria as transações menos e o consumo de memória seria menor, mas terias mais atividade de IO (disco). -- Fabiano Weimar dos Santos (xiru) Weimar Consultoria Hospedagem Plone, Zope e Python http://www.pytown.com
Re: [zope-pt] Re: Meio milhão de notícias
Vinicius, - Como esta as configuração do seu Zope ? - Ele esta fazendo cache dos objetos mais utilizados ? - Qual tamanho do cache de cada instância ? - O que você esta usando para balanceamento de carga ? - Quantas instâncias estão rodando no seu servidor ? - O que tem instalado no mesmo servidor do Zope ? instâncias, zeo, apache, squid, bd relacional ? - Você esta usando algum Web Cache ? O Zope como qualquer outra aplicação que exige uma demanda grande necessita de ajustes finos para melhorar a sua performance, caso você não tenha esses conhecimentos sugiro que busque um profissional para mostrar o que pode esta ocorrendo. abraços, Clayton
[zope-pt] Re: Meio milhão de notícias
Clayton, A questão é que a lentidão acontece com apenas um acesso. Com mais detalhes, existe um BTreeFolder que armazena todas as notícias. Após importar cerca de 60K notícias para este BTreeFolder a aplicação apresentou lentidão. 1. Acessar a FolderNoticias e adicionar um novo item leva mais de minutos. 2. As pesquisas feitas por usuário anônimo até que apresentam uma performance razoável, mas só após um restart e pack de 0 dias efetuado. 3. O Data.fs está com mais de 1GB e, de acordo com o estimado, deve chegar a quase 10GB. Assim, entendo que alguns ajustes devem ser realmente efetuados quando a aplicação for para produção. Mas é visível que o comportamento antes desta etapa já me mostra que a plataforma Zope/Plone do jeito que está não vai aguentar o tranco. Uma série de práticas de desenvolvimento para boa performance foram utilizadas, como, por exemplo, o uso de índices para data, uso da BTreeFolder em função do grande volume de notícias, evitar o uso de getObject(), etc.. Talvez a quantidade exagerada de notícias numa única pasta seja a causa... Mas qual o recomendado? Abs.. --- Em zope-pt@yahoogrupos.com.br, Clayton [EMAIL PROTECTED] escreveu Vinicius, - Como esta as configuração do seu Zope ? - Ele esta fazendo cache dos objetos mais utilizados ? - Qual tamanho do cache de cada instância ? - O que você esta usando para balanceamento de carga ? - Quantas instâncias estão rodando no seu servidor ? - O que tem instalado no mesmo servidor do Zope ? instâncias, zeo, apache, squid, bd relacional ? - Você esta usando algum Web Cache ? O Zope como qualquer outra aplicação que exige uma demanda grande necessita de ajustes finos para melhorar a sua performance, caso você não tenha esses conhecimentos sugiro que busque um profissional para mostrar o que pode esta ocorrendo. abraços, Clayton
Re: [zope-pt] Re: Meio milhão de notícias
O famoso ano/mes/dia nao ajudaria? 2008/4/2 vinicius_marco [EMAIL PROTECTED]: Clayton, A questão é que a lentidão acontece com apenas um acesso. Com mais detalhes, existe um BTreeFolder que armazena todas as notícias. Após importar cerca de 60K notícias para este BTreeFolder a aplicação apresentou lentidão. 1. Acessar a FolderNoticias e adicionar um novo item leva mais de minutos. 2. As pesquisas feitas por usuário anônimo até que apresentam uma performance razoável, mas só após um restart e pack de 0 dias efetuado. 3. O Data.fs está com mais de 1GB e, de acordo com o estimado, deve chegar a quase 10GB. Assim, entendo que alguns ajustes devem ser realmente efetuados quando a aplicação for para produção. Mas é visível que o comportamento antes desta etapa já me mostra que a plataforma Zope/Plone do jeito que está não vai aguentar o tranco. Uma série de práticas de desenvolvimento para boa performance foram utilizadas, como, por exemplo, o uso de índices para data, uso da BTreeFolder em função do grande volume de notícias, evitar o uso de getObject(), etc.. Talvez a quantidade exagerada de notícias numa única pasta seja a causa... Mas qual o recomendado? Abs.. --- Em zope-pt@yahoogrupos.com.br zope-pt%40yahoogrupos.com.br, Clayton [EMAIL PROTECTED] escreveu Vinicius, - Como esta as configuração do seu Zope ? - Ele esta fazendo cache dos objetos mais utilizados ? - Qual tamanho do cache de cada instância ? - O que você esta usando para balanceamento de carga ? - Quantas instâncias estão rodando no seu servidor ? - O que tem instalado no mesmo servidor do Zope ? instâncias, zeo, apache, squid, bd relacional ? - Você esta usando algum Web Cache ? O Zope como qualquer outra aplicação que exige uma demanda grande necessita de ajustes finos para melhorar a sua performance, caso você não tenha esses conhecimentos sugiro que busque um profissional para mostrar o que pode esta ocorrendo. abraços, Clayton