Время генерации страниц в темах - Дизайн и модификация Invision Power Board

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

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Время генерации страниц в темах

#1 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 153
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 03 Февраль 2013 - 20:48

История такова 18 дек побилась таблица сообщений в БД, была восстановлена по средствам phpmyadmin, 19 дек были увеличены ресурсы VDS до 4х2000CPU и 3Г RAM до этого было 2х2000CPU и 1.5гRAM не хватало часто бились таблицы в пиках. Всё вроде заработало нормально, но уже 21дек количество файловых дескрипторов выросло до 50% или по другому 2000шт до этого на меньшем VDS дескрипторы не превышали 25%. Попытки выявить из за чего привели к БД форума, именно она создает такое количество дескрипторов т.к если остановить mysql то их становится 400шт, в переписке с хостерами не чем помочь не могли сказали что не чего критичного на vds они не видят и что это только 50% из доступных типа беспокоится не стоит. Ну как бы ладно 50 дак 50, но у форума увеличилось время генерации страниц в больших темах то есть тема на 1-2 страницы генерируется за 0.1сек а тема на 130 страниц за 5-9сек что естественно сказывается на посетителях им не по приколу ждать загрузки страниц таких тем по 9 секунд.
Проверил базу на индексы по средствам SSH и через админку форума все нормально. В это время не память, не проц, не превышают 15% по нагрузке
Что может быть куда копать???
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 03 Февраль 2013 - 20:55

Как минимум включить лог запросов.

В секции [mysqld]

Логирование медленых запросов:

slow_query_log = On
long_query_time = 2
slow_query_log_file = /path_to_logs/mysql-slow-query.log

Логирование всех запросов:

general_log = on
general_log_file = /path_to_logs/mysql-query.log
1

#3 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 153
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 03 Февраль 2013 - 22:06

Включил туда посыпались такие запросы
# Time: 130203 23:03:49
# User@Host: *** @ localhost []
# Query_time: 4.423263  Lock_time: 0.000179 Rows_sent: 20  Rows_examined: 1051339
use ***;
SET timestamp=1359918229;
SELECT p.*,m.member_id as mid,m.name,m.member_group_id,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title as member_title, m.warn_level, m.warn_lastwarn, m.members_display_name, m.members_seo_name, m.member_banned, m.has_gallery, m.has_blog, m.members_bitoptions,m.mgroup_others,pp.*,w.wl_id,pc.*,rep_index.rep_rating as has_given_rep,rep_cache.rep_points, rep_cache.rep_like_cache,cca.*,ccb.cache_content as cache_content_sig, ccb.cache_updated as cache_updated_sig FROM ibf_posts p  LEFT JOIN ibf_members m ON ( m.member_id=p.author_id ) 
 LEFT JOIN ibf_profile_portal pp ON ( m.member_id=pp.pp_member_id ) 
 LEFT JOIN ibf_members_warn_logs w ON ( w.wl_content_app='forums' and w.wl_content_id1=p.pid ) 
 LEFT JOIN ibf_pfields_content pc ON ( pc.member_id=p.author_id ) 
 LEFT JOIN ibf_reputation_index rep_index ON ( rep_index.app='forums' AND 
						             rep_index.type='pid' AND 
						             rep_index.type_id=p.pid AND 
						             rep_index.member_id=2 ) 
 LEFT JOIN ibf_reputation_cache rep_cache ON ( rep_cache.app='forums' AND rep_cache.type='pid' AND rep_cache.type_id=p.pid ) 
 LEFT JOIN ibf_content_cache_posts cca ON ( cca.cache_content_id=p.pid ) 
 LEFT JOIN ibf_content_cache_sigs ccb ON ( ccb.cache_content_id=m.member_id )   WHERE p.topic_id=20586 AND  p.queued IN (0,1,2)  ORDER BY p.pid asc LIMIT 2560,20;
