Jump to content

[SOLUCIONADO] Processos index.php causando lentidão


Recommended Posts

Olá a todos,

estou enfrentando um grande problema com minha loja em prestashop, diria até que o maior problema até hoje, a ponto de me fazer desistir do negócio e fechar a loja.

Sempre corri atrás e consegui resolver muitos problemas que tive em minha loja mas com este erro que estou tendo hoje, sinceramente não sei mais o que fazer.

Utilizo o provedor de hospedagem da hostgator no plano business.

De uns dias pra cá, minha loja começou a gerar vários processos index.php causando alto consumo de cpu a ponto de fazer a hostgator desativar minha conta para não atrapalhar os demais utilizadores do servidor.

Tenho cerca de 3000 produtos cadastrados e não acredito que seja esse o problema.

Bom, estou aqui pra pedir a ajuda de vocês para solucionar este problema.

Segue log que a hostgator me envio no ato da suspensão da conta e print da tela..

Se alguém puder ajudar, ficaria muito agradecido..como disse, estou a ponto de desistir de tudo.

 

utilizo a versão 1.6.0.8 do prestashop e a url é www.shopsensual.com.br

 

Obrigado!!

 

post-696344-0-09491600-1410066996_thumb.jpg
Running Processes:
shops340 28770  7.6  0.4 436716 74156 ?        RN   22:43   0:08 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 28994  7.6  0.4 369392 72872 ?        RN   22:43   0:08 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 29124  7.5  0.4 370928 74004 ?        RN   22:43   0:07 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 29136  7.6  0.4 370932 73276 ?        RN   22:43   0:07 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 29461  7.7  0.4 432068 70984 ?        RN   22:43   0:07 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 29501  7.8  0.4 432068 70892 ?        RN   22:43   0:07 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 29535  7.7  0.4 366536 70832 ?        RN   22:43   0:06 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 29958  7.8  0.4 366536 70192 ?        RN   22:43   0:06 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 31409  7.7  0.4 427944 67228 ?        RN   22:44   0:04 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 31428  7.4  0.4 427348 66740 ?        RN   22:44   0:03 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 31550  7.7  0.4 427712 66784 ?        RN   22:44   0:03 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 31587  7.5  0.4 427200 66248 ?        RN   22:44   0:03 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 31765  7.5  0.3 424032 63392 ?        SN   22:44   0:03 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php
shops340 31851  7.7  0.3 424040 63396 ?        RN   22:44   0:02 /usr/bin/php /home/shops340/public_html/shopsensual.com.br/index.php

Running Queries:
*************************** 1. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 1
COMMAND: Sleep
   INFO: NULL
*************************** 2. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE: Copying to tmp table
   TIME: 0
COMMAND: Query
   INFO: SELECT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, MAX(product_attribute_shop.id_product_attribute) id_product_attribute, product_attribute_shop.minimal_quantity AS product_attribute_minimal_quantity, pl.`description`, pl.`description_short`, pl.`available_now`,
                                        pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, MAX(image_shop.`id_image`) id_image,
                                        il.`legend`, m.`name` AS manufacturer_name, cl.`name` AS category_default,
                                        DATEDIFF(product_shop.`date_add`, DATE_SUB(NOW(),
                                        INTERVAL 60
                                                DAY)) > 0 AS new, product_shop.price AS orderprice
                                FROM `ps_category_product` cp
                                LEFT JOIN `ps_product` p
                                        ON p.`id_product` = cp.`id_product`
                                 INNER JOIN ps_product_shop product_shop
                ON (product_shop.id_product = p.id_product AND product_shop.id_shop = 1)
                                LEFT JOIN `ps_product_attribute` pa
                                ON (p.`id_product` = pa.`id_product`)
                                 LEFT JOIN ps_product_attribute_shop product_attribute_shop
                ON (product_attribute_shop.id_product_attribute = pa.id_product_attribute AND product_attribute_shop.id_shop = 1 AND product_attribute_shop.`default_on` = 1)
                                 LEFT
                        JOIN ps_stock_available stock
                        ON (stock.id_product = p.id_product AND stock.id_product_attribute = IFNULL(`product_attribute_shop`.id_product_attribute, 0) AND stock.id_shop = 1  AND stock.id_shop_group = 0  )
                                LEFT JOIN `ps_category_lang` cl
                                        ON (product_shop.`id_category_default` = cl.`id_category`
                                        AND cl.`id_lang` = 1 AND cl.id_shop = 1 )
                                LEFT JOIN `ps_product_lang` pl
                                        ON (p.`id_product` = pl.`id_product`
                                        AND pl.`id_lang` = 1 AND pl.id_shop = 1 )
                                LEFT JOIN `ps_image` i
                                        ON (i.`id_product` = p.`id_product`) LEFT JOIN ps_image_shop image_shop
                ON (image_shop.id_image = i.id_image AND image_shop.id_shop = 1 AND image_shop.cover=1)
                                LEFT JOIN `ps_image_lang` il
                                        ON (image_shop.`id_image` = il.`id_image`
                                        AND il.`id_lang` = 1)
                                LEFT JOIN `ps_manufacturer` m
                                        ON m.`id_manufacturer` = p.`id_manufacturer`
                                WHERE product_shop.`id_shop` = 1
                                        AND cp.`id_category` = 2 AND product_shop.`active` = 1 AND product_shop.`visibility` IN ("both", "catalog") GROUP BY product_shop.id_product ORDER BY cp.`position` ASC
                        LIMIT 0,52
