Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DunkMask

Sistema consumido muita memoria da hospedagem

Recommended Posts

Olá, boa tarde.

primeiramente não sei se este é o lugar para tal, mas creio que possa ser algo envolvendo a minha programação que esteja causando tal problema.

 

Já realizei a verificação de todos os scripts que o site possui, todos com base no jquery. Uso o Lytebox e um banner random, não creio que seja eles que estejam causando este consumo acessivo, mas recentemente desenvolvi um site que funcionou perfeitamente por um més, mas agora ele começa a cair devido o consumo de memoria.

 

Não uso nada de muito complexo no sistema, como podem ver através do link www.cigarrateen.com.br, o sistema administrativo é o que mais usa plugins devido ao seu editor de texto e o gerenciador/upload de arquivos.

 

percebi que o problema aparece com mais frequência quando estão inserindo o conteúdo no site, é possível que uma inserção no banco provoque tal queda? Existem paginas como cadastro de fotos que o usuário escolhe a quantidade de fotos que vai inserir no banco, e através do plugin ele seleciona a foto e automaticamente o plugin da o endereço.

 

já usei o mesmo editor em um site como muito mais visitas mas nunca tive este problema, então venho aqui para tirar esta dúvida me atinge no momento.

 

Agradeço a todos que lerem e deixarem suas opiniões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, postarei aqui a duas paginas usadas com mais frequencia, e geralmente são 4 usuarios logados fazendo o mesmo trabalho.

 

Pagina de noticia.

<?php
require "checar.php";
require "permissao2.php";
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" media="all" charset="utf-8" />

</head>

<body>
<div id="page">
<div id="page-title"><a href="?page=home" title="Home">Home</a> » <strong>Cadastro de notícia</strong></div>
   <div id="page-text">

 	  	<div id="form-user">
       	<?php
			$data = ''.date("d/m/y").' às '.date("h:i").'';
           	if(isset($_GET['Salvar'])){
				$idUser = $_GET['p'];
				$xUser = mysql_fetch_object(mysql_query("SELECT * FROM ct_user WHERE idUser='$idUser'"));

				$titulo     = $_POST['titulo'];
				$autor     = $xUser->nome;
				$capa      = $_POST['capa'];
				$noticia   = $_POST['texto'];
				$categoria = $_POST['categoria'];
				$ativo     = $_POST['ativo'];

				$sqCad = mysql_query("INSERT INTO ct_news (idAtivo, idCategoria, titulo, data, autor, capa, noticia) VALUES ('$ativo', '$categoria', '$titulo', '$data', '$autor', '$capa', '$noticia')");

				if($sqCad){
					echo '<div id="form-status">Notícia cadastrada com sucesso!</div>';
				} else {
					echo '<div id="form-status" style="background-color:#C30;">Erro ao cadastrar a notícia.</div>';
				}
			}
		?>
     		<form action="?page=Cad.Noticia&Salvar=ok&p=<?php echo $_GET['p'];?>" method="post" name="postar">


			<input type="hidden" name="ativo" value="2" />
             	<span class="form-title"><strong>Catégoria:</strong></span>
	  	  	<span class="form-campo-select">
				<select name="categoria">
					<option value="">-- Escolha uma opção --</option>
           	        <?php
							$sqCat =  mysql_query("SELECT * FROM ct_categoria ORDER BY nome");
								while($xCat = mysql_fetch_object($sqCat)){
									echo '<option value="'.$xCat->idCategoria.'">'.$xCat->nome.'</option>';
								}
					?>
				</select>
      	    	</span>
           	<span style="display:block; clear:both;"></span>

       		<span class="form-title"><strong>Título:</strong></span>
			<span class="form-campo"><input name="titulo" type="text"/></span>
           	<span style="display:block; clear:both;"></span>

           	<span class="form-title"><strong>Capa:</strong></span>
			<span class="form-campo-capa"><input type="text" name="capa" value="Selecionar arquivo." id="capa"> - <a href="javascript:mcImageManager.open('postar','capa','','',{relative_urls : true});">[selecionar]</a>
			</span>
           	<span style="display:block; clear:both;"></span>

           	<span style="display:block; clear:both;"></span>

               <textarea id="tiny" type="text" name="texto" ></textarea>
           	<span style="display:block; clear:both;"></span>
           </form>	
           <span style="display:block; clear:both;"></span>
       </div>
   </div>
</div>
</body>
</html>

 

Pagina Cadastrar fotos

<?php
require "checar.php";
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" media="all" charset="utf-8" />

</head>

