Ir para conteúdo
Fórum Script Brasil
  • 0

Sobrecarga no servidor PHP


Fabio Brito

Pergunta

Bom dia pessoal,

meu nome é Fabio Brito e gostaria da ajuda de vocês quanto a um problema que estou enfrentando com uma aplicação hospedada na Locaweb.

Meu site é de uma imobiliária, portanto utiliza de PHP e MYSQL para fazer buscas de imóveis no site.

O problema é que a Locaweb esta ameaçando tirar meu site do ar pois está causando sobre carga no servidor compartilhado deles e alegam que o problema está em nosso código. Meu site tem em torno de 15Mil acessos mês então este não é o problema.

Abaixo segue o código PHP da página mais requisitada do site:

<? include("inc/config.php"); ?>
<?
    /* PAGINACAO */
  
    $_SESSION['regs_pp']    = 6; 
  
    !isset($_GET["pg"]) ? $pg=1 : $pg=$_GET["pg"];
    $comeca_em = ($pg-1)*$_SESSION['regs_pp'];    
    
    // paramentros para navegacao entre os resultados
    $param = '';
    if( isset($_GET['favoritos']) )                                     { $param.="favoritos=true&"; }
    if( isset($_GET['lancamentos']) && $_GET['lancamentos']=='true' )     { $param.="lancamentos=true&"; }
    if( isset($_GET['estagio']) )                                         { $param.="estagio=".$_GET['estagio']."&"; }
    if( isset($_GET['finalidade']) )                                     { $param.="finalidade=".$_GET['finalidade']."&"; }
    if( isset($_GET['tipo']) )                                             { $param.="tipo=".$_GET['tipo']."&"; }
    if( isset($_GET['busca_cidade']) )                                    { $param.="busca_cidade=".urlencode($_GET['busca_cidade'])."&"; }
    if( isset($_GET['dormitorio']))                                         { $param.="dormitorio=".$_GET['dormitorio']."&"; }
    if( isset($_GET['garagem']) )                                         { $param.="garagem=".$_GET['garagem']."&"; }
    if( isset($_GET['de1']) )                                            { $param.="de1=".$_GET['de1']."&"; }
    if( isset($_GET['de2']) )                                            { $param.="de2=".$_GET['de2']."&"; }
    if( isset($_GET['ate1']) )                                            { $param.="ate1=".$_GET['ate1']."&"; }
    if( isset($_GET['ate2']) )                                            { $param.="ate2=".$_GET['ate2']."&"; }
    if( isset($_GET['preço']) )                                            { $param.="preço=".$_GET['preço']."&"; }
    if( isset($_GET['preco2']) )                                        { $param.="preco2=".$_GET['preco2']."&"; }
    if( !empty($_GET['area']) )                                         { $param.="area=".$_GET['area']."&"; }
    if( !empty($_GET['o_field']) )                                         { $param.="o_field=".$_GET['o_field']."&"; }
    if( !empty($_GET['o_ad']) )                                         { $param.="o_ad=".$_GET['o_ad']."&"; }
    // o param de pagnacao dos bairros esta no loop do select


    /* 
      BUSCA
      ---------------------------------------------------------------------
    */        

    $sql_busca="";
    
    // PALAVRA-CHAVE        
    if ( !empty($_GET['codigo']) && is_numeric($_GET['codigo']) ) { 
        die("&lt;script>window.location='detalhes.php?codigo=".$_GET['codigo']."'</script>");
    }
    
    else if ( !empty($_GET['placa']) && is_numeric($_GET['placa']) ) { 
        die("&lt;script>window.location='detalhes.php?codigo=".$_GET['placa']."'</script>");
    }
    
    else
    {    
    
        // CLASSIFICACAO  
             if (!empty($_GET["finalidade"]) && $_GET["finalidade"]=='venda')            { $sql_busca .= "  AND INSTR(imo.STATUS,'VENDA')>0 "; }  
        else if (!empty($_GET["finalidade"]) && $_GET["finalidade"]=='locacao')            { $sql_busca .= " AND INSTR(imo.STATUS,'LOCAÇÃO')>0 "; }  
        //else if (!empty($_GET["finalidade"]) && $_GET["finalidade"]=='vl')            { $sql_busca .= " "; }  

        // ESTAGIO OBRA
        if(!empty($_GET['estagio'])) { $vfiltros[] = array('estagio',$_GET['estagio']); }
        if ( !empty($_GET['estagio']) && $_GET['estagio']==2 )      { $sql_busca.=" AND imo.ESTAGIO_OBRA='Lançamento' OR imo.ESTAGIO_OBRA='Revenda'";  }
        if ( !empty($_GET['estagio']) && $_GET['estagio']==4 )      { $sql_busca.=" AND imo.ESTAGIO_OBRA='Pronto' OR imo.ESTAGIO_OBRA='Revenda' OR imo.ESTAGIO_OBRA='Lançamento'"; }

        // TIPO DE IMOVEL
        if ( !empty($_GET['tipo']) ) {
            $sql_busca.=" AND imo.CODIGO_CT=".$_GET['tipo'];
            $vfiltros[] = array('tipo',$_GET['tipo']);
        }
        
        // CIDADE
        if ( !empty($_GET['busca_cidade']) ) {
            $sql_busca.=" AND imo.cidade='".urldecode($_GET['busca_cidade'])."' ";
            $vfiltros[] = array('busca_cidade',$_GET['busca_cidade']);
        }
        
        // AREA
        if ( !empty($_GET['area']) ) {
            $v_area = split('-',$_GET['area']);
            $sql_busca.=" AND (imo.AREA_PRIVATIVA>=".$v_area[0]." and  imo.AREA_PRIVATIVA<=".$v_area[1].") ";
            $vfiltros[] = array('area',$_GET['area']);
        }

        // preço
        if ( !empty($_GET['preço']) ) {
            $v_preco = split('-',$_GET['preço']);
            $sql_busca.=" AND (imo.VLR_VENDA>=".($v_preco[0]*1000)." and  imo.VLR_VENDA<=".($v_preco[1]*1000).") ";
            $vfiltros[] = array('preço',$_GET['preço']);
        }
        
        // preço
        if ( !empty($_GET['preco2']) ) {
            $v_preco = split('-',$_GET['preco2']);
            $sql_busca.=" AND (imo.VALOR_ALUGUEL>=".($v_preco[0])." and  imo.VALOR_ALUGUEL<=".($v_preco[1]).") ";
            $vfiltros[] = array('preco2',$_GET['preco2']);
        }
        
        
        // FAVORITOS
        if ( !empty($_GET['favoritos']) ) 
        {
          $sqlfav = "";
          if ( isset($_COOKIE['favoritos']) )     
          { 
              $cods=split(",",$_COOKIE['favoritos']);
              //print_r($cods);
              $sqlfav .=" AND (";
              for($i=count($cods)-1;$i>=0;$i--){
                  if(trim($cods[$i])!='') {
                      $sqlfav .= " imo.CODIGO=".$cods[$i]; 
                      if(count($cods)>0) { $sqlfav .= " OR "; }
                  }
              }
              $sqlfav = rtrim($sqlfav, "OR ");
              $sqlfav .=" )";
              //echo $sqlfav;
          }
          $sql_busca .= $sqlfav;
          if (str_replace(" ","",$sqlfav)!="AND()") $sql_busca .= $sqlfav; else $sql_busca = ' AND 1=2 ';
        }                        

        // BAIRROS SELECIONADOS
        if ( !empty($_GET['bairros']) ) { 
            $total = count($_GET['bairros']);
            $sql_busca .= " AND ("; 
                foreach ($_GET['bairros'] as $value) 
                {
                    $sql_busca .= " imo.BAIRRO IN ('". urldecode($value) ."') ";
                    $total--;
                    if ($total!=0) { $sql_busca .= " OR "; }
                    
                    //PAGINACAO
                    $param.="bairros[]=".urlencode($value)."&";
                    
                    //filtros
                    $vfiltros[] = array('bairros[]',$value);
        
                }    
            $sql_busca .= " ) "; 
        }
            
        // DORM
        if (!empty($_GET['dormitorio']) && $_GET['dormitorio']==1) { $sql_busca .= " AND imo.DORMITORIO=1"; }     
        if (!empty($_GET['dormitorio']) && $_GET['dormitorio']==2) { $sql_busca .= " AND imo.DORMITORIO=2"; }     
        if (!empty($_GET['dormitorio']) && $_GET['dormitorio']==3) { $sql_busca .= " AND imo.DORMITORIO=3"; }     
        if (!empty($_GET['dormitorio']) && $_GET['dormitorio']==4) { $sql_busca .= " AND imo.DORMITORIO>=4"; }     
        if (!empty($_GET['dormitorio'])) { 
            $vfiltros[] = array('dormitorio',$_GET['dormitorio']);
        }     

        // GARAGEM            
        if (!empty($_GET['garagem']) && $_GET['garagem']==1) { $sql_busca .= " AND imo.QUANTITADE_GAR>=1"; }     
        if (!empty($_GET['garagem']) && $_GET['garagem']==2) { $sql_busca .= " AND imo.QUANTITADE_GAR>=2"; }     
        if (!empty($_GET['garagem']) && $_GET['garagem']==3) { $sql_busca .= " AND imo.QUANTITADE_GAR>=3"; }     
        if (!empty($_GET['garagem']) && $_GET['garagem']==4) { $sql_busca .= " AND imo.QUANTITADE_GAR>=4"; } 
        if (!empty($_GET['garagem'])) { 
            $vfiltros[] = array('garagem',$_GET['garagem']);
        } 

        // FAIXA DE PREÇO SELECIONADA        
        if( !empty($_GET['finalidade']) && $_GET['finalidade']=='locacao' ) {
            if (!empty($_GET['de2'])) { $sql_busca .= " AND imo.VALOR_ALUGUEL>=".$_GET['de2']." "; }     
            if (!empty($_GET['ate2'])) { $sql_busca .= " AND imo.VALOR_ALUGUEL<=".$_GET['ate2']." ";  }     
        }else{
            if (!empty($_GET['de1'])) { $sql_busca .= " AND imo.VLR_VENDA>=".$_GET['de1']." "; }     
            if (!empty($_GET['ate1'])) { $sql_busca .= " AND imo.VLR_VENDA<=".$_GET['ate1']." ";  }     
        }

    }
    /* 
      END BUSCA
      ---------------------------------------------------------------------
    */        
  

  
    /* 
      ORDENAR OS RESULTADOS
      ---------------------------------------------------------------------
    */
    if(isset($_GET["ordem"])) { 
        $_SESSION["ordem"]==$_GET["ordem"] ? $_SESSION["ordem"] = $_SESSION["ordem"] : $_SESSION["ordem"] = $_GET["ordem"]; 
    } elseif(!isset($_SESSION["ordem"])) { 
        $_SESSION["ordem"] = "VLR_VENDA DESC, VALOR_ALUGUEL DESC"; 
    }
  
    /* 
      ---------------------------------------------------------------------
    */

    $sql = "SELECT DISTINCT 
                imo.PLACA, imo.CODIGO, imo.CODIGO_CT, cat.CATEGORIA, cat.GRUPO, imo.STATUS, imo.BAIRRO, imo.CIDADE,
                imo.DORMITORIO AS DORM, imo.ESTAGIO_OBRA,
                imo.SUITE AS SUITE, 
                imo.QUANTITADE_GAR AS VAGA, 
                imo.LANCAMENTO, 
                imo.AREA_PRIVATIVA AS AREA,  
                imo.AREA_TOTAL,  
                imo.VLR_VENDA,
                imo.VALOR_ALUGUEL,
                imo.EMPREENDIMENTO
            FROM CADIMO imo  
                LEFT JOIN CADCAT cat ON cat.CODIGO=imo.CODIGO_CT 
                LEFT JOIN CADCLI cli ON cli.CODIGO_C=imo.CODIGO_C
            WHERE    
                imo.VER_WEB='Sim'
                AND (imo.STATUS='VENDA' OR imo.STATUS='LOCAÇÃO')
                $sql_busca
            ORDER BY ".$_SESSION['ordem']."
            ";
    
    //echo $sql;

    $sql_limit = " LIMIT ".$comeca_em.",".$_SESSION['regs_pp'];
    $rst        = mysql_query($sql) or die(mysql_error());
    $total_reg = mysql_num_rows($rst);


    /* 
      TITULO NAVEGADOR
      ---------------------------------------------------------------------
    */    
    
    $tit_browser  = " ";
    $tit_h="";

         if (!empty($_GET["finalidade"]) && $_GET["finalidade"]=='locacao')        { $tit_browser .= 'Imóveis para alugar ';}  
    else if (!empty($_GET["finalidade"]) && $_GET["finalidade"]=='venda')        { $tit_browser .= 'Imóveis à venda '; }  
    else if (!empty($_GET["favoritos"]) )                                        { $tit_browser .= 'Imóveis Favoritos '; }  
    else if ( !empty($_GET['estagio']) && $_GET['estagio']==1 )                  { $tit_browser .=" Entrega Até 1 Ano "; }
    else if ( !empty($_GET['estagio']) && $_GET['estagio']==2 )                  { $tit_browser .=" Lançamentos"; }
    else if ( !empty($_GET['estagio']) && $_GET['estagio']==3 )                  { $tit_browser .=" Pré-Lançamentos"; }
    else if ( !empty($_GET['estagio']) && $_GET['estagio']==4 )                  { $tit_browser .=" Prontos / Usados"; }
    else                                                                         { $tit_browser .= 'Imóveis '; }

    if (!empty($_GET["tipo"])) 
    {
        $sqlc = mysql_query("SELECT CATEGORIA FROM CADCAT WHERE CODIGO=".$_GET["tipo"]);
        if(mysql_num_rows($sqlc)>0) 
        { 
            $st = mysql_fetch_array($sqlc);
            $tit_browser .=' '.Maiusculo($st["CATEGORIA"]); 
        }
    }
    if (!empty($_GET["busca_cidade"])) 
    {
            $tit_browser .=' em '.urldecode(Maiusculo($_GET["busca_cidade"])); 
    }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <? include("inc/layout/meta.php"); ?>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="description" content="<?= $tit_browser; ?> - <?= CFG_TITLE ?>" />
    <meta name="keywords" content="imobiliaria porto alegre, imoveis porto alegre, fael imoveis" />      
    <meta name="classification" content="imoveis , imobiliaria">  
    <title><?= $tit_browser; ?> - <?= CFG_TITLE; ?></title>
    <link href="inc/css/styles.css" rel="stylesheet" type="text/css" />
    &lt;script type="text/javascript" src="inc/js/jquery.js"></script>
    &lt;script type="text/javascript" src="inc/js/jquery.ui.js"></script>
    &lt;script type="text/javascript" src="inc/js/jquery.cycle.js"></script>
    &lt;script type="text/javascript" src="inc/js/jquery.tooltip.js"></script>
    &lt;script type="text/javascript" src="inc/js/scripts.js"></script>
    &lt;script type="text/javascript" src="inc/js/validaform.js"></script>    
