Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
  • 0
boreas

Web lenta

Question

Hola, no sabía qué título ponerle a este problema pero quiero explicar más o menos lo que me pasa.

 

Estoy usando la v6 de mi buen amigo y querido to-up que publicaron aquí en el foro. La instalé en una web pequeña, con menos de 100 usuarios y menos de 100 posts y funciona muy bien, el problema viene cuando la uso en un sitio con buen tráfico, más de 3k de usuarios y más de 30k posts.

 

Desde el posts.php he comentado ciertas cositas como destacados, recomendados, fotos, afiliados y un par más para que la home no se sobrecargue, de esta forma me carga bien pero hay una función (¿se llama así) en específico que jode tanto la web que me toca reiniciar el vps... ¿No te conté? mudé la web a un vps creyendo que así se iba a solucionar el problema. Bueno, vamos al grano.

 

Me refiero al siguiente código:
 

//MURO HOME
		//include(TS_CLASS."c.muro.php");
        //$tsMuro =& tsMuro::getInstance();
		//$smarty->assign("tsMuroHome",$tsMuro->getMuroHome());
		//$smarty->assign("tsType","home");

Que hace la llamada a la siguiente función:

 

//MURO HOME
    function getMuroHome(){
        global $tsUser, $tsCore;	
		$tipo = $tsCore->setSecure(intval($_GET['tipo']));
		$total = 3;
		//DESTACADOS
		if($tipo == 1){
			$ordenar = 'p.p_comments DESC, p.p_favoritos DESC, p.p_compa DESC, p.p_likes DESC, p.p_date DESC , f.favo_fecha DESC , l.like_fecha DESC, s.compa_fecha DESC';	
		}
		//POPULARES
		if($tipo == 2){
			$ordenar = 'p.p_likes DESC, l.like_fecha DESC';
		}		
		//PUBLICO
		if($tipo == 0 || $tipo == 3){
			$ordenar = 'p.p_date DESC';
		}		
		$query = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT p.*, u.user_name FROM u_muro AS p LEFT JOIN u_miembros AS u ON p.p_user_pub = u.user_id LEFT JOIN u_muro_favoritos AS f ON p.pub_id = f.shout_id LEFT JOIN u_muro_likes AS l ON p.pub_id = l.obj_id LEFT JOIN u_muro_compartir AS s ON p.pub_id = s.shout_id WHERE p.p_user = p.p_user_pub GROUP BY p.pub_id ORDER BY '.$ordenar.' LIMIT '.$total.'');
		while($row = db_exec('fetch_array', $query)){			
			//LO TENGO COMO MI FAVORITO
            if($row['p_favoritos'] > 0){
                $row['favorito'] = $this->getPubExtras($row['pub_id'], 'favorito', $row['p_favoritos']);
            }					
			//LO HE COMPARTIDO
            if($row['p_shared'] > 0){
                $row['compartir'] = $this->getPubExtras($row['pub_id'], 'compartir', $row['p_shared']);
            }						
            // CARGAR LIKES
            if($row['p_likes'] > 0){
                $row['likes'] = $this->getPubExtras($row['pub_id'], 'likes', $row['p_likes']);
            } else $row['likes'] = array('link' => 'Me gusta');
            // MENCIONES
			$row['p_body'] = $tsCore->parseBadWords($tsCore->parseBBCode($tsCore->setMenciones($row['p_body'])), true);
            // CARGAR ADJUNTOS
            if($row['p_type'] != 1){
                $queryDos = db_exec(array(__FILE__, __LINE__), 'query', 'SELECT * FROM u_muro_adjuntos WHERE pub_id = \''.$row['pub_id'].'\' LIMIT 1');
                $adj = db_exec('fetch_assoc', $queryDos);
                $data[] = array_merge($row,$adj); 
            } else $data[] = $row;
        }        
		return array('total' => count($data), 'data' => $data);
	}

Esa función por lo que me he dado cuenta es la de los shouts ya que si bien no soy experto ni muy buen programador (es más, no soy ni intento de programador) he "leído" un poco el código.

 

El problema viene cuando yo descomento el primer código del posts.php ya que la web se tilda tanto pero tanto que nunca carga y al final da un error 503, los procesos de mi vps aumentan tanto que parece que estoy alojando el mismísimo fácebook y no vuelve (la web) hasta que reinicio el vps. Lo mismo pasa con los destacados... A este paso cuando llegue a mas de 60k posts solo pondré los posts en la home, sin ningún otro modulo para que no se sobrecargue.

 

 

Si alguien tiene una idea de qué puede ser el problema agradecería su ayuda. Besitos, chao.

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Has verificado el log ? debuggeado la base de datos en busca de errores comunes ?

Ahora, _morozov dijo:

Has verificado el log ? debuggeado la base de datos en busca de errores comunes ?

Si tienes vps es mas facil debugear los archivos y ver que sucede

Share this post


Link to post
Share on other sites
  • 0
hace 14 minutos, _morozov dijo:

Has verificado el log ? debuggeado la base de datos en busca de errores comunes ?

Si tienes vps es mas facil debugear los archivos y ver que sucede

He estado buscando información sobre cómo hacer eso y "slow query" pero realmente no he encontrado nada y tampoco quiero joder mucho el vps.

Share this post


Link to post
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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×