Разработка сайтов на UMI.CMS
Знать UMI.CMS в совершенстве невозможно.
Даже сами разработчики знают о ней не все...

UMi

Ursa Minor

Здесь можно высказать свое "фи" автору сайта. Обращаю внимание - это не скорая компьютерная помощь, а место для высказываний. Я физически не имею возможности решать все задаваемые вопросы. А придет ли сюда кто-то еще - покажет будущее.

Главная сайта Список тем Добавить темуКонтакты

Медленная работа сайта на 2.8.5.0

# 0

Vladimir

17.10.2012 15:05

Пожаловался один из клиентов, что со временем сайт начал безбожно тормозить. Для гостей время генерации страницы достигает 8 сек.
Исследование показало, что причиной торможения является вывод гостевой корзины. В админке скопилось без малого 50 000 заказов, и при их просмотре ЮМИ вешалась. Самое неприятное, что 98% из них были безымянные неизвестного происхождения, скорее всего - косяк версии 2.8.5.0
Решение - удалить все ненужное

#!/usr/bin/php
<?php
define("CURRENT_WORKING_DIR", str_replace("\\", "/", $dirname = dirname(__FILE__)));



define("UMICMS_CLI_MODE", "1");

error_reporting(E_ALL);
ini_set("error_reporting",E_ALL);
ini_set("display_errors","on");

//Подключаем систему
// UMI.CMS licensing
$_SERVER['SERVER_ADDR'] = '127.0.0.1';
$_SERVER['HTTP_HOST'] = '*****.ru';

$_SERVER['DOCUMENT_ROOT'] = '/home/******/public_html';
define("ROOT",$_SERVER['DOCUMENT_ROOT']);
$_REQUEST['path'] = "/admin/";
chdir($_SERVER['DOCUMENT_ROOT'].'/');
ini_set('include_path', $_SERVER['DOCUMENT_ROOT'].'/');

include ROOT."/libs/config.php";

//Скрипт
echo "\nSTART\n";


$sel = new selector('objects');
$sel->types('object-type')->name('emarket', 'order');
$sel->where('name')->isNull(true);//выбираем заказы с пустыми именами
//$sel->where('name')->notequals('dummy');
$sel->limit(0, 1800);//без ограничения выборка не помещается в память
$sel->order('order_date')->desc();
$sel->where('domain_id')->equals(1);
$res = $sel->result();

$o = umiObjectsCollection::getInstance();
foreach($res as $item){
if(!$item->name) {
echo ".";
$o->delObject($item->id);
}
}

echo "\nOK\n";
?>


Ответить

# 1

Vladimir

17.10.2012 15:09

Конечно, скрипт придется зациклить. Увы, ограничения виртуального хостинга не дают достаточно памяти, приходится чистить внесколько проходов.
Писал больше для себя, чтобы не забыть


Ответить

# 2

Александр

22.01.2013 20:30

Спасибо за информацию!
Теперь будем знать, а то мне пришлось даже хостинг менять. Кстати, хороший хостинг оказался REG.ru - все летает, когда поставил - радости не было придела.


Ответить

# 3

Demik

15.01.2017 11:06

Спасибо за статью... у нас оказалось порядка 183к заказов, когда обнаружил суть проблемы и принялся искать что за нафиг... так что 50к - фигня :/


Ответить

Главная сайта Список тем Добавить темуКонтакты