Кол-во запросов, время генерации и прочее, прочее, прочее

Главные вкладки

Аватар пользователя Redfern Redfern 24 июля 2007 в 0:50

Господа, я недавно поставил себе Друпал, потому что был наслышан о нем как о весьма достойной системе (раньше пользовал Joomla),
И вот, я поствиль его, все по началу работало прекрасно, а потом я стал замечать, что сайт стал немногожечко, периодически подтормаживать
Не так чтобы критично, но периодически появлялись задержки до 10 сек, нуи общее время отклика немного упало (где-то 2-3 по замерам fasterfox). Конечно, это н еочень приятно, но терпимо.
Прочитав про модуль вevel я решил также его опробовать и был крайне неприятно удивлен, узнав, что главная страница у меня дает 170-200 (!) запросов к базе.
Время герерации, однако, выдается небольшой, но это как-то плохо соотносится с задержками.
Хотелось бы спросить у других пользователей, сколько дает запросов гл страница у них и сколько вообще считатеся нормой?

Грешу, конечно, на модули, хотя и старался не увлекаться установкой всего подряд
В частности из работающих у меня :
Comment
Menu
Profile
Upload
Throttle
Authorship
BBCode
Community Tags
XML Sitemap
Meta tags
Quicktags
Smfforum
Taxonomy Menu
Paging
Tagadelic

Из-за того, что у меня очень много запросов taxonomy_get_vocabularies грешил на Taxonomy Menu, но его отключение не дало ничего.

В общем...как-то странно это усе.
Знакомые намекают на хостера, но тем не менее.

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 24 июля 2007 в 9:58

Обратите внимание на тему и theming, при переходе с табличной верстке на DIV вывод контента ускоряется в ~1.5 - 2 раза, броузеры и web сервера сейчас оптимизируют именно под DIV !

Аватар пользователя PVasili PVasili 24 июля 2007 в 11:48

По поводу DIV не DIV: броузеры , а тем более серверы ни кто не оптимизирует :-).
Просто при построении DOM структуры документа броузер, по любому, должен получить все контейнеры и их свойства.
В случае с CSS свойства уже лежат готовые в одном(2,3...) файле(к тому же часто на клиенте закешированы) и броузеру остаётся только все расположить.
А таблицу нужно ещё всю вычитать перед началом построения ну и плюс огромное количество кода, в котором после 4-5 вложений разобраться без пол литра низзя уже...
Советую почитать презентацию по теме :).

Аватар пользователя coyotle coyotle 24 июля 2007 в 11:07

В форуме уже обсуждались вопросы связанные с большим количество запросов. Основные генераторы запросов - модуль локализации и path. Вообщем для друпала такое количество - норма.

Аватар пользователя Ю.Б. Ю.Б. 24 июля 2007 в 12:56

> А таблицу нужно ещё всю вычитать перед началом построения

IE действительно читает всю таблицу, и только потом рисует. FireFox рисует по мере подгрузки ячеек.

Аватар пользователя sas@drupal.org sas@drupal.org 24 июля 2007 в 13:04

To PVasili
смотря что называть оптимизацией Smile
Факты :
1) Сокращение объема станиц для загрузки;
2) Кеширование css со стороны сервера, а значит и более быстрый доступ к нему.

Аватар пользователя ursus ursus 19 августа 2007 в 1:04

А вообще модулю Devel можно верить? А то данные, выдаваемые им, меня малость смущают - на локалхосте:
Page execution time was 2986.42 ms. Executed 300 queries in 1029.77 milliseconds.

Аватар пользователя kiev1 kiev1 1 сентября 2007 в 16:37

конкретно сервера не оптимизируют - просто добавляют nginx и все.

Вопрос - есть один сайт - там применен smarty шаблон-кеш движек - работает - просто летает, так как почти все отдается статикой.
Соответственно вопрос - друпал когда-то тоже умел работать с smarty - может кто-то пробовал?
smarty - http://drupal.org/project/smarty и тема для него - http://drupal.org/project/garland-smarty

Аватар пользователя kiev1 kiev1 1 сентября 2007 в 16:57

неужели никто не сравнивал ускорение с использованием smarty? поробовал - вроде работает, а оно должно кешировать вообще все - и для анонимных и для зарегистрированных?

Аватар пользователя dimanjy dimanjy 5 сентября 2007 в 1:09

Smarty - абсолютно ненужный шаблонизатор. Кэширует он в PHP-код, а вовсе не в статику. Заметного ускорения не получите. Интересные варианты могут быть получены только с использованием серверных решений: nginx, light httpd, memcached и все такое прочее.

Аватар пользователя kiev1 kiev1 5 сентября 2007 в 5:25

> Smarty - абсолютно ненужный шаблонизатор. Кэширует он

да, он кеширует и поэтому сайты летают даже быстрее друпаловских

nginx как прокси поставил, но это не кеш, он для другого
light httpd это вэб сервер, зачем он?
memcached - под него надо код переделывать - я так понимаю

поставил еще eaccelerator - вот с ним полегчало, но иногда он сбоил - то есть выдавал старые результаты, но это на фре рогатой, под линуксом вроде не жаловались.

интересно - что есть наподобие eaccelerator? или что еще сделать для усиления вэб сервера?

Аватар пользователя dimanjy dimanjy 5 сентября 2007 в 12:47

>kiev1 says:
>да, он кеширует и поэтому сайты летают даже быстрее друпаловских

Первый сайт у Вас ведь не на Drupal? Чего ж тогда их сравнивать?
Если б один был на Drupal + Smarty, а второй Drupal - Smarty, тогда да. Мои рукописные сайты тоже летают. Вопрос в том, как заставить Drupal летать с сохранением всех модулей и функциональности.

Аватар пользователя Гость Гость (не проверено) 3 сентября 2007 в 22:02

Подскажите плиз, как вывести на страницу время генерации, так называемое JUST TIME а то перепробывал много спосоьов и всё напрастно?
зарание благодарен!

Аватар пользователя igdrasil@drupal.org igdrasil@drupal.org 5 сентября 2007 в 9:56

вообще-то nginx - это полноценный http-сервер, причем выдает он статику с сумасшедшей скоростью, однако в случае с друпалом от него толку мало

Аватар пользователя dimanjy dimanjy 5 сентября 2007 в 12:41

>igdrasil@drupal.org says:
>вообще-то nginx - это полноценный http-сервер, причем выдает он статику с сумасшедшей скоростью,
>однако в случае с друпалом от него толку мало

Почему? Поясните, пожалуйста!
Я с Друпалом только несколько дней знаком, но собирался его как-то завязать с nginx-ом. Пока с Друпаловским кэшированием не разбирался, но вроде бы он может кэшировать страницы поблочно, а в nginx есть неплохой механизм ssi для сборки сайтов из статики и динамики.
Или Вы про то, что руками много ковырять придется? В конечном итоге ведь можно получить собранную html из страницы и класть ее в кэш, отдавая потом nginx'ом. И перекэшировать страницу при ее изменении. Ведь так?

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 5 сентября 2007 в 13:09

>однако в случае с друпалом от него толку мало

Вовсе нет... Для отдачи статики в таком случае не будут стартовать тяжелые процессы Apache.

Аватар пользователя axel axel 5 сентября 2007 в 23:11

Дело не только в статике. У nginx и lighttpd другая архитектура и они потребляют меньше памяти в сравнении с Apache. И через fastcgi PHP будет работать не медленнее чем под mod_php. К слову drupal.ru после решения больного вопроса с сервером переедет на nginx. Просто любопытно посмотреть как будет вести себя друпал на нём Smile

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 6 сентября 2007 в 15:13

Я использовал nginx именно для этой цели - разгрузить память от процессов Apache... В итоге Друпал чувствует себя очень даже хорошо. Smile

Аватар пользователя igdrasil@drupal.org igdrasil@drupal.org 5 сентября 2007 в 13:32

>>Вовсе нет... Для отдачи статики в таком случае не будут стартовать тяжелые процессы Apache.
а много там статики? стили, скрипты, немного графики, все прекрасно живет в кеше браузера и запрашивается 1 раз. единственный вариант - это фотогалерея или просто очень богатый графикой портал

Аватар пользователя botloader botloader (не проверено) 5 сентября 2007 в 21:36

Подскажите плиз, как вывести время генерации в Drupal не только для администратора как это делает devel, а то перепробывал много способов и всё напрастно?
зарание благодарен! А то не кто и не ответил Sad

Аватар пользователя kiev1 kiev1 6 сентября 2007 в 4:33

nginx наверно надо ставить как прокси, а иначе чем он от апача будет отличаться? или один как сервер, второй как прокси?

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 6 сентября 2007 в 15:22

nginx будет выполнять роль реверсного прокси. Также в этом случае применяют другую терминологию: nginx - фронтенд, Apache - бэкенд.

Аватар пользователя dimanjy dimanjy 6 сентября 2007 в 16:41

А кто каким образом запускает PHP как fastcgi?

Раньше я от Apache совсем отказался. Была у меня связка nginx + spawn_fcgi из lighttpd + PHP. Но последние два пункта работали крайне нестабильно и частенько nginx терял с ними связь. Выдавалось сообщение "Gateway timeout". Вылетало не часто, но когда работало, то работало очень быстро.

Потом меня эта нестабильность замучала, я поставил backend'ом Apache. Но до сих пор мучают мысли о поиске стабильного FastCGI решения для PHP. Сам PHP, по идее, работает в режиме FastCGI, но где-то читал, что обработав несколько тыс. запросов он вылетает. Сам не экспериментировал.
Может кто-нибудь уже знает "ресепт"?