</head>

<body>

<div id="container">
  
  <? include("inc/layout/header.php"); ?>
  
  <? include("inc/layout/busca.php"); ?>
  
  <? include("inc/layout/animacao.php"); ?>
  
    
  
  <div id="mainContent">
    
    <div id="leftContent">
      <? include("inc/layout/filtro.php"); ?>
      <? include("inc/layout/servicos.php"); ?>
    </div><!-- end #leftContent -->
    
    <div id="rightContent">
      
      <h1><?php echo $tit_browser; ?></h1>
      
      <div class="paginacao">
        <!--<p class="left">Total de imóveis encontrados: <strong><?= $total_reg; ?></strong></p>-->
        <? if($total_reg>0) { ?>
            <select onchange="window.location='<?=current_page()?>?<?=$param?>ordem='+this.value">
            <option value="">Ordenar por:</option>
                
                <optgroup label="Preço">
                <? if ($_GET['finalidade']=='locacao') { ?>
                <option value="VALOR_ALUGUEL ASC" <?= $_SESSION["ordem"]=="VALOR_ALUGUEL ASC" ? 'selected="selected"' : '' ?> >Menor Preço</option>
                <option value="VALOR_ALUGUEL DESC" <?= $_SESSION["ordem"]=="VALOR_ALUGUEL DESC" ? 'selected="selected"' : ''  ?>>Maior Preço</option>
                <? } else { ?>
                <option value="VLR_VENDA ASC" <?= $_SESSION["ordem"]=="VLR_VENDA ASC" ? 'selected="selected"' : '' ?> >Menor Preço</option>
                <option value="VLR_VENDA DESC" <?= $_SESSION["ordem"]=="VLR_VENDA DESC" ? 'selected="selected"' : ''  ?>>Maior Preço</option>
                <? } ?>
                </optgroup>
                
                <optgroup label="Área">    
                <option value="imo.AREA_TOTAL ASC" <?= $_SESSION["ordem"]=="imo.AREA_TOTAL ASC" ? 'selected="selected"' : ''  ?>>Menor Área</option>
                <option value="imo.AREA_TOTAL DESC" <?= $_SESSION["ordem"]=="imo.AREA_TOTAL DESC" ? 'selected="selected"' : ''  ?>>Maior Área</option>
                </optgroup>
                
                <optgroup label="Dormitórios">    
                <option value="imo.DORMITORIO ASC" <?= $_SESSION["ordem"]=="imo.DORMITORIO ASC" ? 'selected="selected"' : ''  ?>>Menos Dormitórios</option>
                <option value="imo.DORMITORIO DESC" <?= $_SESSION["ordem"]=="imo.DORMITORIO DESC" ? 'selected="selected"' : ''  ?>>Mais Dormitórios</option>
                </optgroup>
            </select>
        <? } ?>     
      </div><!-- end .paginacao -->
      
      <div class="imoveis">
      <?
      if($total_reg>0) {
          $i=0;
          $rs = mysql_query($sql." ".$sql_limit) or die(mysql_error());        
          while($imovel=mysql_fetch_array($rs)) {
              $i++; $quebra =  ($i%2==0) ? ' quebra' : '';
              include("inc/layout/box.php");
          }
      }else if( !empty($_GET["favoritos"]) && $total_reg==0 ){ 
          echo "<br />Você não possui imóveis salvos como favorito. <br />"; 
      }else{ 
          echo "<br />Não existem imóveis para o filtro selecionado. Refaça seus filtros e tente novamente.<br />"; 
      }      
      ?>
      </div><!-- end .imoveis -->
      
      <? if($total_reg>6) { ?>
      <div class="paginacao paginacao-bottom">
        <!--<p class="left">Total de imóveis encontrados: <strong><?= $total_reg; ?></strong></p>-->
        <p class="right"><?= escreve_paginacao($param,$pg,$_SESSION['regs_pp'],$total_reg); ?></p>
      </div><!-- end .paginacao -->
      <? } ?>
      
    </div><!-- end #rightContent -->
    
  </div><!-- end #mainContent -->
    