*************************** 3. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 0
COMMAND: Sleep
   INFO: NULL
*************************** 4. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 0
COMMAND: Sleep
   INFO: NULL
*************************** 5. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 1
COMMAND: Sleep
   INFO: NULL
*************************** 6. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 3
COMMAND: Sleep
   INFO: NULL
*************************** 7. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 2
COMMAND: Sleep
   INFO: NULL
*************************** 8. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 3
COMMAND: Sleep
   INFO: NULL
*************************** 9. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 5
COMMAND: Sleep
   INFO: NULL
*************************** 10. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 0
COMMAND: Sleep
   INFO: NULL
*************************** 11. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 3
COMMAND: Sleep
   INFO: NULL
*************************** 12. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 2
COMMAND: Sleep
   INFO: NULL
*************************** 13. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 0
COMMAND: Sleep
   INFO: NULL
*************************** 14. row ***************************
   USER: shops340_presta
     DB: shops340_prestashop
  STATE:
   TIME: 7
COMMAND: Sleep
   INFO: NULL
Edited by paulormf (see edit history)
Link to comment
Share on other sites

Paulo,

Desabilita o modulo de sugestão de busca para ver se melhora, deixa somente a busca quando cara clicar em buscar.

Tenta ativar o debug para ele mostrar se nao tem algum modulo bugado, ai tu consegue ver certinho qual modulo que tá bugado.

abraço,

Mauro

Link to comment
Share on other sites

1) Desabilite o módulo de categorias na página index. Prestashop nativamente nao mais contém este módulo na primeira página e colocou a navegacao na barra superior em ajax, justamente porcausa da experiencia que tinha com versoes antighas. O quanto mais vc. enche a página index com categorias, informacoes e produtos, o quanto mais lerda será a página. Para a navegacao deverá somente usar a barra superior no index. Já nas categorias o bloco de navegacao nao deverá estar causando nenhum problema, pela arquitetura alterada.

Como vc. está usando o bloco de navegacao para outros fins, sugiro que compre um módulo de navegacao nos add-ons do prestashop para usar uma segunda barra com informacoes ou entao navegacao.

 

 

2) Limíte a quantidade de produtos na index para um número menor

Diminua o tamanho das suas imagens no slider que está com mais de 50 KB. Imagens com muito KB necessistam de tempo para carregar...

 

3) Ative o modo debug para ver se contém bugs de outros módulos nao nativos por ex. que tem implementado. Módulos nao idoneos ou mal codados podem estar causando a lentidao.

Se nao tiver erros ativando o modo debug, entao desative todos os módulos nao nativos e ative um por um para ver o qual está causando lentidao. Discarte o módulo, ou entao peca ao desenvolvedor debugar.

 

4) Use uma versao php 5.4.+ no seu servidor. Versaoes php 5.4.+ trabalham mais rápido.

 

5) Está usando apc ou xcache ? Qualquer loja com mais de 2.000 produtos deverá usar recursos cache que o servidor fornece.

Link to comment
Share on other sites

Normalmente, a partir do PrestaShop 1.5, todos os controllers utilizam o index.php, assim, se você tiver 200 pessoas na loja, terá no mínimo 200 processos do index.php.

 

Verifique como está o load do servidor (no WHM, opção "Daily process log" ou na opção "Process manager" - pelo SSH, rode o comando "top").

 

Vai ver sua loja está com muitos acessos (um problema bom) e vc precisa de um servidor melhor (VPS ou dedicado). 

Link to comment
Share on other sites

Paulo,

Desabilita o modulo de sugestão de busca para ver se melhora, deixa somente a busca quando cara clicar em buscar.

Tenta ativar o debug para ele mostrar se nao tem algum modulo bugado, ai tu consegue ver certinho qual modulo que tá bugado.

