Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Saygo

Как увеличить скорость загрузки страниц в IP.Content 2.3.6?

Recommended Posts

Форум, что называется, "летает", а IP.Content жестоко тормозит. Посоветуйте, пожалуйста, какие настройки могут максимально ускорить его работу?

Share this post


Link to post
Share on other sites

Что именно тормозит - генерация страницы на сервере или рендеринг исходного кода в браузере?

Если первое - включить логирование sql запросах, посмотреть нет ли медленных запросах, при необходимости сделать профайлинг/дебаг приложения. Самый лучший вариант поставить xdebug - он покажет что и за сколько выполняется в коде.

Если редндеринг страницы - запустить консоль браузера и посмотреть какие запросы затормаживают загрузку страницы. Обычно это все возможные скрипты с сторонних сервисов, большие изображения, и тп.

 

Если речь о форуме из профиля - то там контент уж чересчур долго генерируется. Я с ним не знаком, поэтому не знаю что в нем может влиять на производительность. Что могу посоветовать, так это попробовать отключить по одному хуки которые относится к нему. Тормозить же скорее всего он начал не сразу.

Share this post


Link to post
Share on other sites

Да, это сайт, который указан в профиле. Он начал тормозить с самого начала, когда начали постепенно вешать статьи. Хуков на IP.Content дополнительных никаких не вешал, там все стоит по умолчанию, только блок новостей с форума немножко сдвинул. Сами статьи довольно большие.

 

Я думаю, надо попробовать для начала базу перегнать в utf-8, может это само по себе поможет ускорить работу.

Share this post


Link to post
Share on other sites

Я думаю, надо попробовать для начала базу перегнать в utf-8, может это само по себе поможет ускорить работу.

Сама по себе кодировка бд работу не ускорит. Наоборот, однобайтовые кодировки в теории быстрее чем многобайтовые. Да и utf8_general_ci как бы тоже должен быть быстрее utf8_unicode_ci. На форуме в основном все селекты происходят по числовым иденификатором, так что единственное на что может влиять кодировка в этом случае это на обмен данными между клиентом (php) и mysql сервером. Что вы можете выиграть - несколько доли секунд, но не как не целых 30. База у вас и так должна быть в utf8. А тупо "перегоните", вообще можете испортить кодировку.

 

Для начала стоит начать с логов медленных запросов.

На уровне MySQL >= 5.1.12 это можно сделать добавив в секции [mysqld] конфигурационного файла (my.cnf или my.ini) следующие переменные:

 

slow_query_log = 1
long_query_time = 2

На уровне форума, в /initdata.php установить для константы IPS_SQL_FIND_SLOW_MODE время выполнения запросах при котором они будут записаны в логах, например больше 0.5 сек:

 

define( 'IPS_SQL_FIND_SLOW_MODE', 0.5 );

Можете также включить план sql запросов на странице (только для дебага. на продакшене в повседневной работе следует отключить)

 

define( 'IPS_SQL_DEBUG_MODE', 1 );

Share this post


Link to post
Share on other sites

@Saygo, проблему загрузки я смотрю вы так и не решили?.. Лог медленных запросов или план их выполнения смотрели?

Share this post


Link to post
Share on other sites

Пока не решил. В .htaaccess немножко похимичить пробовал с кэшированием и сжатием, форум стал грузиться еще быстрее, а на сайте это особо не сказалось.

Пытаюсь что-то понять, включил лог. Ну например вот пара запросов к сайту (это если я смотрю то, что нужно):

 

==============================================================================
=========================      START       ===================================
========================= /index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Brecord=67 ===================================
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Brecord=67
Date: Sat, 05 Jul 2014 23:30:29 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.0056
SELECT * FROM ipbsu_history_cache_store WHERE cs_key IN ( 'systemvars','login_methods','vnums','app_cache','navigation_tabs','module_cache','hooks','useragents','useragentgroups','skinsets','outputformats','skin_remap','group_cache','settings','lang_data','banfilters','stats','badwords','bbcode','mediatag','profilefields','rss_output_cache','rss_export','meta_tags','ipseo_acronyms','ccs_databases','ccs_fields','ccs_menu','report_cache','report_plugins','emoticons','ranks','attachtypes','reputation_levels','ccs_frontpage','moderators','sharelinks' )

+------------------------------------------------------------------------------+
|Table: ipbsu_history_cache_store
|Type: range
|Possible Keys: PRIMARY
|Key: PRIMARY
|Key Len: 767
|Ref: 
|Rows: 37
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Brecord=67
Date: Sat, 05 Jul 2014 23:30:29 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.00371
SELECT * FROM ipbsu_history_skin_cache WHERE cache_set_id=10 AND cache_type IN ('css', 'replacements')

+------------------------------------------------------------------------------+
|Table: ipbsu_history_skin_cache
|Type: ref
|Possible Keys: cache_type,cache_set_id
|Key: cache_set_id
|Key Len: 4
|Ref: const
|Rows: 64
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Brecord=67
Date: Sat, 05 Jul 2014 23:30:29 +0000
IP Address: 54.209.98.108
Time Taken: 0.00305
SELECT cache_content FROM ipbsu_history_ccs_template_cache WHERE cache_type='full'

+------------------------------------------------------------------------------+
|Table: ipbsu_history_ccs_template_cache
|Type: ref
|Possible Keys: cache_type
|Key: cache_type
|Key Len: 50
|Ref: const
|Rows: 1
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Brecord=67
Date: Sat, 05 Jul 2014 23:30:29 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.00088
SELECT * FROM ipbsu_history_ccs_pages WHERE page_folder='' AND page_seo_name='index.html'