<body>
<div id="page">
<div id="page-title"><a href="?page=home" title="Home">Home</a> » <strong>Cadastro de fotos</strong></div>
   <div id="page-text">

 	  	<div id="form-user">

       	<?php

           	if(isset($_GET['Salvar'])){

				$capa      = $_POST['capa'];
				$album     = $_POST['album'];

				foreach($capa as $cod => $value){
					$sqCad = mysql_query("INSERT INTO ct_foto (idGaleria, foto) VALUES ('$album', '$capa[$cod]')");

					if($sqCad){
						echo '<div id="form-status">Foto cadastrada com sucesso!</div>';
					} else {
						echo '<div id="form-status" style="background-color:#C30;">Erro ao cadastrar a foto.</div>';
					}
				}
			}

		// RESPONSAVEL POR ESCOLHER O NUMERO DE REDES SOCIAIS QUE você DESEJA CADASTRAR 
			$num = '';
			if(!isset($_GET['num'])){

				echo '<center><form action="index.php">
					  <input type="hidden" name="page" value="Cad.Foto" />';
				echo '<span class="form-title-center">Cadastrar <input name="num" value="1" size="5" /> Fotos</span>';
				echo '<span class="form-button"><input type="submit" value="Okay" /></span></form></center>';
				die;
			}

		?>
          <span class="form-title-center"> Ao cadastrar as fotos, certifiquem-se de retirar o <strong>../</strong> dos endereços da foto.</span>
     		<form action="?page=Cad.Foto&Salvar=ok&num=<? echo $_GET['num']; ?>" method="post" name="postar">
			<span class="form-title">Seleciar album:</span>
			<span class="form-campo-select">
               	<select name="album">
					<option value="">-- Escolha uma opção --</option>
           	        <?php
							$sqAlbum =  mysql_query("SELECT * FROM ct_galeria ORDER BY idGaleria");
								while($x = mysql_fetch_object($sqAlbum)){
									echo '<option value="'.$x->idGaleria.'">['.$x->data.'] '.$x->nome.'</option>';
								}
					?>
				</select>
               </span>
           	<span style="display:block; clear:both;"></span>
           	<?php
				for($num = 1; $num <= $_GET['num']; $num++ ){ 
			?>
               <span class="form-title" style="text-align:right;">Foto <?php echo $num ?> »</span>
			<span class="form-campo-capa"><input type="text" name="capa[]" value="Selecionar arquivo." id="capa[<?php echo $num ?>]"> - <a href="javascript:mcImageManager.open('postar','capa[<?php echo $num ?>]','','',{relative_urls : true});">[selecionar]</a>
			</span>
           	<span style="display:block; clear:both;"></span>
           	<?php
				}
			?>
           	<span class="form-button"><input name="salvar" type="submit" value="Cadastrar foto" /></span>
           	<span style="display:block; clear:both;"></span>
           </form>	
           <span style="display:block; clear:both;"></span>
       </div>
   </div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por mais que seja sua programação o servidor deveria aguantar, uma simples inserção como a sua não deveria dar esse problema, acredito que possa ser uma sobrecarga no servidor MYSQL do seu provedor de hospedagem.

se o seu servidor tiver algumas funções liberadas teste este script para ver o Load do CPU e HD.

teste e digamos que em (Server Load) voce tera tal numero esse numero tem que ser menor que a quantidade de processadores que tem o servidor.

 

digamos que o servidor tenha 8 cores.

o seu load não pode oscilar o load em 8.00 tem que ser menos.

geralmente é dificil que seja memoria.

se tiver interesse contrate uma hospedagem ou revenda na Dinamohost.com.br, la eles trabalham seriamente para Webdesigner e Agencias.

 

 

<?
function uptime() {
 $ut = strtok(exec("cat /proc/uptime"), ".");
 $d = sprintf("%2d", ($ut/(3600*24)));
 $h = sprintf("%2d", (($ut%(3600*24))/3600));
 $m = sprintf("%2d", ($ut%(3600*24)%3600)/60);
 $s = sprintf("%2d", ($ut%(3600*24)%3600)%60 );

 print "Servidor ligado há: ".$d." dia(s), ".$h." hora(s), ".$m." minuto(s), ".$s." segundo(s)";
}
?>

<pre>
<b>Tempo Ligado (Uptime):</b>
<?php uptime(); ?>
<br><br>
<b>Informações do Sistema:</b>
<?php system("uname -a"); ?>
<br>
<b>Recursos do Servidor (Server Load):</b>
<?
$load = explode(" ", exec("cat /proc/loadavg"));
$uso = $load[2];
print("Uso: ".$uso."%");
?>	
<br>
<b>Uso de Disco:</b>
<?php system("df -h"); ?>
<br>
<b>Informações da CPU:</b>
<?php system("cat /proc/cpuinfo | grep \"model name\\|processor\""); ?>
</pre>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por mais que seja sua programação o servidor deveria aguantar, uma simples inserção como a sua não deveria dar esse problema, acredito que possa ser uma sobrecarga no servidor MYSQL do seu provedor de hospedagem.