abraço,

Mauro

---

Obrigado pelo retorno Mauro!!

Sabe qual o nome do módulo? Procurei mas não encontrei..

Link to comment
Share on other sites

1) Desabilite o módulo de categorias na página index. Prestashop nativamente nao mais contém este módulo na primeira página e colocou a navegacao na barra superior em ajax, justamente porcausa da experiencia que tinha com versoes antighas. O quanto mais vc. enche a página index com categorias, informacoes e produtos, o quanto mais lerda será a página. Para a navegacao deverá somente usar a barra superior no index. Já nas categorias o bloco de navegacao nao deverá estar causando nenhum problema, pela arquitetura alterada.

Como vc. está usando o bloco de navegacao para outros fins, sugiro que compre um módulo de navegacao nos add-ons do prestashop para usar uma segunda barra com informacoes ou entao navegacao.

 

 

2) Limíte a quantidade de produtos na index para um número menor

Diminua o tamanho das suas imagens no slider que está com mais de 50 KB. Imagens com muito KB necessistam de tempo para carregar...

 

3) Ative o modo debug para ver se contém bugs de outros módulos nao nativos por ex. que tem implementado. Módulos nao idoneos ou mal codados podem estar causando a lentidao.

Se nao tiver erros ativando o modo debug, entao desative todos os módulos nao nativos e ative um por um para ver o qual está causando lentidao. Discarte o módulo, ou entao peca ao desenvolvedor debugar.

 

4) Use uma versao php 5.4.+ no seu servidor. Versaoes php 5.4.+ trabalham mais rápido.

 

5) Está usando apc ou xcache ? Qualquer loja com mais de 2.000 produtos deverá usar recursos cache que o servidor fornece.

---

Muito obrigado pelas informações..

Já estou providenciando as alterações e melhoras, já otimizei as imagens, diminui a quantidade de produtos na pagina inicial..

Não utilizo nenhum sistema de cache ainda, vou verificar com o provedor qual sistema tem disponível.

Retorno com o resultado..

Link to comment
Share on other sites

Normalmente, a partir do PrestaShop 1.5, todos os controllers utilizam o index.php, assim, se você tiver 200 pessoas na loja, terá no mínimo 200 processos do index.php.

 

Verifique como está o load do servidor (no WHM, opção "Daily process log" ou na opção "Process manager" - pelo SSH, rode o comando "top").

 

Vai ver sua loja está com muitos acessos (um problema bom) e vc precisa de um servidor melhor (VPS ou dedicado). 

---

Olá Daniel!!

vou solicitar essas informações ao provedor da hospedagem, acho que não tenho acesso para fazer essa verificação..

Acesso tenho certeza que não é, esse print q tirei foi quando não havia ninguém acessando a loja.

Obrigado a todos, vou levantar as informações e efetuar as alterações e retorno com o resultado!

Link to comment
Share on other sites

Boa tarde a todos!

Primeiramente gostaria de agradecer a todas as dicas.

Depois de muita briga, o provedor onde tenho minha loja hospedada analisou melhor o meu caso

e identificou que o site estava sofrendo um ataque(pelo q pesquisei na internet é comum de acontecer) gerando assim todos os processos e bloqueou os ips que estavam atacando.

Vou deixar aqui pois pode ser que aconteça com outra pessoa e acho que será útil.

Embora minha loja seja em PrestaShop, os ataques eram pra lojas desenvolvidas em WordPress. Segue abaixo o log.

72.51.35.14 - - [08/Sep/2014:10:04:35 -0300] "POST /wp-login.php HTTP/1.0" 406 226 "-" "-"
72.51.35.14 - - [08/Sep/2014:10:04:36 -0300] "POST /wp-login.php HTTP/1.0" 406 226 "-" "-"
72.51.35.14 - - [08/Sep/2014:10:04:36 -0300] "POST /wp-login.php HTTP/1.0" 406 226 "-" "-"
72.51.35.14 - - [08/Sep/2014:10:04:37 -0300] "POST /wp-login.php HTTP/1.0" 406 226 "-" "-"

Após bloquearem os ips, minha loja voltou a operar normalmente e mais rápida após colocar em prática as dicas passadas por vocês.

Sobre o ataque, encontrei muitos artigos na internet, segue um deles onde ensina a prevenir este tipo de ataque efetuando uma alteração no arquivo .htaccess.

 

http://www.joedog.org/2013/06/stop-wordpress-dictionary-attack/

 

Fica aí a dica caso alguém enfrente o mesmo problema e mais uma vez obrigado a todos que me ajudaram.

 

Abraço!!

Link to comment
Share on other sites