# Time: 130203 23:03:57
# User@Host: *** @ localhost []
# Query_time: 4.228205  Lock_time: 0.000287 Rows_sent: 20  Rows_examined: 1051339
SET timestamp=1359918237;
SELECT p.*,m.member_id as mid,m.name,m.member_group_id,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title as member_title, m.warn_level, m.warn_lastwarn, m.members_display_name, m.members_seo_name, m.member_banned, m.has_gallery, m.has_blog, m.members_bitoptions,m.mgroup_others,pp.*,w.wl_id,pc.*,rep_index.rep_rating as has_given_rep,rep_cache.rep_points, rep_cache.rep_like_cache,cca.*,ccb.cache_content as cache_content_sig, ccb.cache_updated as cache_updated_sig FROM ibf_posts p  LEFT JOIN ibf_members m ON ( m.member_id=p.author_id ) 
 LEFT JOIN ibf_profile_portal pp ON ( m.member_id=pp.pp_member_id ) 
 LEFT JOIN ibf_members_warn_logs w ON ( w.wl_content_app='forums' and w.wl_content_id1=p.pid ) 
 LEFT JOIN ibf_pfields_content pc ON ( pc.member_id=p.author_id ) 
 LEFT JOIN ibf_reputation_index rep_index ON ( rep_index.app='forums' AND 
						             rep_index.type='pid' AND 
						             rep_index.type_id=p.pid AND 
						             rep_index.member_id=2 ) 
 LEFT JOIN ibf_reputation_cache rep_cache ON ( rep_cache.app='forums' AND rep_cache.type='pid' AND rep_cache.type_id=p.pid ) 
 LEFT JOIN ibf_content_cache_posts cca ON ( cca.cache_content_id=p.pid ) 
 LEFT JOIN ibf_content_cache_sigs ccb ON ( ccb.cache_content_id=m.member_id )   WHERE p.topic_id=20586 AND  p.queued IN (0,1,2)  ORDER BY p.pid asc LIMIT 2560,20;
# Time: 130203 23:04:04
# User@Host: **** @ localhost []
# Query_time: 5.595800  Lock_time: 0.000207 Rows_sent: 20  Rows_examined: 1183964
SET timestamp=1359918244;
SELECT p.*,m.member_id as mid,m.name,m.member_group_id,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title as member_title, m.warn_level, m.warn_lastwarn, m.members_display_name, m.members_seo_name, m.member_banned, m.has_gallery, m.has_blog, m.members_bitoptions,m.mgroup_others,pp.*,w.wl_id,pc.*,rep_index.rep_rating as has_given_rep,rep_cache.rep_points, rep_cache.rep_like_cache,cca.*,ccb.cache_content as cache_content_sig, ccb.cache_updated as cache_updated_sig FROM ibf_posts p  LEFT JOIN ibf_members m ON ( m.member_id=p.author_id ) 
 LEFT JOIN ibf_profile_portal pp ON ( m.member_id=pp.pp_member_id ) 
 LEFT JOIN ibf_members_warn_logs w ON ( w.wl_content_app='forums' and w.wl_content_id1=p.pid ) 
 LEFT JOIN ibf_pfields_content pc ON ( pc.member_id=p.author_id ) 
 LEFT JOIN ibf_reputation_index rep_index ON ( rep_index.app='forums' AND 
						             rep_index.type='pid' AND 
						             rep_index.type_id=p.pid AND 
						             rep_index.member_id=1024 ) 
 LEFT JOIN ibf_reputation_cache rep_cache ON ( rep_cache.app='forums' AND rep_cache.type='pid' AND rep_cache.type_id=p.pid ) 
 LEFT JOIN ibf_content_cache_posts cca ON ( cca.cache_content_id=p.pid ) 
 LEFT JOIN ibf_content_cache_sigs ccb ON ( ccb.cache_content_id=m.member_id )   WHERE p.topic_id=35014 AND  p.queued=0  ORDER BY p.pid asc LIMIT 5560,20;


Что тут к чему???
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 03 Февраль 2013 - 22:29

Цитата

Rows_examined: 1183964

Мускул пишет, что было обработано 1183964 строк. Проверьте все же еще раз индексы на таблице постов, даже учитывая что используется ORDER BY, он должен перебирать только записи конкретной темы.
Попробуйте выполнить запрос для включения индексов, вдруг они отключены

выполнять желательно из ssh

ALTER TABLE ibf_posts ENABLE KEYS


В вашем случае есть смысл перейти на два запроса
1 - Выбираем все pid-ы по условию WHERE из основного запроса
2 - Делаем основной запрос с условием WHERE pid IN (pids)

Тогда запрос будет выполнятся мгновенно на темах почти с любым количеством сообщений.
0

#5 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 153
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 03 Февраль 2013 - 23:17

Через phpmyadmin запрос выполнился мгновенно за 0.6 сек только что то не понял как обрабатывалось столько строк если в таблице ibf_posts их всего 496248
Ну что бы перейти на два запроса это нужно знать как и где их править, да и не очень то хотелось бы лесть в файлы. Просто все работало нормально а тут такое стало может есть ещё варианты как починить это дело?
Вот скрин структуры таблицы
http://img-fotki.yan...f266c3_XXXL.jpg
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 03 Февраль 2013 - 23:30

Просмотреть сообщениеavgaz сказал(а):

Через phpmyadmin запрос выполнился мгновенно за 0.6 сек

Значит индексы включены.

Просмотреть сообщениеavgaz сказал(а):

Вот скрин структуры таблицы

Покажите результат запроса

EXPLAIN SELECT p.*,m.member_id as mid,m.name,m.member_group_id,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title as member_title, m.warn_level, m.warn_lastwarn, m.members_display_name, m.members_seo_name, m.member_banned, m.has_gallery, m.has_blog, m.members_bitoptions,m.mgroup_others,pp.*,w.wl_id,pc.*,rep_index.rep_rating as has_given_rep,rep_cache.rep_points, rep_cache.rep_like_cache,cca.*,ccb.cache_content as cache_content_sig, ccb.cache_updated as cache_updated_sig FROM ibf_posts p  LEFT JOIN ibf_members m ON ( m.member_id=p.author_id ) 
 LEFT JOIN ibf_profile_portal pp ON ( m.member_id=pp.pp_member_id ) 
 LEFT JOIN ibf_members_warn_logs w ON ( w.wl_content_app='forums' and w.wl_content_id1=p.pid ) 
 LEFT JOIN ibf_pfields_content pc ON ( pc.member_id=p.author_id ) 
 LEFT JOIN ibf_reputation_index rep_index ON ( rep_index.app='forums' AND 
                                     rep_index.type='pid' AND 
                                     rep_index.type_id=p.pid AND 
                                     rep_index.member_id=2 ) 
 LEFT JOIN ibf_reputation_cache rep_cache ON ( rep_cache.app='forums' AND rep_cache.type='pid' AND rep_cache.type_id=p.pid ) 
 LEFT JOIN ibf_content_cache_posts cca ON ( cca.cache_content_id=p.pid ) 
 LEFT JOIN ibf_content_cache_sigs ccb ON ( ccb.cache_content_id=m.member_id )   WHERE p.topic_id=20586 AND  p.queued IN (0,1,2)  ORDER BY p.pid asc LIMIT 2560,20;


0

#7 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 153
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 03 Февраль 2013 - 23:37

Вот результат
-IMG-
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 03 Февраль 2013 - 23:54

Есть все же подозрения, что в какой-то таблице участвующей в запросе не включены индексы.
Выполните запросы

ALTER TABLE ibf_members ENABLE KEYS;
ALTER TABLE ibf_profile_portal ENABLE KEYS;
ALTER TABLE ibf_members_warn_logs ENABLE KEYS;
ALTER TABLE ibf_pfields_content ENABLE KEYS;
ALTER TABLE ibf_reputation_index ENABLE KEYS;
ALTER TABLE ibf_reputation_cache ENABLE KEYS;
ALTER TABLE ibf_content_cache_posts ENABLE KEYS;
ALTER TABLE ibf_content_cache_sigs ENABLE KEYS;



Потом проверьте запрос выше без EXPLAIN, за какое время он выполнится.

И рекомендую все таки поправить http://community.inv...g-topics-r36577
Они исправили запрос и сделали подзапросом - FROM ( SELECT pid FROM ibf_posts WHERE topic_id=4754 AND queued IN (0,1,2) ORDER BY pid asc LIMIT 1020,20 ) z
0

#9 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 153
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 04 Февраль 2013 - 00:07

