![]() |
Долго генерится страница (до 10 секунд)
Под typo3 развернуто несколько сайтов.
сервер:Linux Fedora 10, mysql 5.0.67. Проблема: один из сайтов тормозит, страницы открываются через 10 сек. "долгих" запросов на mysql нет. Подскажите, пожалуйста, куда смотреть. З.Ы. Анализ системы показывает, что после запроса страницы mysqld начинает интенсивно работать с операциями вывода. |
какие плагины стоят на странице?
Если там есть tt_news и количество новостей порядка 10000 - то это известная и решаемая проблема. Если что-то другое, то поставьте расширение debug_mysql_db и посмотрите, какие запросы идут и сколько времени они занимают. |
Новостей около 1500 (всего-то).
allowCaching = 1 статистика системы в момент запроса страницы #vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 120 1381304 279068 933604 0 0 4 0 2030 2229 0 0 100 0 0 1 0 120 1379088 279096 933576 0 0 0 184 1664 2320 7 1 84 8 0 2 1 120 1354932 279100 933584 0 0 0 368 2214 5495 35 14 50 1 0 2 0 120 1354676 279100 933604 0 0 0 0 2056 5805 33 18 50 0 0 1 0 120 1354472 279108 933604 0 0 0 120 2208 5268 32 19 50 0 0 2 0 120 1354552 279112 933748 0 0 0 184 2458 6039 31 20 50 0 0 2 0 120 1353032 279124 933700 0 0 0 212 2425 6011 30 21 49 0 0 0 0 120 1379428 279148 933692 0 0 0 368 2375 4886 33 16 50 3 0 0 2 120 1379144 279152 933820 0 0 0 1516 2468 2690 4 2 55 40 0 0 0 120 1378948 279172 933908 0 0 0 256 2415 2528 1 0 93 7 0 0 0 120 1378948 279172 933872 0 0 0 0 2070 2276 0 0 100 0 0 0 0 120 1363644 279172 933780 0 0 0 0 1937 2356 7 1 92 0 0 0 0 120 1364372 279176 933680 0 0 0 40 2148 2319 0 0 99 1 0 0 0 120 1364448 279204 933760 0 0 0 4468 1738 2289 1 1 70 29 0 0 0 120 1364348 279228 933704 0 0 0 1064 1935 2296 0 0 92 9 0 |
ImageMagick может тормозить если страницы с изображенями и конфигурация неправильная. Поиграйте с настройками ІМ.
|
Цитата:
Дело в том, что там есть запросы, забирающие все записи со всеми полями. Т.е. mysql может запросто посылать несколько десятков мб данных через небольшой буфер. Другая проблема - это использование категорий при выводе списка новостей. Если стоит фильтр по категории - то возникают большие запросы с перечислениме uid новостей, типа uid NOT IN (1,23,200.... и тут тысяча чисел). Выполняются эти запросы быстро, но вот создаются они в пхп в цикле - поэтому проблема с скоростью |
Валерий, а можно поподробнее о ускорении работы tt_news? У меня генерируется главная страница (по админпанеле) где то 3,5 сек, закешированая около 0,6. Что в принципе все равно много. Сервер выделеный, не слабый. На главной 9 лент новостей (через rgtabs, без аякса). Всего около 2к новостей на данном сайте, и около 4к в базе (несколько сайтов).
|
Проверьте:
1. оптимизированность PHP - обязателен кэшер типа xCache 2. MySQL - хватает ли памяти для кэша? У нас для страницы из кэша (с парой мелких USER_INT) типичное время 0.160-0.240 секунды (выделенный сервер с > 10000 уников в день). В админ панели кстати виден лог по времени что и сколько генериться - весьма полезно для изучения. Например у нас из этих 0.160-0.240 на этап "Parse template" (т.е. на загрузку всех PHP файлов) уходит 0.120 секунд. |
Продолжим.....
А может ли влиять кеширование страниц на производительность? При 500 униках в день и 200 страниц на сайте, cashe_pages за сутки разрастается до 2000-4000 записей и размером 1-3 Гб. |
Цитата:
Но что-то у вас не так. Количество записей в кэше еще объяснимо - так как для каждой страницы под каждое условие в TS шаблоне и каждую группу FE пользователей создается своя кэшированная копия (так как эти параметры могут влиять на содержание страницы). Но общий размер у вас многоват. Сейчас для примера глянул один из сайтов - 12000 записей занимают 800 Мб. Обратите внимание, что в кэше сохраняется не только HTML код страницы, но и весь TS шаблон с ней связанный и соответственно исходный HTML код шаблона. Если они большие - то и весь кэш будет расти. |
Два вопроса:
1.В нете есть tip по оптимизации: disable completely any TYPO3 built-in statistics Как отключить сбор статистики? 2. Где в админке посмотреть лог генерации по времени? |
Цитата:
Оно включается так: config.stat = 1 config.stat_mysql = 1 config.stat_apache = 1 Соответственно выключается: = 0 Цитата:
config.admPanel = 1 При этом когда вы залогинены под админом в BE, в FE внизу страницы появится раскрываемый блок информации о генерации страницы. В том числе там будет подробный лог со времением что и сколько на этой странице генериться. |
tnx a lot за поддержку.
админка показала следующее: ..... /Page generation/pagegen.php, render 343 0 +9269 =9269 page PAGE 343 9233 +36 =9269 substituteMarkerArray page 525 6 ...... page.substituteMarkerArray 9584 0 /Page generation/Local anchor fix, all 9612 7 ..... хм!? |
Ну и в зазвернутом листинге
............ RealURL warning: rootpage_id was not configured! -------------------------------------------------------------------------------- RealURL warning: rootpage_id was not configured! -------------------------------------------------------------------------------- RealURL warning: rootpage_id was not configured! -------------------------------------------------------------------------------- RealURL warning: rootpage_id was not configured! -------------------------------------------------------------------------------- RealURL warning: rootpage_id was not configured! ................... Я так понимаю, настройка RealURL? |
Цитата:
А то в цифрах отступы тереются и несовсем ясно что и как. |
Цитата:
Вообщем читайте мануал. |
Цитата:
Тогда будет видно, какой конкретно модуль сколько времени дает. Еще можно попробовать поскрывать блоки контента и посмотреть, какой будет эффект. |
по RealURL стоит autoconf.
pageroot_id определен в localconf.php, но /Process ID 125 5 +2 =7 RealURL warning: rootpage_id was not configured! и дальше по отдельных модулях тот же варнинг. Представлю лог разработчику. |
Часовой пояс GMT +4, время: 16:39. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot