Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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>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>>
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:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img138.imageshack.us/img138/9889/cpuiu.jpg&key=9b1108c83b1ccb83c243038e575ac104f935b54522851ee3f4846431d052d37b" alt="cpuiu.jpg" />
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.
>
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.
>
é possível que uma inserção no banco provoque tal queda?
Sim, é. Quer mostrar-nos o seu INSERT?