Выполнил запросы все прошли довольно быстро
ну а этот запрос дал такой результат
Отображает строки 2560 - 2579 ( 20 всего, Запрос занял 5.2985 сек.) [pid: 842224 - 843465]


Цитата

И рекомендую все таки поправить http://community.inv...g-topics-r36577

Только там ссылка ведущая на исправление не рабочая
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 04 Февраль 2013 - 00:10

Просмотреть сообщениеavgaz сказал(а):

Только там ссылка ведущая на исправление не рабочая

В комментариях смотрите.
0

#11 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 04 Февраль 2013 - 00:13

Кстати да, а выполните такой запрос

SELECT p.*,m.member_id as mid,m.name,m.member_group_id,m.email,m.joined,m.posts, m.last_visit, m.last_activity,m.login_anonymous,m.title as member_title, m.warn_level, m.warn_lastwarn, m.members_display_name, m.members_seo_name, m.member_banned, m.has_gallery, m.has_blog, m.members_bitoptions,m.mgroup_others,pp.*,w.wl_id,pc.*,rep_index.rep_rating as has_given_rep,rep_cache.rep_points, rep_cache.rep_like_cache,ccb.cache_content as cache_content_sig, ccb.cache_updated as cache_updated_sig 
FROM ( SELECT pid FROM ibf_posts WHERE topic_id=4754 AND queued IN (0,1,2) ORDER BY pid asc LIMIT 1020,20 ) z 
 LEFT JOIN ibf_posts p ON ( p.pid=z.pid ) 
 LEFT JOIN ibf_members m ON ( m.member_id=p.author_id ) 
 LEFT JOIN ibf_profile_portal pp ON ( m.member_id=pp.pp_member_id ) 
 LEFT JOIN ibf_members_warn_logs w ON ( w.wl_content_app='forums' and w.wl_content_id1=p.pid ) 
 LEFT JOIN ibf_pfields_content pc ON ( pc.member_id=p.author_id ) 
 LEFT JOIN ibf_reputation_index rep_index ON ( rep_index.app='forums' AND rep_index.type='pid' AND rep_index.type_id=p.pid AND rep_index.member_id=98 ) 
 LEFT JOIN ibf_reputation_cache rep_cache ON ( rep_cache.app='forums' AND rep_cache.type='pid' AND rep_cache.type_id=p.pid )
 LEFT JOIN ibf_content_cache_sigs ccb ON ( ccb.cache_content_id=m.member_id )


0

#12 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 153
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 04 Февраль 2013 - 00:24

MySQL вернула пустой результат (т.е. ноль строк). ( Запрос занял 0.0047 сек. )
Если вы про то что в больших тема первая страница быстро генерируется, а последняя медленно то да это так и есть к примеру есть тема на 72 страницы
72ст - 5с
50ст - 3.5с
25ст - 1.5с
1ст - 0.1с
Значит это баг из комментариев как то не охото править в планах было обновится до 3.4.2 но что то не дождаться от IBR локализации.
Да и смущает очень откуда взялось такое большое количество файловых дескрипторов из за mysql?
0

#13 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 04 Февраль 2013 - 00:26

Просмотреть сообщениеavgaz сказал(а):

MySQL вернула пустой результат (т.е. ноль строк). ( Запрос занял 0.0047 сек. )

topic_id=4754 замените на topic_id=20586
0

#14 Пользователь не на сайте   avgaz ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 153
  • Регистрация: 28-Январь 08
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 04 Февраль 2013 - 00:54

Просмотреть сообщениеsiv1987 04 Февраль 2013 - 00:26 сказал(а):

topic_id=4754 замените на topic_id=20586

Отображает строки 0 - 19 ( 20 всего, Запрос занял 0.0381 сек.)
0

#15 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 288
  • Регистрация: 20-Март 09
  • Репутация: 2 085
  • IPB version:3.1.x
 

Отправлено 04 Февраль 2013 - 00:59

Просмотреть сообщениеavgaz сказал(а):

( 20 всего, Запрос занял 0.0381 сек.)

Что и требовалось доказать. Либо обновляйтесь, либо исправьте запрос, и будет вам профит.
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна