Форум русской поддержки Joomla!® CMS
04.12.2016, 06:01:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Где же найти узкое место

 (Прочитано 596 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« : 04.04.2016, 18:18:15 »

Блог категории, выводит по 20 материалов из одной категории.

0.003712 секунд
Код
$mtime = microtime();
$mtime = explode(" ",$mtime);
$tstart = $mtime[1] + $mtime[0];
 
$mysqli = new mysqli("localhost", "****", "****", "****");
$mysqli->query("a.id, a.title, a.alias, a.introtext, a.fulltext, a.checked_out, a.checked_out_time, a.catid, a.created, a.created_by, a.created_by_alias,
 CASE WHEN a.modified = '0000-00-00 00:00:00' THEN a.created ELSE a.modified END as modified, a.modified_by, uam.name as modified_by_name,
 CASE WHEN a.publish_up = '0000-00-00 00:00:00' THEN a.created ELSE a.publish_up END as publish_up,a.publish_down, a.images, a.urls, a.attribs, a.metadata, a.metakey, a.metadesc, a.access, a.hits, a.xreference, a.featured, a.language,  LENGTH(a.fulltext) AS readmore,
 CASE WHEN badcats.id is not null THEN 0 ELSE a.state END AS state,c.title AS category_title, c.path AS category_route, c.access AS category_access, c.alias AS category_alias,
 CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name END AS author,ua.email AS author_email,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count,c.published,
 CASE WHEN badcats.id is null THEN c.published ELSE 0 END AS parents_published
 
 FROM j_content AS a
 
 LEFT JOIN j_content_frontpage AS fp
 ON fp.content_id = a.id
 
 LEFT JOIN j_categories AS c
 ON c.id = a.catid
 
 LEFT JOIN j_users AS ua
 ON ua.id = a.created_by
 
 LEFT JOIN j_users AS uam
 ON uam.id = a.modified_by
 
 LEFT JOIN j_categories as parent
 ON parent.id = c.parent_id
 
 LEFT JOIN j_content_rating AS v
 ON a.id = v.content_id
 
 LEFT
 OUTER JOIN (SELECT cat.id as id
 FROM j_categories AS cat JOIN j_categories AS parent
 ON cat.lft BETWEEN parent.lft
 AND parent.rgt
 WHERE parent.extension = 'com_content'
 AND parent.published != 1
 GROUP BY cat.id ) AS badcats
 ON badcats.id = c.id
 
 WHERE
 CASE WHEN badcats.id is null THEN a.state ELSE 0 END IN (0,1,2)
 AND a.catid = 209
 
 ORDER BY  c.path,   a.created  DESC ,  a.created  
 LIMIT 100, 120"
);
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $tstart);//Вычисляем разницу
printf ("%f секунд\n", $totaltime);
 



7.240856 секунд
Код
$mtime = microtime();
$mtime = explode(" ",$mtime);
$tstart = $mtime[1] + $mtime[0];
 
$db = JFactory::getDBO();
$qt = $db->getQuery(true)->select("a.id, a.title, a.alias, a.introtext, a.fulltext, a.checked_out, a.checked_out_time, a.catid, a.created, a.created_by, a.created_by_alias,
 CASE WHEN a.modified = '0000-00-00 00:00:00' THEN a.created ELSE a.modified END as modified, a.modified_by, uam.name as modified_by_name,
 CASE WHEN a.publish_up = '0000-00-00 00:00:00' THEN a.created ELSE a.publish_up END as publish_up,a.publish_down, a.images, a.urls, a.attribs, a.metadata, a.metakey, a.metadesc, a.access, a.hits, a.xreference, a.featured, a.language,  LENGTH(a.fulltext) AS readmore,
 CASE WHEN badcats.id is not null THEN 0 ELSE a.state END AS state,c.title AS category_title, c.path AS category_route, c.access AS category_access, c.alias AS category_alias,
 CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name END AS author,ua.email AS author_email,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count,c.published,
 CASE WHEN badcats.id is null THEN c.published ELSE 0 END AS parents_published
 
 FROM j_content AS a
 
 LEFT JOIN j_content_frontpage AS fp
 ON fp.content_id = a.id
 
 LEFT JOIN j_categories AS c
 ON c.id = a.catid
 
 LEFT JOIN j_users AS ua
 ON ua.id = a.created_by
 
 LEFT JOIN j_users AS uam
 ON uam.id = a.modified_by
 
 LEFT JOIN j_categories as parent
 ON parent.id = c.parent_id
 
 LEFT JOIN j_content_rating AS v
 ON a.id = v.content_id
 
 LEFT
 OUTER JOIN (SELECT cat.id as id
 FROM j_categories AS cat JOIN j_categories AS parent
 ON cat.lft BETWEEN parent.lft
 AND parent.rgt
 WHERE parent.extension = 'com_content'
 AND parent.published != 1
 GROUP BY cat.id ) AS badcats
 ON badcats.id = c.id
 
 WHERE
 CASE WHEN badcats.id is null THEN a.state ELSE 0 END IN (0,1,2)
 AND a.catid = 209
 
 ORDER BY  c.path,   a.created  DESC ,  a.created  
 LIMIT 100, 120"
);
$db->setQuery($qt);
$db->execute();
 
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $tstart);
printf ("%f секунд\n", $totaltime);
 

В админке выставлено MySqli
запрос взят из отладки.
Подскажите куда смотреть ? Плагины тут не используются... Не знаю куда копать.
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #1 : 04.04.2016, 20:47:38 »

А если запустить запрос в PMA и посмотреть его как-это по-русски.. explain короче
Записан
Arkadiy
Группа развития
*****

Репутация: +431/-0
Offline Offline

Пол: Мужской
Сообщений: 5313


Крепитесь, други.


« Ответ #2 : 04.04.2016, 21:16:37 »

Вижу подзапрос в конце запроса, он может долго исполняться, точнее исполняться огромное количество раз.
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #3 : 04.04.2016, 21:53:21 »

Ну дак это ядро J! Это блин фиг поменяешь...
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #4 : 04.04.2016, 21:59:02 »

По сути?
Ядро какой версии?
Запрос на фронте или в бэкэнде?
Что эксплейн говорит?

При желании можно и ядро поменять
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #5 : 04.04.2016, 22:11:09 »

J! 3.5.0 - сразу скажу, что на чистой J! абсолютно точно также долго...
Я же писал что на фронте:
Цитировать
Блог категории, выводит по 20 материалов из одной категории.
Что за експлейн ? Если в дебаге, внизу, то моего разрешения экрана не хватает...
Код:
Время запроса: 6293.80 ms После последнего запроса: 1.57 ms Память запроса: 0.219 MB Память до запроса: 11.491 MB Выбрано строк: 20

Код:
План SQL-запросов (Explain)
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 PRIMARY a NULL ref idx_catid idx_catid 4 const 28435 100.00 Using temporary; Используется filesort
1 PRIMARY fp NULL eq_ref PRIMARY PRIMARY 4 ****.a.id 1 100.00 Using where; Using index
1 PRIMARY c NULL const PRIMARY,id PRIMARY 4 const 1 100.00 NULL
1 PRIMARY ua NULL eq_ref PRIMARY PRIMARY 4 ****.a.created_by 1 100.00 Using where
1 PRIMARY uam NULL eq_ref PRIMARY PRIMARY 4 ****.a.modified_by 1 100.00 Using where
1 PRIMARY parent NULL eq_ref PRIMARY,id PRIMARY 4 ****.c.parent_id 1 100.00 Using where
1 PRIMARY v NULL eq_ref PRIMARY PRIMARY 4 ****.a.id 1 100.00 Using where
1 PRIMARY <derived2> NULL ref <auto_key0> <auto_key0> 4 ****.c.id 5 100.00 Using where; Using index
2 DERIVED parent NULL range cat_idx,idx_left_right cat_idx 203 NULL 8 100.00 Using index condition; Using temporary; Используется filesort
2 DERIVED cat NULL index PRIMARY,id,cat_idx,idx_access,idx_checkout,idx_path,idx_left_right,idx_language,idx_alias idx_left_right 8 NULL 64 11.11 Using where; Using index; Using join buffer (Block Nested Loop)