+------------------------------------------------------------------------------+
|Table: ipbsu_history_ccs_pages
|Type: ref
|Possible Keys: page_seo_name,page_folder
|Key: page_seo_name
|Key Len: 606
|Ref: const,const
|Rows: 1
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Brecord=67
Date: Sat, 05 Jul 2014 23:30:29 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.00074
INSERT INTO ipbsu_history_sessions (`id`,`member_name`,`member_id`,`member_group`,`login_type`,`running_time`,`ip_address`,`browser`,`in_error`,`current_appcomponent`,`current_module`,`current_section`,`location_1_type`,`location_1_id`,`location_2_type`,`location_2_id`,`location_3_type`,`location_3_id`,`uagent_key`,`uagent_version`,`uagent_type`,`uagent_bypass`) VALUES('9385316c4bfd9c3f7c02f44ac6c69395','',0,2,0,1404603029,'xx.xxx.xx.xxx','',0,'ccs','','','page',0,'index.html',0,'',0,'__NONE__',0,'',0)

==============================================================================
==============================================================================
=========================        END       ===================================
========================= /index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Brecord=67 ===================================
==============================================================================

==============================================================================
=========================      START       ===================================
========================= /index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Bcategory=18&amp%3Bview=archive ===================================
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Bcategory=18&amp%3Bview=archive
Date: Sat, 05 Jul 2014 23:26:10 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.00424
SELECT * FROM ipbsu_history_cache_store WHERE cs_key IN ( 'systemvars','login_methods','vnums','app_cache','navigation_tabs','module_cache','hooks','useragents','useragentgroups','skinsets','outputformats','skin_remap','group_cache','settings','lang_data','banfilters','stats','badwords','bbcode','mediatag','profilefields','rss_output_cache','rss_export','meta_tags','ipseo_acronyms','ccs_databases','ccs_fields','ccs_menu','report_cache','report_plugins','emoticons','ranks','attachtypes','reputation_levels','ccs_frontpage','moderators','sharelinks' )

+------------------------------------------------------------------------------+
|Table: ipbsu_history_cache_store
|Type: range
|Possible Keys: PRIMARY
|Key: PRIMARY
|Key Len: 767
|Ref: 
|Rows: 37
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Bcategory=18&amp%3Bview=archive
Date: Sat, 05 Jul 2014 23:26:10 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.004
SELECT * FROM ipbsu_history_skin_cache WHERE cache_set_id=10 AND cache_type IN ('css', 'replacements')

+------------------------------------------------------------------------------+
|Table: ipbsu_history_skin_cache
|Type: ref
|Possible Keys: cache_type,cache_set_id
|Key: cache_set_id
|Key Len: 4
|Ref: const
|Rows: 64
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Bcategory=18&amp%3Bview=archive
Date: Sat, 05 Jul 2014 23:26:10 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.01419
SELECT cache_content FROM ipbsu_history_ccs_template_cache WHERE cache_type='full'

+------------------------------------------------------------------------------+
|Table: ipbsu_history_ccs_template_cache
|Type: ref
|Possible Keys: cache_type
|Key: cache_type
|Key Len: 50
|Ref: const
|Rows: 1
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Bcategory=18&amp%3Bview=archive
Date: Sat, 05 Jul 2014 23:26:10 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.00109
SELECT * FROM ipbsu_history_ccs_pages WHERE page_folder='' AND page_seo_name='index.html'

+------------------------------------------------------------------------------+
|Table: ipbsu_history_ccs_pages
|Type: ref
|Possible Keys: page_seo_name,page_folder
|Key: page_seo_name
|Key Len: 606
|Ref: const,const
|Rows: 1
|Extra: Using where
==============================================================================
==============================================================================
URL: /index.php/index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Bcategory=18&amp%3Bview=archive
Date: Sat, 05 Jul 2014 23:26:10 +0000
IP Address: xx.xxx.xx.xxx
Time Taken: 0.0014
INSERT INTO ipbsu_history_sessions (`id`,`member_name`,`member_id`,`member_group`,`login_type`,`running_time`,`ip_address`,`browser`,`in_error`,`current_appcomponent`,`current_module`,`current_section`,`location_1_type`,`location_1_id`,`location_2_type`,`location_2_id`,`location_3_type`,`location_3_id`,`uagent_key`,`uagent_version`,`uagent_type`,`uagent_bypass`) VALUES('7ed6c982ffd7c81dd275cdd04d5373bf','',0,2,0,1404602770,'xx.xxx.xx.xxx','',0,'ccs','','','page',0,'index.html',0,'',0,'__NONE__',0,'',0)

==============================================================================
==============================================================================
=========================        END       ===================================
========================= /index.php?app=ccs&amp%3Bmodule=pages&amp%3Bsection=pages&amp%3Bid=1&amp%3Bcategory=18&amp%3Bview=archive ===================================
==============================================================================

Проблема в том, что у меня даже в школе не было информатики, так что всему приходится учиться методом тыка не отходя от кассы. Чувствую себя Шампольоном перед Розеттским камнем.

Edited by Saygo

Share this post


Link to post
Share on other sites

MySQL тут не при чем видимо. Может быть парсеры litres и ozon в режиме риал-тайм работают, без кеширования в базу, на страницах контента?

 

Отключайте блоки поочередно, найдёте "медленные", попробуйте включить кеширование в их базовых настройках. Не получится, привлеките специалиста к их доработке или не используйте просто.

Share this post


Link to post
Share on other sites

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

 

Да, с запросами все нормально. Без дебага тут как пальцем в небо. В этом плане xdebug бы сильно помог. Почитайте мануалы, может сможете его поставить если не на сервере то на локалхосте, и там выполнить профайлинг форума.

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...