И снова про тормоза Drupal

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

Аватар пользователя Zigs Zigs 21 декабря 2009 в 1:22

Заранее извиняюсь если уже было. Не нашел.
Дело в том, что Drupal просто сказочно тормозит (на локальной машине хостинга пока нет) Page execution time более 40000 млсек. Причем количество нод пока чуть больше десятка.
Devel показывает, что очень много запросов выполняются очень долго: 100 и более млсек. Причем это запросы из штатных функуций Друпала, например: taxonomy_get_node_terms или из функции node_load (связывает ноды, пользователей и ревизии, более 200 млсек). Причем все эти высокозатратные запросы в phpmyadmin выполняются практически мгновенно. Почему так происходит, откуда такая разница в производительности?

Полазил по форуму и немного подправил настройки mysql. Время отдачи снизилось до 15-25 сек, но, ессно, это тоже не приемлемо.
Куда копать, что посоветуете, гуру?

ПС. От железа эта ситуация не сильно зависит. Работаю на Денвере.

Комментарии

Аватар пользователя Zigs Zigs 21 декабря 2009 в 1:42

В догонку, а то сразу не разобрался. Вот что пишет Devel:

Executed 360 queries in 4907.74 milliseconds. Queries taking longer than 5 ms and queries executed more than once, are highlighted. Page execution time was 44772.64 ms.

Аватар пользователя ubercoder ubercoder 21 декабря 2009 в 2:02

Проблема явно в настройках сервера. Ведь судя по отчету devel'a запросы занимают только 5 секунд (что тоже не очень хорошо) из 45(!) секунд на генерации страницы.

Аватар пользователя Dan Dan 21 декабря 2009 в 4:27

Когда юзал одновременно винду и линукс, под виндой (тоже денвер) сайты просто ползали, под линухом гораздо шустрее.

Аватар пользователя Crea Crea 21 декабря 2009 в 8:19

На денвере будет тормозить даже сам PHP. Просто смиритесь с этим, или попробуйте опкод кешер от Микрософта (вроде бы, пилят что то, недавно в новостях проскакивало).
Находил eaccelerator и apc под винду, ставил, разницы не заметил, снес.
Можно попробовать оттюнить MySQL. По крайней мере query cache должен помочь.

Аватар пользователя Irbis Irbis 21 декабря 2009 в 9:21

http://habrahabr.ru/blogs/drupal/64286/ - вот моя статейка. Простая установка акселератора PHP, увеличение кэша БД и включения кэширования в Drupal заметно ускоряет его работу. А если ещё и ОС настроить и Apache заменить - всё будет работать ещё быстрее.

Аватар пользователя Zigs Zigs 21 декабря 2009 в 11:55

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

"RxB" wrote:
Попробуйте другой сервер, денвер скотина глюкавая

Денвер то ж не сервер, а целый пакет: дб, веб и т.д. Я так понимаю, что вместо апача можно кого-то попробовать, а кого порекомендуете?

За статью спасибо. Изучаю.

А можете еще поделиться информацией у кого на чем друпал нормально крутится?

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 21 декабря 2009 в 12:31

Для локальной работы на винде использую WAMP, очень все просто и клево! Только не забудьте про версии, drupal работает на php 5.2.х, а WAMP по умолчанию идет с php 5.3.0, поэтому необходимо поверх стаить версию с PHP 5.2.x... А в целом все очень даже удобно!

Аватар пользователя Zigs Zigs 21 декабря 2009 в 12:37

Все-таки проблема, наверное, в моем ноуте. На рабочем компе, после некоторой настройки mysql, внесения известных изменений в path.inc и включения всех кешей удалось добиться вот такого результата:
Executed 239 queries in 108.43 milliseconds. Queries taking longer than 5 ms and queries executed more than once, are highlighted. Page execution time was 4119.19 ms.
Тоже не идеал, но гораздо лучше чем было. Если еще убрать сам devel... результат будет еще лучше.

Теперь вопрос что делать с ноутом? Старенький он: 1.6 Пентиум М с 768 мегами оперативки. Винду, понятное, дело придется переставить. А что посоветуете для установки вместо Денвера на такое железо?

П.С. новый ноут купить, пока не предлагать Smile

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 21 декабря 2009 в 17:04

Пользуй WAMP, кстати, а помимо этого, что у тебя там на винде висит? кроме того модуль devel очень позволяет хорошо посмотреть, где узкое горлышко:

The Drupal Devel package
Seasoned Drupal developers have created special Drupal modules designed to make developing for Drupal easier. The Devel package contains some of the most useful developer modules.
Devel provides a suite of utilities to help developers work on Drupal. The Devel package can be downloaded from the Drupal website: http://drupal.org/project/devel. This package provides five modules:
1. Devel: The main developer module.
2. Devel generate: A tool to randomly generate users, nodes, and other data for developing and debugging.
3. Devel node access: Tools for learning about what nodes are currently
being accessed.
4. Macro: A tool to help you automate form submission for development and debugging purposes.
5. Performance logging: A tool to help you identify bottlenecks and
memory usage.

6. Theme developer: A tool to help theme developers determine what code is generating what part of the HTML output.