Код:
Профилирование SQL-запросов
Status Duration
starting 0.01 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
starting 0.00 ms
checking query cache for query 0.29 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
checking permissions 0.00 ms
Opening tables 0.04 ms
init 0.13 ms
System lock 0.01 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
System lock 0.04 ms
optimizing 0.01 ms
optimizing 0.01 ms
statistics 0.10 ms
preparing 0.02 ms
Creating tmp table 0.01 ms
Sorting result 0.02 ms
statistics 0.10 ms
preparing 0.02 ms
Creating tmp table 0.06 ms
Sorting result 0.01 ms
executing 0.01 ms
Sending data 0.16 ms
executing 0.00 ms
Sending data 0.14 ms
Creating sort index 6212.66 ms
Creating sort index 47.64 ms
Waiting for query cache lock 0.01 ms
Waiting on query cache mutex 0.00 ms
Creating sort index 0.08 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
Creating sort index 0.06 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
Creating sort index 0.05 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
Creating sort index 0.06 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
Creating sort index 0.05 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
Creating sort index 0.05 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
Creating sort index 0.07 ms
end 0.00 ms
query end 0.01 ms
removing tmp table 31.60 ms
query end 0.02 ms
removing tmp table 0.01 ms
query end 0.00 ms
closing tables 0.01 ms
removing tmp table 0.01 ms
closing tables 0.03 ms
freeing items 0.05 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
freeing items 0.03 ms
Waiting for query cache lock 0.00 ms
Waiting on query cache mutex 0.00 ms
freeing items 0.00 ms
storing result in query cache 0.02 ms
logging slow query 0.00 ms
logging slow query 0.22 ms
cleaning up 0.03 ms
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #6 : 04.04.2016, 22:13:00 »

В целом нативный метод PHP исполняется быстрее, и это понятно, но такой большой разницы не наблюдаю.
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #7 : 04.04.2016, 22:14:26 »

Цитировать
Creating sort index   6212.66 ms
Надо индекс добавить..

Так не скажу сразу по какому столбцу.
А вообще - версия мускуля какая?
Может он не создал те индексы, что прописаны?
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #8 : 04.04.2016, 22:15:14 »

Табличка content ~ 1.2Gb ! В категории порядка 30к материалов.
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #9 : 04.04.2016, 22:16:00 »

Ну вот, уже понятнее.
Коммент выше актуален
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #10 : 04.04.2016, 22:17:08 »

voland, насколько я понял, Wertos делает тест на одном и том же сайте с одним и тем же запросом (иначе не было бы смысла) - стартовые условия одинаковые.
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #11 : 04.04.2016, 22:18:16 »

Надо индекс добавить..

Так не скажу сразу по какому столбцу.
А вообще - версия мускуля какая?
Может он не создал те индексы, что прописаны?

Код:
Сервер: local (Localhost via UNIX socket)
Тип сервера: Percona Server
Версия сервера: 5.7.11-4-log - Percona Server (GPL), Release 4, Revision 5c940e1
Версия протокола: 10
Пользователь: root@localhost
Кодировка сервера: UTF-8 Unicode (utf8)

Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #12 : 04.04.2016, 22:29:04 »

Это вообще что?
ВДСка?

Попробуйте с размером кэша поиграться, увеличить его.
Похоже, что мускуль скидывает на винт временный результат
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #13 : 04.04.2016, 22:30:50 »

Это вообще что?
ВДСка?

Попробуйте с размером кэша поиграться, увеличить его.
Похоже, что мускуль скидывает на винт временный результат
Можно чуть подробнее ? У меня конфиг такой.
Код:
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 200
connect_timeout = 120
skip-external-locking
bind-address        = 127.0.0.1
max_allowed_packet  = 32M
thread_stack        = 512K
tmp_table_size      = 1024M
max_heap_table_size = 1024M
#myisam-recover     = BACKUP
query_cache_type    = 1
query_cache_limit   = 128M
query_cache_size    = 256M
max_binlog_size     = 16M
symbolic-links      = 0
slow_query_log      = 1
long_query_time     = 3
lc-messages         = ru_RU
language            = russian

query_cache_min_res_unit = 128

join_buffer_size = 16M
sort_buffer_size = 4M
key_buffer_size     = 16M
sort_buffer_size    = 8M
read_rnd_buffer_size = 4M

sql-mode="ALLOW_INVALID_DATES"

innodb_strict_mode = ON
innodb_buffer_pool_size = 2G
innodb_thread_concurrency = 8
#transaction-isolation = READ-COMITTED
innodb_flush_method = O_DIRECT
innodb_log_file_size = 1024M
innodb_log_buffer_size = 1024M
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_instances = 6
thread_cache_size = 16
innodb_open_files = 4096
#innodb_file_per_table = 1
innodb_data_file_path=ibdata1:1100M:autoextend:max:3G
innodb_read_io_threads = 64
innodb_write_io_threads = 64
innodb_io_capacity = 5000

innodb_sort_buffer_size = 8M

innodb_file_format = Barracuda
innodb_file_format_max = Barracuda

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #14 : 04.04.2016, 22:34:58 »