Não entendi muito bem a utilização dessa extensão do Google Chrome, mas vou dar uma estudada melhor em suas funcionalidades. Embora o artigo postado seja direcionado ao WP, será que daria certo no Prestashop?

 

O Prestashop por ser uma plataforma bem robusta e com uma infinidade de módulos acaba exigindo um pouco da CPU do servidor mesmo. No meu caso estou desabilitando tudo aquilo que não irei utilizar na minha loja, como por exemplo desabilitando módulos, países e estados que não utilizarei, etc. Quero deixá-lo o mais enxuto possível, deveria ter um tutorial ensinando a fazermos isso para utilizá-lo apenas no Brasil, eliminando coisas desnecessárias nessa poderosa plataforma.

 

Tenho uma dúvida Paulo, você disse estar usando a Hostgator, eu também possuo domínio com eles e gosto do serviço. Qual plano você está utilizando?

 

Desde já agradeço.

 

Link to comment
Share on other sites

Não entendi muito bem a utilização dessa extensão do Google Chrome, mas vou dar uma estudada melhor em suas funcionalidades. Embora o artigo postado seja direcionado ao WP, será que daria certo no Prestashop?

 

O Prestashop por ser uma plataforma bem robusta e com uma infinidade de módulos acaba exigindo um pouco da CPU do servidor mesmo. No meu caso estou desabilitando tudo aquilo que não irei utilizar na minha loja, como por exemplo desabilitando módulos, países e estados que não utilizarei, etc. Quero deixá-lo o mais enxuto possível, deveria ter um tutorial ensinando a fazermos isso para utilizá-lo apenas no Brasil, eliminando coisas desnecessárias nessa poderosa plataforma.

 

Tenho uma dúvida Paulo, você disse estar usando a Hostgator, eu também possuo domínio com eles e gosto do serviço. Qual plano você está utilizando?

 

Desde já agradeço.

 

 

---

Na verdade não seria um extensão do chrome, é apenas uma modificação no htaccess para bloquear esse tipo de ataque/acesso.

Pode solicitar também ao provedor, no meu caso a hostgator para bloquear o wp-login na hospedagem, já que nossa loja é em prestashop e não necessita desse caminho ou arquivo.

É estranho minha loja ser em prestashop e ter tido esse problema, enfim..foi resolvido.

Meu plano é Business, é muito bom o Plano, só deixou a desejar quando minha loja começou a consumir processos da cpu e bloquearam minha conta e informaram que minha loja precisava de um upgrade de plano, assinar um melhor ou servidor dedicado.

Depois de brigar muito com eles, verificaram que o problema se tratava desse ataque. De resto, a hostgator é um ótimo provedor.

Minha loja tb está bem enxuta, me preocupo muito em deixar somente o necessário.

Basta cuidar, fazer sempre backup antes das alterações e não terá problemas com sua loja.

 

Quanto ao plano da hostgator, é o Business..

 

Esses artigos são bem úteis para quem está começando..

 

http://www.prestashop.com/en/top-tips

 

http://www.prestashop.com/blog/en/10-best-tips-to-speed-up-your-prestashop-store-3/

Edited by paulormf (see edit history)
  • Like 1
Link to comment
Share on other sites

Eu tinha também esta possibilidade de muitos usuários em mente ao mesmo tempo. No entanto sinceramente esperava que com um plano business o seu servidor compartilhado deveria estar melhor compartilhado, ou seja poucos usuários compartilhando um servidor, em vez de inúmeros.

 

Ataques do net vc. deverá filtrar com firewalls. Normalmente o provedor tem instalado firewalls, ou entao denpendendo do pacote que usa tém a possibilidade de instalar vc. mesmo. Na internet existem algumas opcoes boas. Project honeypot  é uma opcao que posso lhe aconselhar. Outra dica seria vc., filtrar usuários (IP block). Nos addons existe um módulo de compra, mas também existem outros métodos. Nao aconselho vc. bloquear todos os países em qual nao vende através do ficheiro .htaccess.  Cada linha no .htaccess custa tempo, pois tem de ser lida. Melhor é usar um bloqueador de IP como o project honeypot através de script php e vc. adiciona este script no cabecalho do ficheiro config. inc.php do Prestashop.

 

O uso de honeypots explicado em detalhes.

 

Venho usando est técnica já fazem anos com muito sucesso. No entanto o mais importante é ter um servidor, se for compartilhado, balanceado com poucos usuários (dependendo do tamanho daos projetos no máxiomo 12 hosts em um servidor). De nada adianta um servidor cheio de hosts, pois nao vai diminuir a quantidade de usuários visitando o servidor ao mesmo tempo.

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...