</div><!-- end #container -->

<? include("inc/layout/footer.php"); ?>
</body>
</html>

Se alguém puder me ajudar ficarei muito agradecido.

Obrigado a todos.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Tem que ver nos logs, qual página está dando esta sobre carga no servidor....

Ai que esta o problema nos logs aparece isso:

Every 2.0s: ps u -u fael2                                                                                                             Tue Jan  3 11:14:24 2012

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
fael2    20019  0.0  0.0  85244  1608 ?        S    11:13   0:00 sshd: fael2@pts/1
fael2    20020  0.0  0.0  66292  1764 pts/1    Ss   11:13   0:00 -bash
fael2    20281  0.4  0.0 246712 15988 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20294  0.0  0.0  63544  1148 pts/1    S+   11:14   0:00 watch ps u -u fael2
fael2    20305  0.9  0.0 246984 16156 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20325  0.8  0.0 246984 16156 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20328  1.8  0.1 254968 24920 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20336  1.6  0.0 247396 17120 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20340  2.3  0.0 246984 16156 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20348  9.0  0.0 246984 16152 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20351  0.0  0.0 246984 16260 ?        S    11:14   0:00 /usr/bin/php-cgi
fael2    20353  0.0  0.0  65592  1024 pts/1    R+   11:14   0:00 ps u -u fael2

Só " /usr/bin/php-cgi " não diz a página.

Valeu!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...