Код:
max_allowed_packet  = 32M
thread_stack        = 512K
tmp_table_size      = 1024M
max_heap_table_size = 1024M
query_cache_limit   = 128M
query_cache_size    = 256M
join_buffer_size = 16M
sort_buffer_size = 4M
key_buffer_size     = 16M
sort_buffer_size    = 8M
read_rnd_buffer_size = 4M
thread_cache_size = 16
innodb_sort_buffer_size = 8M
Не знаю, что-то из этого.
Я ж даже не знаю кодровки таблиц
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #15 : 04.04.2016, 22:35:52 »

ЗЫ. В запросе в PMA уберите LIMIT и посмотрите объем переданных данных
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #16 : 04.04.2016, 22:36:28 »

Все такие
Код:
InnoDB utf8mb4_unicode_ci
и база тоже
Код:
502,490 InnoDB utf8mb4_unicode_ci 1.4 ГиБ
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #17 : 04.04.2016, 22:40:13 »

ЗЫ. В запросе в PMA уберите LIMIT и посмотрите объем переданных данных
А PMA сам добавляет лимит ! И галочки нет "Показать всё"
НО пишет вот что
Код:
Данное выделение не содержит уникального столбца. Изменение сетки, выставление галочки, редактирование, копирование и удаление невозможно.

ADD
Код:
Отображение строк 0 - 499 (27888 всего, Запрос занял 1.6342 сек.)
Вот 500 строк выбрал
« Последнее редактирование: 04.04.2016, 22:43:38 от Wertos » Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #18 : 04.04.2016, 22:45:43 »

Ну сделать лимит 100500
И не про время спросил, а про объем данных.

ЗЗЫ. на 3.4 всё летало?
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #19 : 04.04.2016, 22:46:56 »

ЗЗЫ. на 3.4 всё летало?
Если да, и если оперативка позволяет - я бы на всё увеличил вдвое.
Так как новая кодировка вдвое более жирная
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #20 : 04.04.2016, 22:50:15 »

Ну сделать лимит 100500
И не про время спросил, а про объем данных.

ЗЗЫ. на 3.4 всё летало?
На 3.4 уже не помню...
А объём где смотреть ?
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #21 : 04.04.2016, 22:59:52 »

Хм. Хороший вопрос.
А если  сделать экспорт, посмотреть его размер и кодировку в нем?
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #22 : 04.04.2016, 23:05:40 »

Хм. Хороший вопрос.
А если  сделать экспорт, посмотреть его размер и кодировку в нем?
Дак этот экспорт будет дооолго скачиваться... ибо табличка больше гига !
Но по дампу БД скажу, что content в utf8mb4_unicode_ci
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #23 : 04.04.2016, 23:16:31 »

Экспорт в UTF-8, размер около 800мб
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #24 : 04.04.2016, 23:16:58 »

Ну то есть большая часть всей базы приходится на табличку контент?
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #25 : 04.04.2016, 23:17:35 »

Экспорт в UTF-8, размер около 800мб
Ясно
Если да, и если оперативка позволяет - я бы на всё увеличил вдвое.
Так как новая кодировка вдвое более жирная
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #26 : 04.04.2016, 23:26:30 »

Не помогает увеличение, но это возможно из за того что если и увеличивать, то надо знать что...
Оперативки 12Gb
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #27 : 04.04.2016, 23:48:16 »

1-й скрипт отрабатывает 0.003712 сек.
2-й скрипт отрабатывает 7.240856 сек.
В админке выставлено MySqli.
Это реально происходит? Что-то не верится.
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #28 : 04.04.2016, 23:54:53 »

Я же сказал.
Всё, что меряется в мб или гб вдвое
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #29 : 04.04.2016, 23:57:34 »

1-й скрипт отрабатывает 0.003712 сек.
2-й скрипт отрабатывает 7.240856 сек.
В админке выставлено MySqli.
Это реально происходит? Что-то не верится.
Ещё прикол в том, что если использовать API J! то первый запуск скрипта ~6 сек. 2й(с тем-же запросом) уже 0.01сек(точно не помню, но где-то так). Далее меняю лимиты, запускаю... опять 6сек, 2й,3й, Nй запуск по 0.01сек. И так до смены лимита. Так же и на сайте, захожу в категорию эту, 6сек страничка открывается. Обновляю(ctrl+r) и очень быстро открывается(мгновенно почти) Перехожу в пагинации на след. страничку, опять 6 сек, обновляю, мгновенно !

На скрине видно, большое время как раз при смене лимита(как в пагинации)


* 7f665eeecc524a7f808e2f9358ec59ab.jpg (65.63 Кб, 369x572 - просмотрено 56 раз.)
« Последнее редактирование: 05.04.2016, 00:05:03 от Wertos » Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet