Перейти к содержимому


Фотография
* * * * * 1 Голосов

Настройка xCache и нюансы.

настройка xcache

Сообщений в теме: 32

#1 SpellCraft

SpellCraft

Отправлено 17 April 2017 - 09:48

Добрый день! Всем Привет.

 

Помогите советом и вариантами настройки XCache, пожалуйста! Последнее время сталкиваюсь с избыточной нагрузкой и долгой отдачей сайта, при последующем падении php-fpm (раз в сутки). Но при рестарте сервера в течении 1 - 2 часов сайт работает пулей и время до первого байта составляет от 0.120 мс до 0.150 мс, полная загрузка максимум 1.5 сек (и это стабильно после рестарта). Пробовал отключать xCache в конфиге Joomla, падения прекращаются также как и нагрузка, но скорость загрузки страниц в целом увеличивается до 2 - 4 секунд. Могу предоставить логи и мои настройки по запросу...

 

Если у кого-то есть какие-либо мысли буду рад их услышать. Заранее спасибо!

 

 

Конфигурация: 

SSD/12 (6 CPU / 12 ГБ RAM / 100 ГБ SSD)

Сообщение отредактировал SpellCraft: 17 April 2017 - 17:13

  • 0

#2 SpellCraft

SpellCraft

Отправлено 17 April 2017 - 17:11

Результат профилирования: Desktop 04.17.2017 - 19.10.32.04.png


Сообщение отредактировал SpellCraft: 17 April 2017 - 17:12

  • 0

#3 CB9TOIIIA

CB9TOIIIA

Отправлено 17 April 2017 - 19:40

Результат профилирования: attachicon.gifDesktop 04.17.2017 - 19.10.32.04.png

 

Попробуйте: https://github.com/J...0fd17d4e0abc313

 

Хуже не будет :) разница возможно будет.


  • 0

#4 SpellCraft

SpellCraft

Отправлено 18 April 2017 - 09:20

Спасибо, попробую! Если память не изменяет, то красным на удаление, а зеленое на добавление?! Только у меня $query = "SELECT a.*" на 453 строке, а не на 459... Я немного в замешательстве... Добавлю свой item.php

Desktop 04.18.2017 - 11.14.34.01.png Прикрепленный файл  item.php   24.37К   64 Количество загрузок:

 


Сообщение отредактировал SpellCraft: 18 April 2017 - 09:22

  • 0

#5 SpellCraft

SpellCraft

Отправлено 18 April 2017 - 09:50

Или по возможности, пожалуйста выложите свой item.php со всеми хаками. Заранее признателен!


  • 0

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 18 April 2017 - 09:51

На гитхабе, по сути просто замените функцию с гита которая.
  • 0

#7 SpellCraft

SpellCraft

Отправлено 18 April 2017 - 10:05

Эту - $query = "SELECT a.*" ?


  • 0

#8 SpellCraft

SpellCraft

Отправлено 18 April 2017 - 10:08

Лучше выложите пожалуйста свой итем с хаками, мне кажется с учетом моих правок я что-то мог исключить и где-то накосячил...


  • 0

#9 CB9TOIIIA

CB9TOIIIA

Отправлено 18 April 2017 - 10:14

Лучше выложите пожалуйста свой итем с хаками, мне кажется с учетом моих правок я что-то мог исключить и где-то накосячил...

 

У меня много там своего и хиты отключены и прочее :)

 

Поэтому просто замените функцию:

 

0_ac5dc_cf874d2e_orig.png
 
public function getByCategory($application_id, $category_id, $published = false, $user = null, $orderby = "", $offset = 0, $limit = 0, $ignore_order_priority = false) {
		// get database
		$db = $this->database;
		// get dates
		$date = $this->app->date->create();
		$now  = $db->Quote($date->toSQL());
		$null = $db->Quote($db->getNullDate());
		// get item ordering
		list($join, $order) = $this->_getItemOrder($orderby, $ignore_order_priority);
		$query = "SELECT a.id"
			." FROM ".$this->name." AS a"
			." LEFT JOIN ".ZOO_TABLE_CATEGORY_ITEM." AS b ON a.id = b.item_id"
			.($join ? $join : "")
			." WHERE a.application_id = ".(int) $application_id
            // zoo_hack_start
            // ." AND a.".$this->app->user->getDBAccessString($user)
            .($published == true ? " AND a.state = 1" : "")
            //." AND (a.publish_up = ".$null." OR a.publish_up <= ".$now.")"
            //." AND (a.publish_down = ".$null." OR a.publish_down >= ".$now.")": "")
            // zoo_hack_end
            ." AND b.category_id ".(is_array($category_id) ? " IN (".implode(",", $category_id).")" : " = ".(int) $category_id)
			." GROUP BY a.id"
			.($order ? " ORDER BY " . $order : "")
			.($limit ? " LIMIT ".(int) $offset.",".(int) $limit : "");
			$list = $this->app->database->queryAssocList($query);
			$itemOrig = array_reduce($list, function($acc, $item){
					$acc[] = $item['id'];
					return $acc;
			}, []);
			$list = JBModelItem::model()->getZooItemsByIds($itemOrig);
			$list = $this->app->jbarray->sortByArray($list, $itemOrig);
			return $list;
	}

  • 0

#10 SpellCraft

SpellCraft

Отправлено 18 April 2017 - 10:51

Я уже заменил функцию  :)  Но толку мало....


  • 0




Click to return to top of page in style!