История про нагрузку и как я с ней боролся.

Случилось так, что на одном из проектов full time стал переваливать за 1,5 сек и при этом сжирался весь проц. При этом все остальные показали были в норме: база — 0,002 сек, кеш — 0,01 сек.

Пришлось прикручивать профайлер и смотреть, в чем дело.

Виноват оказался Smarty, который из 1,5 секунд работал 1,2 (шаблон, на проекте, используется стандартный с легкими изменениями).

Копаясь дальше нашел самый сложный шаблон comments_tree.tpl, который выполняет в цикле инклюд шаблона comment.tpl.

Проблема решилась отказом от инклюда и переносом содержимого из comment.tpl в comments_tree.tpl.

full time на топиках с 400+ комментариев не превышает 0,4 сек.

Надеюсь кому-то поможет.

19 комментариев

avatar
В избранное.
  • Mmka
  • 0
avatar
+1 В избранное.
avatar
спасибо, за то, что что потрудился отписать
avatar
Да, не за что.
avatar
смарти — большая медленная мерзость, по большому счету и не нужная в лс.
avatar
Вы просто не умеете его готовить ;)
avatar
К слову, такая ситуация не только с комментами — есть еще и topic_list.tpl + topic.tpl
avatar
Надеюсь у меня хватит сил написать продолжение.
На данный момент прикрутил 3ий смарти, переписал несколько плагинов, модернизировал почти все шаблоны и не аторизованным пользователям отдаю страницы из кеша.

full time ~ 0,25 сек.
avatar
Full time (ничего не делал): 0.261
Смысла переписывать плагины и смарти — не вижу
avatar
Ну что же.
У Вас длиннее :)
avatar
можно поподробней по прикрутку smarty 3?
avatar
avatar
Благодарю. плюсанул бы в карму, да запрещено
avatar
Не за что.
avatar
Лучше готовый пример спакуйте. Чтобы просто заменить фаилы ;)
иногда нету времени вникать.
avatar
Ну не ужели вам лениво скопипасть из одного файла в другой?
avatar
Я прошу прощения, а что технически нужно выполнить?
avatar
Технически нужно скопировать все содержимое файла comment.tpl и вставить его в файл comments_tree.tpl, вместо строки
{include file='comment.tpl'}  
avatar
пропадают коменты кроме первого
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.