se o seu servidor tiver algumas funções liberadas teste este script para ver o Load do CPU e HD.

teste e digamos que em (Server Load) voce tera tal numero esse numero tem que ser menor que a quantidade de processadores que tem o servidor.

 

digamos que o servidor tenha 8 cores.

o seu load não pode oscilar o load em 8.00 tem que ser menos.

geralmente é dificil que seja memoria.

se tiver interesse contrate uma hospedagem ou revenda na Dinamohost.com.br, la eles trabalham seriamente para Webdesigner e Agencias.

 

 

<?
function uptime() {
 $ut = strtok(exec("cat /proc/uptime"), ".");
 $d = sprintf("%2d", ($ut/(3600*24)));
 $h = sprintf("%2d", (($ut%(3600*24))/3600));
 $m = sprintf("%2d", ($ut%(3600*24)%3600)/60);
 $s = sprintf("%2d", ($ut%(3600*24)%3600)%60 );

 print "Servidor ligado há: ".$d." dia(s), ".$h." hora(s), ".$m." minuto(s), ".$s." segundo(s)";
}
?>

<pre>
<b>Tempo Ligado (Uptime):</b>
<?php uptime(); ?>
<br><br>
<b>Informações do Sistema:</b>
<?php system("uname -a"); ?>
<br>
<b>Recursos do Servidor (Server Load):</b>
<?
$load = explode(" ", exec("cat /proc/loadavg"));
$uso = $load[2];
print("Uso: ".$uso."%");
?>	
<br>
<b>Uso de Disco:</b>
<?php system("df -h"); ?>
<br>
<b>Informações da CPU:</b>
<?php system("cat /proc/cpuinfo | grep \"model name\\|processor\""); ?>
</pre>

 

O script não rodo na hospedagem, possuo uma revenda e tem varios sites la, e este é o unico que apresenta o prolema. Eu mudei o site temporariamente para uma outra empresa para ver como é que ele suporta, agora ao inves da memoria ele teve um pico de 92% da cpu da 1:00 da manhã até agora.

 

O problema da memoria derrubar o site acabou, também estou monitorando constantemente tais informações. veja:

cpuiu.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o servidor tem desabilitado essas funções.

Mas me diga uma coisa, o teu provedor de hospedagem eles te reclamarão do teu uso ?

pois o seu codigo de cadastro esta normal o que você pode fazer é fechar a conexão do mysql em cada consulta e insert, alem de otimizar as suas querys e consultas mysql, coloque melhores praticas de uso de mysql na internet tem bastante sobre isso..

verifique a quantidade de acesso, pois geralmente quando se trata de muito acesso da nisso mesmo, e não da pra reclamar muito quando se trata de revenda, eu já passei por isso tenho um portal no qual ele consumia muita memoria e processamento, o servidor me convidou para migrar esse portal para uma estrutura em cloud ou VPS, acabei migrando tudo para, para um servidor mais parrudo.

o portal tem uma media de 3000 a 5000 acessos por dia, isso compromete qualquer hospedagem compartilhada, que não tenha uma boa configuração da maquina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o servidor tem desabilitado essas funções.

Mas me diga uma coisa, o teu provedor de hospedagem eles te reclamarão do teu uso ?

pois o seu codigo de cadastro esta normal o que você pode fazer é fechar a conexão do mysql em cada consulta e insert, alem de otimizar as suas querys e consultas mysql, coloque melhores praticas de uso de mysql na internet tem bastante sobre isso..

verifique a quantidade de acesso, pois geralmente quando se trata de muito acesso da nisso mesmo, e não da pra reclamar muito quando se trata de revenda, eu já passei por isso tenho um portal no qual ele consumia muita memoria e processamento, o servidor me convidou para migrar esse portal para uma estrutura em cloud ou VPS, acabei migrando tudo para, para um servidor mais parrudo.

o portal tem uma media de 3000 a 5000 acessos por dia, isso compromete qualquer hospedagem compartilhada, que não tenha uma boa configuração da maquina.

 

A empresa não reclamou, eu que reclamei. pq depois de uma manutenção que eles fizeram que os problemas apareceram.

Me deram a sugestão de pegar um vps também, mas meu cliente nao vai querer investir muito mais no vps e o site tbm nao tem nem 200 visitas diarias.

 

Mas vou ver esta questão ai de fechar a conexão em cada consulta, e pesquisar mas sobre as otimizações sugeridas. Agradeço pela ajuda.

 

Agora é torcer para esta hospedagem aguentar o site por uns 30 dias enquanto eu refaço a programação toda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.